Pembangunan Golang: Menggunakan Prometheus untuk memantau prestasi aplikasi memerlukan contoh kod khusus
Abstrak: Artikel ini memperkenalkan cara menggunakan perpustakaan Prometheus di Golang pembangunan Menjalankan pemantauan prestasi aplikasi dan menyediakan contoh kod khusus untuk memudahkan pembangun bermula dengan cepat.
Pengenalan:
Dalam pembangunan aplikasi moden, pemantauan prestasi aplikasi adalah pautan yang sangat penting. Melalui pemantauan, kami boleh memahami status berjalan aplikasi dalam masa nyata, menemui masalah dalam masa dan membuat pelarasan untuk meningkatkan kestabilan dan prestasi aplikasi.
Prometheus ialah sistem pemantauan sumber terbuka dan pangkalan data siri masa yang digunakan secara meluas dalam bidang pemantauan aplikasi asli awan dan kontena. Ia menyediakan pelbagai jenis dan fungsi penunjuk pemantauan, yang boleh membantu kami memantau penunjuk prestasi aplikasi dalam masa nyata.
Artikel ini akan menggunakan contoh khusus untuk menunjukkan cara menggunakan perpustakaan Prometheus dalam pembangunan Golang untuk pemantauan prestasi aplikasi.
Langkah 1: Pasang dan konfigurasi Prometheus
Pertama, kita perlu memasang dan mengkonfigurasi Prometheus dalam sistem. Binari boleh dimuat turun dari laman web rasmi (https://prometheus.io/) dan dipasang.
Selepas pemasangan selesai, anda perlu mengkonfigurasi fail konfigurasi Prometheus prometheus.yml. Dalam fail konfigurasi, kita perlu menentukan matlamat untuk dipantau dan metrik yang sepadan.
Sebagai contoh, jika kita ingin memantau jumlah permintaan HTTP dan meminta kelewatan aplikasi Golang, kita boleh menambah konfigurasi berikut:
scrape_configs: - job_name: 'my_app' metrics_path: /metrics static_configs: - targets: ['localhost:8080']
Langkah 2: Tambah Kod pemantauan Prometheus dalam aplikasi Golang# 🎜🎜#
Seterusnya, kita perlu menambah kod berkaitan Prometheus pada aplikasi Golang. Pertama, kita perlu memperkenalkan perpustakaan Prometheus:import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" )
var ( requestsTotal = prometheus.NewCounterVec( prometheus.CounterOpts{ Name: "http_requests_total", Help: "Total number of HTTP requests.", }, []string{"handler", "method"}, ) requestDuration = prometheus.NewHistogramVec( prometheus.HistogramOpts{ Name: "http_request_duration_seconds", Help: "HTTP request duration in seconds.", Buckets: []float64{0.1, 0.2, 0.5, 1, 2, 5}, }, []string{"handler", "method"}, ) )
func handleHello(w http.ResponseWriter, r *http.Request) { start := time.Now() // 执行实际的处理逻辑 elapsedTime := time.Since(start).Seconds() requestsTotal.WithLabelValues("/hello", r.Method).Inc() requestDuration.WithLabelValues("/hello", r.Method).Observe(elapsedTime) }
func main() { http.Handle("/metrics", promhttp.Handler()) http.HandleFunc("/hello", handleHello) http.ListenAndServe(":8080", nil) }
Atas ialah kandungan terperinci Pembangunan Golang: Gunakan Prometheus untuk memantau prestasi aplikasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!