6.4. カスタムアプリケーションについてのクラスター外からのメトリックへのアクセス
ユーザー定義プロジェクトを使用して独自のサービスを監視する場合は、クラスターの外部から Prometheus メトリクスをクエリーできます。このデータには、thanos-querier
ルートを使用してクラスターの外部からアクセスします。
このアクセスは、認証に Bearer Token を使用することのみをサポートします。
前提条件
- "ユーザー定義プロジェクトのモニタリングの有効化" の手順に従い、独自のサービスをデプロイしている。
-
Thanos Querier API へのアクセス権限を持つ
cluster-monitoring-view
クラスターロールでアカウントにログインしている。 Thanos Querier API ルートの取得権限を持つアカウントにログインしています。
注記アカウントに Thanos Querier API ルートの取得権限がない場合、クラスター管理者はルートの URL を提供できます。
手順
次のコマンドを実行して、Prometheus に接続するための認証トークンを展開します。
$ TOKEN=$(oc whoami -t)
次のコマンドを実行して、
thanos-querier
API ルート URL を展開します。$ HOST=$(oc -n openshift-monitoring get route thanos-querier -ojsonpath={.spec.host})
次のコマンドを使用して、サービスが実行されている namespace に namespace を設定します。
$ NAMESPACE=ns1
次のコマンドを実行して、コマンドラインで独自のサービスのメトリクスに対してクエリーを実行します。
$ 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"]}]}}