第13章 モニタリング関連の問題のトラブルシューティング
ユーザー定義プロジェクトのモニタリングに関する一般的な問題のトラブルシューティング手順を参照してください。
13.1. ユーザー定義プロジェクトのメトリクスが利用できない理由の判別
ユーザー定義プロジェクトのモニタリング時にメトリクスが表示されない場合は、以下の手順を実行して問題のトラブルシューティングを実行します。
手順
メトリクス名に対してクエリーを実行し、プロジェクトが正しいことを確認します。
-
Web コンソールの Developer パースペクティブから、Observe
Metrics を選択します。 - Project: 一覧でメトリクスで表示するプロジェクトを選択します。
Select query 一覧からクエリーを選択するか、Show PromQL を選択してカスタム PromQL クエリーを実行します。
メトリクスはグラフに表示されます。
クエリーはプロジェクトごとに実行される必要があります。表示されるメトリクスは、選択したプロジェクトに関連するメトリクスです。
-
Web コンソールの Developer パースペクティブから、Observe
メトリクスが必要な Pod がアクティブにメトリクスを提供していることを確認します。以下の
oc exec
コマンドを Pod で実行し、podIP
、port
、および/metrics
をターゲットにします。$ oc exec <sample_pod> -n <sample_namespace> -- curl <target_pod_IP>:<port>/metrics
注記curl
がインストールされている Pod でコマンドを実行する必要があります。以下の出力例は、有効なバージョンのメトリクスを含む結果を示しています。
出力例
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed # HELP version Version information about this binary-- --:--:-- --:--:-- 0 # TYPE version gauge version{version="v0.1.0"} 1 100 102 100 102 0 0 51000 0 --:--:-- --:--:-- --:--:-- 51000
無効な出力は、対応するアプリケーションに問題があることを示しています。
-
PodMonitor
CRD を使用している場合は、PodMonitor
CRD がラベル一致を使用して適切な Pod を参照するよう設定されていることを確認します。詳細は、Prometheus Operator のドキュメントを参照してください。 ServiceMonitor
CRD を使用し、Pod の/metrics
エンドポイントがメトリクスデータを表示している場合は、以下の手順を実行して設定を確認します。サービスが正しい
/metrics
エンドポイントを参照していることを確認します。この出力のサービスlabels
は、後続の手順でサービスが定義するサービスモニターのlabels
と/metrics
エンドポイントと一致する必要があります。$ oc get service
出力例
apiVersion: v1 kind: Service 1 metadata: labels: 2 app: prometheus-example-app name: prometheus-example-app namespace: ns1 spec: ports: - port: 8080 protocol: TCP targetPort: 8080 name: web selector: app: prometheus-example-app type: ClusterIP
serviceIP
、port
、および/metrics
エンドポイントをクエリーし、以前に Pod で実行したcurl
コマンドと同じメトリクスがあるかどうかを確認します。以下のコマンドを実行してサービス IP を見つけます。
$ oc get service -n <target_namespace>
/metrics
エンドポイントをクエリーします。$ oc exec <sample_pod> -n <sample_namespace> -- curl <service_IP>:<port>/metrics
以下の例では、有効なメトリクスが返されます。
出力例
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 102 100 102 0 0 51000 0 --:--:-- --:--:-- --:--:-- 99k # HELP version Version information about this binary # TYPE version gauge version{version="v0.1.0"} 1
ラベルのマッチングを使用して、
ServiceMonitor
オブジェクトが必要なサービスを参照するように設定されていることを確認します。これを実行するには、oc get service
出力のService
オブジェクトをoc get servicemonitor
出力のServiceMonitor
オブジェクトと比較します。メトリクスを表示するには、ラベルが一致している必要があります。たとえば、直前の手順の
Service
オブジェクトにapp: prometheus-example-app
ラベルがあり、ServiceMonitor
オブジェクトに同じapp: prometheus-example-app
一致ラベルがある点に注意してください。
- すべて有効になっていても、メトリクスが利用できない場合は、サポートチームにお問い合わせください。