Dalam program Go, adalah penting untuk menggunakan Prometheus untuk memantau penunjuk prestasi: pasang alat Prometheus. Buat MetricsHandler menggunakan perpustakaan klien Prometheus. Gunakan modul promhttp untuk membuat Pelayan HTTP untuk mengendalikan permintaan. Gunakan Prometheus.Register() untuk mendaftarkan metrik. Gunakan NewTimer() dan ObserveDuration() untuk menjejaki kependaman permintaan. Akses UI web Prometheus untuk memvisualisasikan metrik prestasi.
Gunakan Prometheus untuk memantau metrik prestasi program Go
Memantau metrik prestasi dalam aplikasi Go adalah penting untuk mengenal pasti dan menyelesaikan kesesakan yang mungkin menjejaskan prestasi dengan cepat. Prometheus ialah alat sumber terbuka yang popular yang membantu kami mencapai pemantauan seperti ini. Melalui artikel ini, kami akan mempelajari cara menggunakan Prometheus untuk memantau penunjuk prestasi program Go dan menggunakan kes sebenar untuk menggambarkan.
Pasang dan konfigurasikan Prometheus
Pasang Prometheus pada sistem anda:
wget https://github.com/prometheus/prometheus/releases/download/v2.39.3/prometheus-2.39.3.linux-amd64.tar.gz tar -xzvf prometheus-2.39.3.linux-amd64.tar.gz
Mulakan perkhidmatan Prometheus:
cd prometheus-2.39.3.linux-amd64 ./prometheus
go get github.com/prometheus/client_golang/prometheus go get github.com/prometheus/client_golang/prometheus/promhttp
package main import ( "log" "net/http" "time" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" ) const ( // RequestDuration defines the prometheus metric to track the time elapsed // for the handling of incoming requests RequestDuration = "http_server_request_duration_seconds" ) var requestDuration = prometheus.NewHistogram(prometheus.HistogramOpts{ Name: RequestDuration, Help: "HTTP server request duration in seconds.", Buckets: []float64{0.1, 0.3, 0.5, 0.75, 1}, }) func main() { // Register the RequestDuration metric prometheus.Register(requestDuration) // Create a new HTTP Server with a MetricsHandler http.Handle("/metrics", promhttp.Handler()) http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { timer := prometheus.NewTimer(requestDuration.WithLabelValues(r.URL.Path)) defer timer.ObserveDuration() time.Sleep(time.Millisecond * 100) }) // Start the server log.Fatal(http.ListenAndServe(":8080", nil)) }
go run main.go
Visualkan penunjuk prestasi
Atas ialah kandungan terperinci Bagaimana untuk memantau penunjuk prestasi dalam pengoptimuman prestasi teknologi Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!