目标分配器

PrometheusReceiver的目标分发工具,用于在所有部署的Collector实例上分配目标

OpenTelemetry Operator附带一个可选组件,即Target Allocator (TA)。简而言之,TA是一种解耦Prometheus的服务发现和指标收集功能的机制,使它们可以独立扩展。Collector管理Prometheus指标,而不需要安装Prometheus。TA管理Collector的Prometheus接收器的配置。

TA具有两个功能:

  1. 在Collector池中均匀分配Prometheus目标
  2. 发现Prometheus自定义资源

入门指南

当创建一个OpenTelemetryCollector自定义资源(CR)并将TA设置为启用时,操作器将创建一个新的部署和服务,以为每个CollectorPod提供特定的http_sd_config指令,作为CR的一部分。它还会更改CR中的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:
      # 注意:在 v0.86.0 之前使用 `logging` 而不是 `debug`。
      debug:

    service:
      pipelines:
        metrics:
          receivers: [prometheus]
          processors: []
          exporters: [debug]    

在幕后,OpenTelemetry Operator会将Collector的配置在协调后转换为以下配置:

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等),并添加一个指向它自己配置的Target Allocator实例的http_sd_configs配置。

有关Target Allocator的更详细信息,请参见TargetAllocator

最后修改 December 10, 2023: translate (a4350d6e)