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

WBOY
リリース: 2024-06-05 22:18:59
オリジナル
458 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート