我正在尝试将我的 Otel 收集器配置为仅从具有注释
prometheus.io/scrape=true
的 pod 中提取指标,但指标是从注释设置为 prometheus.io/scrape=false
的 pod 中抓取的。我很难理解下面的配置有什么问题。 OTEL 收集器日志中没有任何信息(设置为调试)。
receivers:
prometheus:
config:
scrape_configs:
- job_name: 'otel-collector-k8s-pods'
scrape_interval: 30s
scrape_timeout: 2s
kubernetes_sd_configs:
- role: pod
tls_config:
insecure_skip_verify: true
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scheme]
action: replace
target_label: __scheme__
regex: (https?)
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
target_label: __address__
regex: (.+)(?::\d+);(\d+)
replacement: $1:$2
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: namespace
- source_labels: [__meta_kubernetes_host_name]
action: replace
target_label: kubernetes_pod_name
我设置了一个简单的测试,一个 pod 使用注释运行
prometheus.io/scrape: 'true'
,另一个运行 prometheus.io/scrape: 'false'
仅从 scrape 设置为 true 的 pod 中读取指标
当我将第二个 Pod 的 scrape 设置为 true 时,指标开始出现,这意味着注释正在工作。
我正在使用更简单的配置。也许在重新标记的过程中,你的配置中有些东西被弄乱了。
尝试一一添加重新标签配置,看看哪个是罪魁祸首。这是工作配置:
prometheus:
config:
scrape_configs:
- job_name: opentelemetry-collector
scrape_interval: 10s
static_configs:
- targets:
- ${MY_POD_IP}:8888
- job_name: k8s
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
regex: "true"
action: keep
附注在这里使用 opentelemetry-collector-0.30.0 helm 图表
在上面的配置中,我们需要在k8集群上安装Prometheus服务器吗?
抱歉,我不知道如何在上述问题上添加此内容@alpa