在 Go 程式中,利用 Prometheus 監控效能指標至關重要:安裝 Prometheus 工具。使用 Prometheus client 庫建立 MetricsHandler。使用 promhttp 模組建立 HTTP Server 來處理請求。使用 Prometheus.Register() 註冊指標。使用 NewTimer() 和 ObserveDuration() 追蹤請求延遲。存取 Prometheus Web UI 以視覺化效能指標。
利用Prometheus 監控Go 程式效能指標
在Go 應用程式中監控效能指標至關重要,以快速識別和解決可能影響效能的瓶頸。 Prometheus 是一個流行的開源工具,可幫助我們實現這種監控。透過本文,我們將了解如何使用 Prometheus 監控 Go 程式的效能指標並使用真實的案例來進行說明。
安裝與設定Prometheus
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
cd prometheus-2.39.3.linux-amd64 ./prometheus
##在你的Go 程式中安裝Prometheus client:
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
開啟Prometheus Web UI:http://localhost:9090
使用有意義的指標名稱和幫助資訊。
以上是Golang 技術效能優化中如何監控效能指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!