ターゲットアロケーター

デプロイされたすべてのコレクターインスタンスでPrometheusレシーバーのターゲットを分散するツール

OpenTelemetryオペレーターはオプションのコンポーネントであるターゲットアロケーター(TA)を提供します。 簡単に言うと、TAはPrometheusのサービスディスカバリーとメトリクス収集機能を分離するメカニズムであり、それらを独立してスケールさせることができます。 コレクターは、PrometheusをインストールすることなくPrometheusメトリクスを収集します。 TAは、コレクターのPrometheusレシーバーの設定を管理します。

TAは2つの機能を提供します。

  1. Prometheusターゲットをコレクターのプール間で均等に分散する
  2. Prometheusのカスタムリソースを検出する

Getting Started

OpenTelemetryコレクターのカスタムリソース(CR)を作成し、TAを有効化すると、オペレーターはそのCRの一部として各コレクターのPodに特定の http_sd_config ディレクティブを提供する新しいDeploymentとServiceを作成します。 また、Prometheusレシーバーの設定も変更され、TAのhttp_sd_configを使用するようになります。 次の例は、ターゲットアロケーターの使用開始方法を示しています。

apiVersion: opentelemetry.io/v1alpha1 kind: OpenTelemetryCollector metadata: name: collector-with-ta spec: mode: statefulset targetAllocator: enabled: true config: | receivers: prometheus: config: scrape_configs: - job_name: 'otel-collector' scrape_interval: 10s static_configs: - targets: [ '0.0.0.0:8888' ] metric_relabel_configs: - action: labeldrop regex: (id|name) replacement: $$1 - action: labelmap regex: label_(.+) replacement: $$1 exporters: # NOTE: v0.86.0より前のバージョンでは `debug` の代わりに `logging` を使用してください。 debug: service: pipelines: metrics: receivers: [prometheus] processors: [] exporters: [debug]

この背後では、OpenTelemetryオペレーターがリコンシレーション後にコレクター設定を次のように変換します。

receivers: prometheus: config: scrape_configs: - job_name: otel-collector scrape_interval: 10s http_sd_configs: - url: http://collector-with-ta-targetallocator:80/jobs/otel-collector/targets?collector_id=$POD_NAME metric_relabel_configs: - action: labeldrop regex: (id|name) replacement: $$1 - action: labelmap regex: label_(.+) replacement: $$1 exporters: debug: service: pipelines: metrics: receivers: [prometheus] processors: [] exporters: [debug]

オペレーターが scrape_configs セクションから既存のサービスディスカバリー構成(たとえば static_configsfile_sd_configs など)を削除し、プロビジョニングしたターゲットアロケーターインスタンスを指す http_sd_configs 構成を追加することに注意してください。

ターゲットアロケーターの詳細については、ターゲットアロケーターを参照してください。