我们使用 InfluxDB 0.10.1 进行监控,使用 Grafana 2.6 显示结果。在 Grafana 模板设置中,我有一个带有此 InfluxDB 查询的变量 ($host): 使用 KEY =“host”显示标签值
这为我提供了数据库中所有主机的列表。但是,我想知道,是否有一种方法可以向该查询添加一些内容,从而仅选择为其显示特定测量值的主机?例如,我们仅在数据库中的一部分主机上安装了 WebSphere Liberty Profile,并且我希望仅这些主机显示在仪表板的下拉列表中。
应该是这样的:
SHOW TAG VALUES ON "database" FROM "measurement" WITH KEY =~ /host/ WHERE product =~ /tag/
SHOW TAG VALUES
不接受 WHERE
子句,因此无法进一步过滤查询。请参阅 https://github.com/influxdata/influxdb/issues/5245 了解密切相关的问题。
可以使用 SELECT 查询来完成,但您必须更具体地了解 WebSphere 信息的编码方式。您是说您为每种类型的主机使用不同的“测量”名称吗?或者 WebSphere 主机上是否有额外的 tag 或 field?
from(bucket: "test-bucket")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "cpu")
|> filter(fn: (r) => r["_field"] == "usage_system")
|> filter(fn: (r) => r["cpu"] == "cpu-total")
|> keep(columns: ["host"])
|> group()
|> unique(column: "host")