ホームページ  >  記事  >  バックエンド開発  >  Golang テクノロジーのパフォーマンス最適化でパフォーマンス指標を監視するにはどうすればよいですか?

Golang テクノロジーのパフォーマンス最適化でパフォーマンス指標を監視するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-06-05 22:18:59427ブラウズ

Go プログラムでは、Prometheus を使用してパフォーマンス指標を監視することが重要です。Prometheus ツールをインストールします。 Prometheus クライアント ライブラリを使用して MetricsHandler を作成します。 promhttp モジュールを使用して、リクエストを処理する HTTP サーバーを作成します。 Prometheus.Register() を使用してメトリクスを登録します。 NewTimer() と ObserveDuration() を使用してリクエストのレイテンシーを追跡します。 Prometheus Web UI にアクセスして、パフォーマンス メトリックを視覚化します。

Golang 技术性能优化中如何监控性能指标?

Prometheus を利用して Go プログラムのパフォーマンス メトリクスを監視する

Go アプリケーションのパフォーマンス メトリクスを監視することは、パフォーマンスに影響を与える可能性のあるボトルネックを迅速に特定して解決するために重要です。 Prometheus は、この種の監視の実現に役立つ人気のあるオープン ソース ツールです。この記事では、Prometheus を使用して Go プログラムのパフォーマンス指標を監視する方法を学び、実際のケースを使用して説明します。

Prometheus をインストールして構成する

  1. システムに 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
  2. Prometheus サービスを開始する:

    cd prometheus-2.39.3.linux-amd64
    ./prometheus

Prometheus クライアントを作成する

  1. Go プログラムで Prometheus クライアントをインストールします。

    go get github.com/prometheus/client_golang/prometheus
    go get github.com/prometheus/client_golang/prometheus/promhttp
  2. MetricsHandlerを作成する:

    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))
    }
  3. Goプログラムを開始する:

    go run main.go

パフォーマンス指標を視覚化する

    Prometheus Web UIを開く: http://localhost:9090
  1. スイッチに移動「グラフ」タブで「http_server_request_duration_seconds」メトリクスを選択します。

ベスト プラクティス

    意味のあるメトリクス名とヘルプ情報を使用します。
  • 公開アプリの複数の指標を監視します。
  • パフォーマンスの問題をリアルタイムで検出するためのアラート ルールを設定します。
  • Grafana などの視覚化ツールを使用してダッシュボードを作成します。

以上がGolang テクノロジーのパフォーマンス最適化でパフォーマンス指標を監視するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。