Custom OpenMetrics未被DataDog采集问题咨询
Prometheus FastAPI Instrumentator 指标Datadog采集异常解决方案
1. Counter类型指标采集失败常见原因
- 指标命名不符合规则:Datadog默认仅识别符合Prometheus命名规范的Counter指标,若自定义Counter未带
_total后缀、包含非标准字符,会被采集规则直接过滤。 - K8s工作负载注解配置错误:集群内通过Datadog Agent采集时,需要在Pod模板中配置正确的采集注解:
注意此处端口不能填服务业务端口,要和FastAPI中指标暴露的端口完全一致。prometheus.io/scrape: "true" prometheus.io/port: "指标暴露端口" prometheus.io/path: "/metrics" - 采集规则过滤冲突:检查Datadog Agent的
datadog.yaml配置,是否exclude_metrics规则命中了你的自定义指标,或include_metrics白名单未覆盖自定义指标前缀。
2. Histogram桶未转换为Distribution指标常见原因
- 未开启转换开关:Datadog Agent默认关闭Prometheus Histogram到Datadog Distribution的自动转换,需要在Agent的Prometheus采集配置中新增两个参数:
send_histograms_buckets: true send_distribution_buckets: true - 桶标签不符合标准:确认你的Histogram指标桶标签为Prometheus标准的
le标签,自定义标签名无法被Datadog识别,无法完成转换。 - 采样率配置异常:若Histogram侧配置了采样,或Datadog Distribution采样率设置低于100%,会导致桶数据丢失。
3. 验证步骤
- 完成部署后直接访问FastAPI的
/metrics端点,确认Counter指标数值正常累加、Histogram的_bucket/_sum/_count三个系列均正常输出。 - 进入Datadog Agent Pod执行
datadog-agent status,查看Prometheus采集模块的日志,确认指标端点已被发现、无指标过滤或请求报错记录。 - 若同时部署了kube-prometheus-stack,确认两个采集组件的采集规则无冲突,Pod注解未被误匹配。
内容的提问来源于stack exchange,提问作者Riley Hun
相关产品推荐
相关产品推荐

