目标分配器
PrometheusReceiver的目标分发工具,用于在所有部署的Collector实例上分配目标
OpenTelemetry Operator附带一个可选组件,即Target Allocator (TA)。简而言之,TA是一种解耦Prometheus的服务发现和指标收集功能的机制,使它们可以独立扩展。Collector管理Prometheus指标,而不需要安装Prometheus。TA管理Collector的Prometheus接收器的配置。
TA具有两个功能:
- 在Collector池中均匀分配Prometheus目标
- 发现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_configs
,file_sd_configs
等),并添加一个指向它自己配置的Target Allocator实例的http_sd_configs
配置。
有关Target Allocator的更详细信息,请参见TargetAllocator。
最后修改 December 10, 2023: translate (a4350d6e)