为何无法用AWS ADOT Prometheus Collector采集Pod指标?
问题:替换为AWS ADOT Prometheus Collector后,Grafana的Prometheus2.0 Stats面板无指标显示
此前使用Prometheus Helm Chart及自定义Chart采集Pod指标,现替换为AWS ADOT架构(Collector→AMP→AWS Grafana),已配置OpenTelemetryCollector资源、RBAC规则及自定义采集作业,但无法在Grafana的Prometheus2.0 Stats面板中看到指标,需排查配置问题或面板兼容性。
排查方向
一、配置问题排查
采集作业有效性验证
- 确认自定义采集作业
xxxx-service-monitoring的匹配逻辑:检查目标Pod所在命名空间是否为xxxx,容器端口是否为9090/9121。进入ADOT Collector Pod执行curl http://localhost:8888/metrics,过滤prometheus_target_scrape_samples_scraped{job="xxxx-service-monitoring"},查看是否有样本被采集。 - 补充Relabel规则:当前配置未设置
__address__标签替换,Pod服务发现生成的默认地址可能失效。添加以下规则确保采集地址正确:- action: replace source_labels: [__meta_kubernetes_pod_ip, __meta_kubernetes_pod_container_port_number] separator: ":" target_label: __address__
- 确认自定义采集作业
AMP写入权限与状态验证
- 查看ADOT Collector日志:搜索
prometheusremotewrite关键词,确认是否有写入成功记录,或是否存在IAM权限错误(如access denied)。需确保xxxxx-role-amp-remote-write-adot角色拥有aps:RemoteWrite权限。 - 直接测试AMP写入:使用AWS CLI执行
aws aps remote-write --workspace-id xxxxxxx --data file://test-metric.txt(test-metric.txt需包含Prometheus格式的测试指标),验证AMP能否正常接收数据。
- 查看ADOT Collector日志:搜索
RBAC权限检查
执行kubectl auth can-i get pods --as=system:serviceaccount:default:adot-collector-sa,确认adot-collector-sa服务账号已正确绑定otel-prometheus-role,且权限覆盖pods、pods/proxy等服务发现所需资源。
二、兼容性验证
Prometheus2.0 Stats面板默认依赖原生Prometheus的prometheus_*前缀指标,但ADOT Collector的Prometheus Receiver不会自动采集自身的这类指标:
- 添加Collector自身采集作业:在
scrape_configs中加入以下配置,采集ADOT Collector的监控指标:- job_name: adot-collector static_configs: - targets: ["localhost:8888"] - 验证目标指标是否存在:在Grafana中直接查询自定义服务的指标(而非仅依赖Prometheus2.0 Stats面板)。若目标指标已写入AMP但面板无数据,说明面板依赖原生Prometheus专属指标,需调整面板查询逻辑,或通过采集Collector指标替代。
内容的提问来源于stack exchange,提问作者Jatin Mehrotra
相关产品推荐
相关产品推荐

