6.4. カスタムアプリケーションについてのクラスター外からのメトリックへのアクセス

ユーザー定義プロジェクトで独自のサービスをモニターする際に、クラスターの外部から Prometheus メトリクスをクエリーできます。thanos-querier ルートを使用して、クラスターの外部からこのデータにアクセスします。

このアクセスは、認証に Bearer Token を使用することのみをサポートします。

前提条件

  • "ユーザー定義プロジェクトのモニタリングの有効化" の手順に従い、独自のサービスをデプロイしている。
  • Thanos Querier API へのアクセス権限を持つ cluster-monitoring-view クラスターロールでアカウントにログインしている。
  • Thanos Querier API ルートの取得権限を持つアカウントにログインしています。

    注記

    アカウントに Thanos Querier API ルートの取得権限がない場合、クラスター管理者はルートの URL を提供できます。

手順

  1. 次のコマンドを実行して、Prometheus に接続するための認証トークンを展開します。

    $ TOKEN=$(oc whoami -t)
  2. 次のコマンドを実行して、thanos-querier API ルート URL を展開します。

    $ HOST=$(oc -n openshift-monitoring get route thanos-querier -ojsonpath={.spec.host})
  3. 次のコマンドを使用して、サービスが実行されている namespace に namespace を設定します。

    $ NAMESPACE=ns1
  4. 次のコマンドを実行して、コマンドラインで独自のサービスのメトリクスに対してクエリーを実行します。

    $ curl -H "Authorization: Bearer $TOKEN" -k "https://$HOST/api/v1/query?" --data-urlencode "query=up{namespace='$NAMESPACE'}"

    出力には、Prometheus がスクレイピングしている各アプリケーション Pod のステータスが表示されます。

    出力例

    {"status":"success","data":{"resultType":"vector","result":[{"metric":{"__name__":"up","endpoint":"web","instance":"10.129.0.46:8080","job":"prometheus-example-app","namespace":"ns1","pod":"prometheus-example-app-68d47c4fb6-jztp2","service":"prometheus-example-app"},"value":[1591881154.748,"1"]}]}}