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

Prometheus curl请求与Chrome返回结果不一致问题排查

问题描述

已配置Prometheus采集任务,prometheus.yml配置如下:

global:
  scrape_interval:     1s
  evaluation_interval: 1s

rule_files:
  # - "first.rules"
  # - "second.rules"

scrape_configs:
  - job_name: test_11000
    static_configs:
      - targets: ['0.0.0.0:11000']
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']

调用接口http://localhost:9090/api/v1/label/job/values时:

  • 在Google Chrome中得到正确结果:
{"status":"success","data":["linera_test_11000","prometheus"]}
  • 使用curl命令行查询(Firefox也得到相同错误结果)仅返回:
{"status":"success","data":["prometheus"]}

即使从Chrome开发者工具复制完整curl命令执行,问题仍未解决,请问该差异的原因是什么?

原因分析与排查方向
  • 实例或缓存不一致
    Chrome可能缓存了旧的API响应,或者你访问的Prometheus实例和curl/Firefox不是同一个——比如之前启动过带linera_test_11000配置的实例没关闭,又启动了新的实例,Chrome连接的是旧实例,而curl默认连的是新实例;或者Chrome的浏览器缓存没清除,显示的是历史数据。

  • 目标服务状态影响
    test_11000对应的目标0.0.0.0:11000可能在curl/Firefox访问时处于不可达状态,Prometheus长期采集不到该目标的数据,就会过滤掉这个job的标签。而Chrome访问时该服务是正常运行的,所以能返回对应的job标签。Prometheus的label值只会返回有有效采集数据的目标对应的标签,无数据的目标标签会被排除。

  • 请求头或会话差异
    虽然复制了Chrome的curl命令,但可能存在隐式的请求头差异——比如Prometheus配置了认证,Chrome中保存了有效的Cookie或认证信息,而curl命令没有完整带上这些内容,导致返回的是受限数据。可以用curl -v查看请求详情,对比Chrome开发者工具里的请求头,确认是否完全一致。

  • 配置未生效
    修改prometheus.yml后如果没有重启Prometheus服务,新配置不会生效。但如果Chrome显示的是旧配置结果,可能是浏览器缓存了之前的响应,而curl访问的是未更新配置的实例。

内容的提问来源于stack exchange,提问作者Mathieu Dutour Sikiric

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:40:03