You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Prometheus提示label_values未找到,Grafana查询问题求助

问题原因与解决方案

你遇到的问题核心是混淆了Grafana模板变量函数和PromQL原生查询函数,具体解释和解决方法如下:

为什么会报错?

label_values() 是Grafana专门为模板变量设计的辅助函数,用来动态生成下拉选项(比如实例列表、Job列表等),它并不是Prometheus自身支持的PromQL函数。所以当你直接在Prometheus查询框或者Grafana的面板查询中执行label_values(up, instance)时,Prometheus会因为不识别这个函数而抛出错误。

正确的使用方式

场景1:在Grafana中创建动态实例选择的模板变量

这应该是你原本的需求——获取所有监控实例并在Grafana中动态切换:

  1. 打开你的Grafana仪表盘,点击顶部的「设置」图标(齿轮形状)进入Dashboard Settings
  2. 切换到「Variables」标签页,点击「Add variable」
  3. 变量类型选择「Query」,数据源选择你的Prometheus实例
  4. 在「Query」输入框中填写 label_values(up, instance)
  5. 保存变量后,你就能在仪表盘的顶部看到一个实例选择下拉框,之后在面板的PromQL查询中可以用$instance引用这个变量,比如:
    up{instance="$instance"}
    

场景2:直接在Prometheus中查询所有实例的标签值

如果只是想在Prometheus里查看所有instance标签值,你可以用以下几种方式:

  • 直接执行PromQL查询 up,在返回结果中查看每条数据的instance标签
  • 用分组统计的方式直观展示:count by(instance) (up)
  • 如果需要单独提取所有instance值,也可以通过Prometheus的API调用:GET /api/v1/label/instance/values(注意这是HTTP API,不是PromQL)

内容的提问来源于stack exchange,提问作者Tim Hartnack

火山引擎 最新活动