ホームページ >バックエンド開発 >Golang >Golang 開発: Prometheus を使用してアプリケーションのパフォーマンスを監視する

Golang 開発: Prometheus を使用してアプリケーションのパフォーマンスを監視する

PHPz
PHPzオリジナル
2023-09-21 12:39:161487ブラウズ

Golang 開発: Prometheus を使用してアプリケーションのパフォーマンスを監視する

Golang 開発: Prometheus を使用してアプリケーションのパフォーマンスを監視します。特定のコード例が必要です

要約: この記事では、Golang 開発で Prometheus ライブラリを使用してアプリケーションを監視する方法を紹介します開発者がすぐに始められるように、具体的なコード例が提供されています。

はじめに:

現代のアプリケーション開発において、アプリケーションのパフォーマンスの監視は非常に重要なリンクです。監視を通じて、アプリケーションの実行状況をリアルタイムで把握し、問題を適時に発見して調整できるため、アプリケーションの安定性とパフォーマンスが向上します。

Prometheus は、クラウド ネイティブおよびコンテナ化されたアプリケーションの監視分野で広く使用されているオープンソース監視システムおよび時系列データベースです。アプリケーションのパフォーマンス指標をリアルタイムで監視するのに役立つ、豊富な監視指標の種類と機能を提供します。

この記事では、特定の例を使用して、Golang 開発でアプリケーションのパフォーマンスを監視するために Prometheus ライブラリを使用する方法を示します。

ステップ 1: Prometheus のインストールと構成

まず、システムに Prometheus をインストールして構成する必要があります。バイナリは公式 Web サイト (https://prometheus.io/) からダウンロードしてインストールできます。

インストールが完了したら、Prometheus 構成ファイル prometheus.yml を構成する必要があります。構成ファイルでは、監視する目標と対応するメトリクスを定義する必要があります。

たとえば、HTTP リクエストの総数と Golang アプリケーションのリクエスト遅延を監視したい場合は、次の構成を追加できます。

scrape_configs:
  - job_name: 'my_app'
    metrics_path: /metrics
    static_configs:
    - targets: ['localhost:8080']

ステップ 2: Prometheus 監視コードを追加します。 Golang アプリケーション

次に、Prometheus 関連のコードを Golang アプリケーションに追加する必要があります。まず、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"},
   )
)

次に、アプリケーションの処理関数コードに対応するモニタリングを追加する必要があります。各処理機能の開始時と終了時に、Prometheus が提供する監視方法を使用してデータを収集および記録できます。

たとえば、次のコードは、Prometheus を使用して Golang アプリケーションで HTTP リクエストを監視する方法を示しています:

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)
}

最後に、Prometheus が HTTP を通過できるように、Prometheus の HTTP プロセッサを設定する必要があります。定義したインジケーターを取得します。

func main() {
   http.Handle("/metrics", promhttp.Handler())
   http.HandleFunc("/hello", handleHello)
   http.ListenAndServe(":8080", nil)
}

ステップ 3: アプリケーションを起動し、Prometheus モニタリング インターフェイスにアクセスします。

上記のステップを完了すると、アプリケーションを開始して Prometheus モニタリング インターフェイスにアクセスできます。ブラウザに http://localhost:9090 と入力し、定義したインジケーター名をクエリ ボックスに入力して、対応するパフォーマンス インジケーター データを表示します。

たとえば、http_requests_total をクエリすることでリクエストの合計数を確認したり、http_request_duration_seconds をクエリすることでリクエストの遅延を確認したりできます。

概要:

この記事では、Golang 開発で Prometheus ライブラリを使用してアプリケーションのパフォーマンスを監視する方法を紹介し、具体的なコード例を示します。 Prometheus を通じて、アプリケーションのさまざまな指標を簡単に収集および記録し、Prometheus 監視インターフェイスを通じてリアルタイムで表示および分析できます。

この記事では基本的な使用法と例のみを紹介しますが、Prometheus は、さまざまなシナリオやニーズの監視要件を満たすためのより豊富な機能と拡張性を提供します。この記事が、プロメテウスに興味のある読者に役立ち、さらなる探究と実践のきっかけになれば幸いです。

以上がGolang 開発: Prometheus を使用してアプリケーションのパフォーマンスを監視するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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