Chr*_*s R 6 influxdb grafana grafana-templating grafana-variable
我\xe2\x80\x99m 试图弄清楚如何格式化我的键/值对仪表板变量。I\xe2\x80\x99ve 有一个变量,其定义为:
\nsensor_list = 4431,8298,11041,13781\nsensor_kv = 4431 : Storage,8298 : Stairs,11041 : Closet,13781 : Attic\nRun Code Online (Sandbox Code Playgroud)\n但是,我似乎无法有效地将它用于 InfluxDB 的查询和仪表板格式化。例如,我有一个面板,其查询如下:
\nSELECT last("battery_ok") FROM "autogen"."Acurite-Tower" WHERE ("id" =~ /^$sensor_list$/) AND $timeFilter GROUP BY time($__interval) fill(null)\nRun Code Online (Sandbox Code Playgroud)\n这可行,但如果我用 KV 替换它,我将无法获取该值:
\nSELECT last("battery_ok") FROM "autogen"."Acurite-Tower" WHERE ("id" =~ /^$sensor_kv$/) AND $timeFilter GROUP BY time($__interval) fill(null)\nRun Code Online (Sandbox Code Playgroud)\n^ 返回时没有数据。
\n我也不知道如何访问重复面板的模板值中的 KV 对的值。${sensor_kv:text}返回单词“All”,但${sensor_kv:value}实际上会导致直接错误:“错误:找不到变量格式值”
我的目标有两个:
\n我\xe2\x80\x99已经阅读了格式化文档,他们提到的只是列表;那里没有键/值示例,当然也没有这样做的示例。它\xe2\x80\x99s显然是一个新功能(这是合并其实现的GH问题),所以我\xe2\x80\x99m希望\xe2\x80\x99s只是一个文档在某个地方错过。
\nVal*_*ken 11
在您链接的 PR 中,有一条很小的注释,指出键/值对必须包含空格。
所以当你在其中定义一对时Values separated by comma应该像
key1 : value1, key2 : value2这些都行不通
key1:value1, key2:value2key1 :value1, key2 :value2key1: value1, key2: value2假设自定义变量的名称是var1
${var1}然后您可以通过, $var1,${var1:text}或访问密钥[[var1:text]]
(有些数据源会满意$var1- 有些数据源只能理解${var1:text})
您可以通过以下方式访问该值${var1:value} [[var1:value]]
在 Grafana 8.4.7 中测试
Jan*_*raj -1
键/值与某些有意义的时间序列数据库一起使用,例如 MySQL https://grafana.com/docs/grafana/latest/datasources/mysql/:
另一个选项是可以创建键/值变量的查询。该查询应返回名为 __text 和 __value 的两列。__text 列值应该是唯一的(如果不唯一,则使用第一个值)。下拉列表中的选项将包含一个文本和值,允许您将友好名称作为文本,将 id 作为值。
但这不是 InfluxDB 的情况:https://grafana.com/docs/grafana/latest/datasources/influxdb/ InfluxDB 无法返回 key=>value 结果 - 它只返回时间序列(这不是 key=>value)或仅值或仅键。
解决方法:
1.) 使用支持的数据库(MySQL、PostgreSQL)只是为了获得正确的 key=>value 结果。您实际上不需要为此创建表,只需组合 SELECT、UNION...,您就会得到所需的结果。
2.) 使用隐藏变量,它将值“转换”为键,然后在查询中使用。例如https://community.grafana.com/t/how-to-alias-a-template-variable-value/10929/3
当然,一切都有优点和缺点,例如多值变量值可能不会按预期工作。
| 归档时间: |
|
| 查看次数: |
16485 次 |
| 最近记录: |