You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google托管Prometheus查询无指标返回 如何排查指标抓取失效问题

Google Managed Prometheus(GMP)指标抓取无返回结果排障指南

已知自托管Prometheus对目标test服务抓取正常,可排除应用本身指标接口异常问题,按以下优先级定位根因:

1. 校验PodMonitoring配置匹配性

  • 确认命名空间一致性:PodMonitoring资源只会匹配同命名空间下的Pod,请先执行kubectl get podmonitoring test -A确认该资源所在命名空间,和app=test的工作负载所在命名空间(当前svc位于default命名空间)一致
  • 校验端口字段配置:PodMonitoring的spec.endpoints.port字段必须匹配目标Pod上的容器端口名称,而非Service端口名。执行以下命令查看工作负载Pod的容器端口配置,确认暴露指标的端口name值确实为test:
    kubectl get pod -l app=test -o jsonpath='{.items[0].spec.containers[*].ports}'
    
    若容器端口名和配置值不一致,修改PodMonitoring的port字段为实际容器端口名即可
  • 确认指标路径访问权限:GMP采集器使用集群内置身份访问指标接口,若你的指标接口配置了鉴权、IP白名单规则,需放通kube-system下collector Pod的访问权限。可临时启动调试Pod访问目标Pod的/test/metrics路径,确认非自托管Prometheus的请求也能正常拉取指标文本

2. 查看GMP组件运行状态与目标报错

  • 检查采集组件健康状态:执行以下命令确认kube-system下的GMP采集器DaemonSet运行正常,无CrashLoopBackOff、Pending异常:
    kubectl get pods -n kube-system -l app.kubernetes.io/name=prometheus-engine-collector
    
    若存在异常Pod,通过kubectl logs -n kube-system <异常Pod名>查看具体报错
  • 查看采集目标的具体错误:通过端口转发访问采集器内置的目标状态接口,直接获取抓取失败的根因:
    kubectl port-forward -n kube-system ds/prometheus-engine-collector 19090:19090
    
    本地访问http://localhost:19090/api/v1/targets,搜索test相关的采集目标,查看lastError字段的具体内容:常见报错包括连接超时、403权限拒绝、404路径不存在、标签匹配无目标等

3. 校验资源调和状态与全局规则

  • 查看PodMonitoring事件:执行以下命令查看资源调和事件,GMP Operator会在配置不合法时直接抛出明确错误,正常状态下应显示调和成功相关事件:
    kubectl describe podmonitoring test
    
  • 检查全局采集过滤规则:若集群配置了GMP全局采集黑白名单、命名空间排除规则,需确认default命名空间、app=test标签的工作负载未被规则过滤

4. 排查上报链路与查询逻辑问题

  • 若采集目标状态显示抓取成功但查不到指标,查看collector Pod日志搜索export、publish相关报错,确认是否存在IAM权限不足、网络出网限制导致指标无法上报到云端存储
  • 校验查询语句:GMP上报的指标会自动附加cluster、namespace、location等平台标签,查询时不要附加不存在的标签过滤条件,可先查询最基础的up{job="test"}指标,确认是否存在对应时间序列

内容的提问来源于stack exchange,提问作者Zufar Muhamadeev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 13:36:14