16.4. サービスを関しするための Cluster Observability Operator 設定
Cluster Observability Operator はテクノロジープレビュー機能としてのみ使用できます。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Cluster Observability Operator (COO) で管理されるモニタリングスタックを設定することで、サービスのメトリクスを監視できます。
サービスのモニタリングをテストするには、次の手順に従います。
- サービスエンドポイントを定義するサンプルサービスをデプロイします。
-
COO によるサービスのモニタリング方法を指定する
ServiceMonitorオブジェクトを作成します。 -
ServiceMonitorオブジェクトを検出するためのMonitoringStackオブジェクトを作成します。
16.4.1. Cluster Observability Operator のサンプルサービスをデプロイする リンクのコピーリンクがクリップボードにコピーされました!
この設定では、ユーザー定義の ns1-coo プロジェクトに prometheus-coo-example-app という名前のサンプルサービスをデプロイします。このサービスは、カスタム version メトリクスを公開します。
前提条件
-
cluster-adminクラスターロールを持つユーザーとして、または namespace の管理権限を持つユーザーとして、クラスターにアクセスできる。
手順
prometheus-coo-example-app.yamlという名前の YAML ファイルを作成します。このファイルには、namespace、デプロイメント、およびサービスに関する次の設定の詳細が含まれます。apiVersion: v1 kind: Namespace metadata: name: ns1-coo --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: prometheus-coo-example-app name: prometheus-coo-example-app namespace: ns1-coo spec: replicas: 1 selector: matchLabels: app: prometheus-coo-example-app template: metadata: labels: app: prometheus-coo-example-app spec: containers: - image: ghcr.io/rhobs/prometheus-example-app:0.4.2 imagePullPolicy: IfNotPresent name: prometheus-coo-example-app --- apiVersion: v1 kind: Service metadata: labels: app: prometheus-coo-example-app name: prometheus-coo-example-app namespace: ns1-coo spec: ports: - port: 8080 protocol: TCP targetPort: 8080 name: web selector: app: prometheus-coo-example-app type: ClusterIP- ファイルを保存します。
次のコマンドを実行して、設定をクラスターに適用します。
$ oc apply -f prometheus-coo-example-app.yaml次のコマンドを実行して出力を確認し、Pod が実行されていることを確認します。
$ oc -n -ns1-coo get pod出力例
NAME READY STATUS RESTARTS AGE prometheus-coo-example-app-0927545cb7-anskj 1/1 Running 0 81m
16.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-coonamespace にデプロイしている。注記prometheus-example-appサンプルサービスは、TLS 認証をサポートしていません。
手順
次の
ServiceMonitorオブジェクト設定の詳細を含む YAML ファイルを、example-coo-app-service-monitor.yamlという名前で作成します。apiVersion: monitoring.rhobs/v1alpha1 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-app-service-monitor.yaml次のコマンドを実行して出力を観察し、
ServiceMonitorリソースが作成されたことを確認します。$ oc -n ns1-coo get servicemonitor出力例
NAME AGE prometheus-coo-example-monitor 81m
16.4.3. Cluster Observability Operator の MonitoringStack オブジェクトを作成する リンクのコピーリンクがクリップボードにコピーされました!
ターゲット prometheus-coo-example-app サービスが公開するメトリクスデータを収集するには、「Cluster Observability Operator でサービスを監視する方法を指定する」セクションで作成した ServiceMonitor オブジェクトを参照する MonitoringStack オブジェクトを作成します。この MonitoringStack オブジェクトはサービスを検出し、そこから公開されているメトリクスデータを収集できます。
前提条件
-
cluster-adminクラスターロールを持つユーザーとして、または namespace の管理権限を持つユーザーとして、クラスターにアクセスできる。 - Cluster Observability Operator がインストールされている。
-
prometheus-coo-example-appサンプルサービスをns1-coonamespace にデプロイしている。 -
ns1-coonamespace に、prometheus-coo-example-monitorという名前のServiceMonitorオブジェクトを作成している。
手順
-
MonitoringStackオブジェクト設定の YAML ファイルを作成します。この例では、ファイル名をexample-coo-monitoring-stack.yamlにします。 以下の
MonitoringStackオブジェクト設定の詳細を追加します。MonitoringStackオブジェクトの例apiVersion: monitoring.rhobs/v1alpha1 kind: MonitoringStack metadata: name: example-coo-monitoring-stack namespace: ns1-coo spec: logLevel: debug retention: 1d resourceSelector: matchLabels: k8s-app: prometheus-coo-example-monitor次のコマンドを実行して、
MonitoringStackオブジェクトを適用します。$ oc apply -f example-coo-monitoring-stack.yaml次のコマンドを実行し、出力で
MonitoringStackオブジェクトが利用可能であることを確認します。$ oc -n ns1-coo get monitoringstack出力例
NAME AGE example-coo-monitoring-stack 81m