4.2. Cluster Observability Operator によるサービスのモニタリング方法の指定
「Cluster Observability Operator のサンプルサービスをデプロイする」セクションで作成したサンプルサービスが公開するメトリクスを使用するには、/metrics
エンドポイントからメトリクスを取得するようにモニタリングコンポーネントを設定する必要があります。
この設定は、サービスのモニタリング方法を指定する ServiceMonitor
オブジェクト、または Pod のモニタリング方法を指定する PodMonitor
オブジェクトを使用して作成できます。ServiceMonitor
オブジェクトには Service
オブジェクトが必要です。PodMonitor
オブジェクトには必要ないため、MonitoringStack
オブジェクトは Pod が公開するメトリクスエンドポイントから直接メトリクスを取得できます。
この手順は、ns1-coo
namespace に prometheus-coo-example-app
という名前のサンプルサービスの ServiceMonitor
オブジェクトを作成する方法を示しています。
前提条件
-
cluster-admin
クラスターロールを持つユーザーとして、または namespace の管理権限を持つユーザーとして、クラスターにアクセスできる。 - Cluster Observability Operator がインストールされている。
prometheus-coo-example-app
サンプルサービスをns1-coo
namespace にデプロイしている。注記prometheus-example-app
サンプルサービスは、TLS 認証をサポートしていません。
手順
次の
ServiceMonitor
オブジェクト設定の詳細を含む YAML ファイルを、example-coo-app-service-monitor.yaml
という名前で作成します。apiVersion: monitoring.rhobs/v1 kind: ServiceMonitor metadata: labels: k8s-app: prometheus-coo-example-monitor name: prometheus-coo-example-monitor namespace: ns1-coo spec: endpoints: - interval: 30s port: web scheme: http selector: matchLabels: app: prometheus-coo-example-app
この設定は、
prometheus-coo-example-app
サンプルサービスが公開するメトリクスデータを収集するためにMonitoringStack
オブジェクトが参照するServiceMonitor
オブジェクトを定義します。次のコマンドを実行して、設定をクラスターに適用します。
$ oc apply -f example-coo-app-service-monitor.yaml
次のコマンドを実行して出力を観察し、
ServiceMonitor
リソースが作成されたことを確認します。$ oc -n ns1-coo get servicemonitors.monitoring.rhobs
出力例
NAME AGE prometheus-coo-example-monitor 81m