第6章 モニタリングスタックのメトリクスの設定
クラスター管理者は、OpenTelemetry Collector カスタムリソース (CR) を設定して、次のタスクを実行できます。
-
Collector のパイプラインメトリクスと有効な Prometheus エクスポーターをスクレイプするための Prometheus
ServiceMonitor
CR を作成します。 - クラスター内モニタリングスタックからメトリクスを取得するように Prometheus Receiver を設定します。
6.1. モニタリングスタックにメトリクスを送信するための設定
OpenTelemetryCollector
カスタムリソース (CR) を設定して、サイドカーデプロイメント用の Prometheus ServiceMonitor
CR または PodMonitor
CR を作成できます。ServiceMonitor
は、Collector の内部メトリクスエンドポイントと Prometheus エクスポーターメトリクスエンドポイントをスクレイピングできます。
Prometheus エクスポーターを使用した OpenTelemetry Collector CR の例
apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
spec:
mode: deployment
observability:
metrics:
enableMetrics: true 1
config:
exporters:
prometheus:
endpoint: 0.0.0.0:8889
resource_to_telemetry_conversion:
enabled: true # by default resource attributes are dropped
service:
telemetry:
metrics:
address: ":8888"
pipelines:
metrics:
exporters: [prometheus]
- 1
- Red Hat build of OpenTelemetry Operator を設定して Prometheus
ServiceMonitor
CR またはPodMonitor
CR を作成し、Collector の内部メトリクスエンドポイントと Prometheus エクスポーターメトリクスエンドポイントをスクレイピングします。
enableMetrics
を true
に設定すると、次の 2 つの ServiceMonitor
インスタンスが作成されます。
-
<instance_name>-collector-monitoring
サービス用の 1 つのServiceMonitor
インスタンス。このServiceMonitor
インスタンスは、Collector の内部メトリクスをスクレイピングします。 -
<instance_name>-collector
サービス用の 1 つのServiceMonitor
インスタンス。このServiceMonitor
インスタンスは、Prometheus エクスポーターインスタンスによって公開されるメトリクスをスクレイピングします。
あるいは、手動で作成した Prometheus PodMonitor
CR を使用すると、Prometheus のスクレイピング中に追加された重複ラベルの削除など、細かい制御を行うことができます。
Collector メトリクスをスクレイプするようにモニタリングスタックを設定する PodMonitor
CR の例
apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: otel-collector spec: selector: matchLabels: app.kubernetes.io/name: <cr_name>-collector 1 podMetricsEndpoints: - port: metrics 2 - port: promexporter 3 relabelings: - action: labeldrop regex: pod - action: labeldrop regex: container - action: labeldrop regex: endpoint metricRelabelings: - action: labeldrop regex: instance - action: labeldrop regex: job