将pulsar-datadog配置接入K8s Datadog Agent无数据问题求助
在Kubernetes中配置Datadog Agent采集Pulsar指标无数据的排查方案
我通过Helm在K8s集群部署了Datadog Agent,将官方pulsar-datadog的配置文件放到/etc/datadog-agent/conf.d/openmetrics.d目录,也导入了仪表盘JSON,但面板始终无数据。不确定配置里的tags(比如bookie id)是否正确,求验证方法及排查思路。
已执行的操作
- 通过Helm安装Datadog Agent,Pod运行正常:
➜ kubectl get pods -n datadog NAME READY STATUS RESTARTS AGE datadog-cluster-agent-c65786576-8kqpb 1/1 Running 0 82m datadog-gq9qr 3/3 Running 0 89m datadog-kube-state-metrics-6fb56bf889-vt65l 1/1 Running 0 11h datadog-v7k44 3/3 Running 0 90m datadog-v9vht 3/3 Running 0 89m - 更新配置文件tags匹配Pulsar Pod名称:
Pulsar集群的bookie Pod信息:
在➜ kubectl get pods -n pulsar NAME READY STATUS RESTARTS AGE ... event-platform-pulsar-1-sn-bookie-0 1/1 Running 0 9h event-platform-pulsar-1-sn-bookie-1 1/1 Running 0 9h event-platform-pulsar-1-sn-bookie-2 1/1 Running 0 9h ...bookie_conf.yaml中配置:tags: - pulsar-bookie: event-platform-pulsar-1-sn-bookie - 将配置文件复制到指定目录:
root@datadog-gq9qr:/etc/datadog-agent/conf.d/openmetrics.d# ls bookie_conf.yaml conf.yaml.example zookeeper_conf.yaml broker_conf.yaml proxy_conf.yaml - 重启Datadog Cluster Agent:
➜ kubectl rollout restart deployment datadog-cluster-agent -n datadog - 导入仪表盘JSON文件至Datadog面板。
排查步骤
1. 验证配置文件的目标采集地址
检查bookie_conf.yaml中的metrics_url是否指向Pulsar Bookie的metrics端点(默认是http://<bookie-pod-ip>:8000/metrics)。如果使用DNS,确认Agent能解析Bookie的服务名或Pod域名。
2. 查看Agent采集日志
进入任意节点上的Datadog Agent Pod,查看openmetrics检查的日志:
kubectl exec -n datadog datadog-gq9qr -- agent logs -s openmetrics
重点关注是否有连接失败、指标解析错误的日志,比如connection refused或invalid metric format。
3. 验证tags配置准确性
- 当前配置的
pulsar-bookie: event-platform-pulsar-1-sn-bookie是Pod前缀,而仪表盘可能需要每个Bookie实例的唯一标识。可尝试改为单个实例的Pod名:
(每个Bookie对应单独的配置文件,或使用Kubernetes自动标签注入)tags: - pulsar-bookie: event-platform-pulsar-1-sn-bookie-0 - 在Datadog平台的Metrics Explorer中搜索
pulsar_前缀的指标,确认是否有数据上报,同时检查指标的tags是否与配置一致。
4. 测试Agent与Bookie的连通性
在Agent Pod中curl Bookie的metrics地址,验证网络访问权限:
kubectl exec -n datadog datadog-gq9qr -- curl http://event-platform-pulsar-1-sn-bookie-0.pulsar.svc.cluster.local:8000/metrics
如果无法访问,检查网络策略、Pod端口是否正确暴露。
5. 重启正确的Agent组件
采集指标的是节点上的Datadog Agent Pod(如datadog-gq9qr),而非Cluster Agent,需重启节点Agent的DaemonSet:
kubectl rollout restart daemonset datadog -n datadog
6. 检查仪表盘过滤器
导入的仪表盘可能默认使用特定tag键值对(如pulsar_cluster或bookie_id),检查仪表盘widget的过滤器规则,确保与你配置的tags匹配。
内容的提问来源于stack exchange,提问作者Hofbr
相关产品推荐
相关产品推荐

