2.5. メトリクスコレクションの設定
サービスが公開するメトリクスを使用するには、OpenShift Monitoring を、/metrics
エンドポイントからメトリクスを収集できるように設定する必要があります。これは、サービスのモニターリング方法を指定する ServiceMonitor
カスタムリソース定義 (CRD) または Pod のモニターリング方法を指定する PodMonitor
CRD を使用して実行できます。前者の場合は Service
オブジェクトが必要ですが、後者の場合は不要です。これにより、Prometheus は Pod によって公開されるメトリクスエンドポイントからメトリクスを直接収集することができます。
以下の手順では、サービスの ServiceMonitor
リソースを作成する方法を説明します。
前提条件
-
クラスター管理者または
monitor-crd-edit
ロールを持つユーザーとしてログインします。
手順
-
ServiceMonitor
リソース設定の YAML ファイルを作成します。この例では、ファイルはexample-app-service-monitor.yaml
という名前です。 ServiceMonitor
リソースを作成するための設定をファイルに入力します。apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: k8s-app: prometheus-example-monitor name: prometheus-example-monitor namespace: ns1 spec: endpoints: - interval: 30s port: web scheme: http selector: matchLabels: app: prometheus-example-app
この設定により、OpenShift Monitoring はサンプルサービスのデプロイでデプロイされるサンプルサービスによって公開されるメトリクスを収集します。これには、単一の
version
メトリクスが含まれます。設定ファイルをクラスターに適用します。
$ oc apply -f example-app-service-monitor.yaml
ServiceMonitor
リソースをデプロイするのに多少時間がかかります。ServiceMonitor
リソースが実行中であることを確認できます。$ oc -n ns1 get servicemonitor
出力例
NAME AGE prometheus-example-monitor 81m
関連情報
ServiceMonitor
および PodMonitor
リソースについての詳細は、Prometheus Operator API のドキュメント を参照してください。