grafana 区间变量不是动态的

Posted

技术标签:

【中文标题】grafana 区间变量不是动态的【英文标题】:grafana interval variable not dynamic 【发布时间】:2021-12-09 14:46:17 【问题描述】:

我正在制作仪表板,作为参考,我正在使用已经存在的仪表板,该仪表板有 $interval 变量,它有这样一个 settings 。 例如,它在窗格标题中使用,例如 Top routes for [$interval],在实际仪表板中,它替换标题中的 $interval 变量取决于所选范围。

所以在我的仪表板中,我创建了相同的变量,并将其添加到窗格标题中,但由于某种原因,它对我来说根本不是动态的,它总是显示 1 分钟...

这里还比较了与该变量相关的仪表板的 JSON 部分。 参考仪表板:


        "auto": true,
        "auto_count": 1,
        "auto_min": "5m",
        "current": 
          "selected": false,
          "text": "auto",
          "value": "$__auto_interval_interval"
        ,
        "description": null,
        "error": null,
        "hide": 2,
        "label": "interval",
        "name": "interval",
        "options": [
          
            "selected": true,
            "text": "auto",
            "value": "$__auto_interval_interval"
          ,
          
            "selected": false,
            "text": "1m",
            "value": "1m"
          ,
          
            "selected": false,
            "text": "10m",
            "value": "10m"
          ,
          
            "selected": false,
            "text": "30m",
            "value": "30m"
          ,
          
            "selected": false,
            "text": "1h",
            "value": "1h"
          ,
          
            "selected": false,
            "text": "6h",
            "value": "6h"
          ,
          
            "selected": false,
            "text": "12h",
            "value": "12h"
          ,
          
            "selected": false,
            "text": "1d",
            "value": "1d"
          ,
          
            "selected": false,
            "text": "7d",
            "value": "7d"
          ,
          
            "selected": false,
            "text": "14d",
            "value": "14d"
          ,
          
            "selected": false,
            "text": "30d",
            "value": "30d"
          
        ],
        "query": "1m,10m,30m,1h,6h,12h,1d,7d,14d,30d",
        "refresh": 2,
        "skipUrlSync": false,
        "type": "interval"
      ,

这是我的:


        "auto": true,
        "auto_count": 1,
        "auto_min": "5m",
        "current": 
          "selected": false,
          "text": "1m",
          "value": "1m"
        ,
        "description": null,
        "error": null,
        "hide": 2,
        "label": "interval",
        "name": "interval",
        "options": [
          
            "selected": false,
            "text": "auto",
            "value": "$__auto_interval_interval"
          ,
          
            "selected": true,
            "text": "1m",
            "value": "1m"
          ,
          
            "selected": false,
            "text": "10m",
            "value": "10m"
          ,
          
            "selected": false,
            "text": "30m",
            "value": "30m"
          ,
          
            "selected": false,
            "text": "1h",
            "value": "1h"
          ,
          
            "selected": false,
            "text": "6h",
            "value": "6h"
          ,
          
            "selected": false,
            "text": "12h",
            "value": "12h"
          ,
          
            "selected": false,
            "text": "1d",
            "value": "1d"
          ,
          
            "selected": false,
            "text": "7d",
            "value": "7d"
          ,
          
            "selected": false,
            "text": "14d",
            "value": "14d"
          ,
          
            "selected": false,
            "text": "30d",
            "value": "30d"
          
        ],
        "query": "1m,10m,30m,1h,6h,12h,1d,7d,14d,30d",
        "refresh": 2,
        "skipUrlSync": false,
        "type": "interval"
      

因此,在这两种情况下,我们都有selected:false,因此取决于所选部分中的json,但出于某种原因,在我的仪表板中1m 是默认值,但应该是auto

我做错了什么,我错过了什么。谢谢!

【问题讨论】:

【参考方案1】:

您的变量是隐藏的,因此您看不到选择了什么。这个配置:

        "current": 
          "selected": false,
          "text": "1m",
          "value": "1m"
        ,

定义默认值为1m

您需要将auto 值作为默认值:

        "current": 
          "selected": false,
          "text": "auto",
          "value": "$__auto_interval_interval"
        ,

那么auto 将是默认值(除非您将在 URL 中明确指定变量值作为参数)

【讨论】:

嗯,是的,这是有道理的,我可以看到它,但正如我已经提到的变量配置相同,并且在两个“自动选项”切换中都处于打开状态。所以我不明白为什么它不能在我的仪表板上工作......而且我在 url 中看不到任何额外的(硬编码)间隔参数,我的 URL 和其他仪表板的 URL 都是相同的 @BogdanDubyk 不,配置相同,但未选择值。请取消隐藏仪表板中的变量,以便您看到它们的值。 auto != 1m。隐藏的时候想怎么调试呢? 好的,如何不隐藏它们???抱歉,我不确定我是否关注 哦,好吧,看来我做到了。在Hide 下拉列表的变量配置中,我选择了Value,我将其更改为Label,然后它显示了我选择Auto 的下拉列表。

以上是关于grafana 区间变量不是动态的的主要内容,如果未能解决你的问题,请参考以下文章

Grafana 变量引用 prometheus 统计名称的一部分

grafana之Variables变量的使用

在 MYSQL 查询中使用变量 Grafana 返回列名而不是指标

grafana绘制动态dashboard

Grafana 是不是可以根据另一个键值对变量映射普罗米修斯标签值?

如何从 ElasticSearch 创建两个级别的 Grafana 变量?