如何在 grafana 仪表板中查询 influxdb 以创建模板变量

Posted

技术标签:

【中文标题】如何在 grafana 仪表板中查询 influxdb 以创建模板变量【英文标题】:How to query influxdb within grafana dashboard to create a template variable 【发布时间】:2018-10-25 04:16:33 【问题描述】:

我正在使用 telegraf 和 influxdb 上的 system plugin 收集指标,我正在尝试创建一些 singlestats pannels 来测量具有准确“警告”的多个实例上的 平均负载 p>

为此,我需要根据在仪表和着色阈值选项中选择的$host 创建一个包含现有 CPU 数量的模板变量:

SHOW TAG VALUES WITH KEY=host

仪表板应该只返回来自所选主机的信息,因此,我需要动态配置仪表值max 和着色阈值,以便在负载匹配number of cores - 1 时颜色可以变为红色。

目前,我正在使用1,3(即ncpus -1)对max = 4 和着色阈值中的值进行硬编码。 (这仅适用于具有 4 个内核的实例,但不适用于具有少于或多于 4 个内核的实例)

我尝试创建一个名为 $ncpus 的变量是这样的:

> SELECT last("n_cpus") FROM "system" WHERE ("host" =~ /^my-host$/) 
name: system
time                last
----                ----
1526379330000000000 4

我想获得4,但我获得的是time,这是我目前使用的:

知道如何仅获取 CPU 的数量 n_cpus 以便可以将其存储在删除 time 的变量中,并且还可以在 singlestat 选项中使用它吗?

【问题讨论】:

负载值可以大于 CPU 的数量。特别是如果您拥有现代的快速 CPU 和旧的慢速存储。确实,该值没有上限。此外,使用 CPU 数量的负载规范化也不正确。它应该是在线 CPU 的数量。 【参考方案1】:

你应该写一个类似下面的查询

SHOW TAG VALUES ON "DATABASE_NAME" FROM "elasticsearch_cluster_health" WITH KEY = "name"

【讨论】:

以上是关于如何在 grafana 仪表板中查询 influxdb 以创建模板变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在 grafana 仪表板中查询 influxdb 以创建模板变量

如何在 Grafana 仪表板中将显示名称设置为自定义变量?

如何在 Grafana 中进行 Simple-JSON 变量模板查询?

Grafana 仪表板变量 - 在基于查询的变量中处理 NULL 值

无法查看查询编辑器 Grafana 仪表板

您如何在 grafana/influxql 中获得上次测量的年龄?