HTTP サーバー

このドキュメントでは、Google Cloud Managed Service for Prometheus を使用して、アプリケーションによって提供される HTTP リクエストから指標を収集できるように、Google Kubernetes Engine の Deployment を構成する方法について説明します。このセクションでは、次のことを行う方法について説明します。

以下の手順は、Managed Service for Prometheus でマネージド コレクションを使用している場合にのみ適用されます。

設定

HTTP サーバーから [アプリケーション] ダッシュボードに表示可能な指標を収集するには、以下で説明するように次の指標をエクスポートする必要があります。

  • counter タイプの http_requests_total(ラベル codemethod)。
  • histogram タイプの http_request_duration_seconds_bucket(ラベル method)。

Prometheus Go クライアントを使用してこれらの指標を収集する例については、prometheus-example-app をご覧ください。

想定されるエンドポイントで HTTP サーバーが指標を出力していることを確認するには、次の操作を行います。

  1. 次のコマンドを使用してポート転送を設定します。
    kubectl -n NAMESPACE_NAME port-forward deploy/HTTP_SERVER_DEPLOYMENT_NAME PROMETHEUS_PORT_NUMBER
      
  2. 別のターミナル セッションでブラウザまたは curl ユーティリティを使用して、localhost:PROMETHEUS_PORT_NUMBER にアクセスします。

PodMonitoring リソースを定義する

ターゲット ディスカバリの場合、Managed Service for Prometheus Operator には、同じ Namespace 内の HTTP サーバーに対応する PodMonitoring リソースが必要です。

次の PodMonitoring 構成を使用できます。

apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
  name: my-prometheus-http-app
  labels:
    app.kubernetes.io/name: my-prometheus-http-app
    app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
  endpoints:
  - port: web
    scheme: http
    interval: 30s
    path: /metrics
  selector:
    matchLabels:
      app.kubernetes.io/name: prometheus-example-app

port フィールドと MatchLabels フィールドの値が、モニタリング対象の HTTP アプリケーションの値と一致していることを確認します。

構成の変更をローカル ファイルから適用するには、次のコマンドを実行します。

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

Terraform を使用して構成を管理することもできます。

アプリケーション指標を表示する

HTTP アプリケーションからのリクエスト、エラー率、レイテンシの指標を表示するには、次の操作を行います。

  1. Google Cloud コンソールで [ワークロード] ページに移動します。

    [ワークロード] に移動

    検索バーを使用してこのページを検索した場合は、小見出しが [Kubernetes Engine] の結果を選択します。

  2. ワークロードのリストで Deployment をクリックします。リストの [タイプ] 列にワークロードのタイプが表示されます。
  3. [Deployment の詳細] ページで、[オブザーバビリティ] タブをクリックします。
  4. ダッシュボード セレクタで [アプリケーション] を選択します。

詳細については、アプリケーションのパフォーマンス指標を使用するをご覧ください。

トラブルシューティング

Managed Service for Prometheus での指標の取り込みに関するトラブルシューティングについては、取り込み側の問題のトラブルシューティングエクスポータからの収集に関する問題をご覧ください。