Grafana + InfluxDB + telegraf

Posted

技术标签:

【中文标题】Grafana + InfluxDB + telegraf【英文标题】: 【发布时间】:2018-11-02 05:01:03 【问题描述】:

我正在使用 grafana 来监控网络设备。正如您在 screen1 看到的那样,我有许多监视器接口,28 个物理接口 + 许多虚拟 (vlan)。 图表向我显示所有接口,但我希望并有机会从下拉列表中选择接口。然后我发现我可以用“变量”来解决这个问题。 我做了一个变量,我可以选择我想要的界面,但是当我选择自定义界面时它并没有影响图形。

screen1

我的变量:

Variable config

还有我的数据库查询:

SELECT derivative(mean("ifHCInOctets"), 1s) *8 AS "Input", derivative(mean("ifHCOutOctets"), 1s) *8 AS "Output" FROM "autogen"."interface" WHERE $timeFilter GROUP BY time($__interval), "ifDescr" fill(null)

【问题讨论】:

试试:.. WHERE ("interface" =~ /^$ifDescr$/) @IIIIIIIIIIIIIIIIIIIIIIII 我把它添加到变量查询中,对吧?如果是这样,它没有帮助。 不是你的数据库查询中的错误 @IIIIIIIIIIIIIIIIIIIIIIII,我试试这个,但它对我不起作用:SELECT derivative(mean("ifHCInOctets"), 1s) *8 AS "Input", derivative(mean("ifHCOutOctets"), 1s) *8 AS "Output" FROM "autogen"."interface" WHERE ("interface" =~ /^$ifDescr$/) @IIIIIIIIIIIIIIIIIIIIII 是对的,将您的变量添加到数据查询过滤器中。 【参考方案1】:

WHERE“接口”=~ /^$ifDescr$/

在制作仪表板时,在 grafana 查询中丢失查询周围的括号。那应该行得通。这就是我过滤主机名的方式,所以我的完整查询是

SELECT mean("usage_idle") * -1 + 100 FROM "cpu" WHERE "host" =~ /^$Server$/ AND "cpu" = 'cpu-total' AND $timeFilter GROUP BY time($Interval) fill(null)

这应该有助于拼凑您需要的查询。您可以只使用 Grafana 的查询生成器,只需更改 where 子句以使用变量的正则表达式值

Query Builder in Grafana

如果您使用 TICK 脚本编写或直接从 cli 查询数据库,则括号是正确的。 Grafana 使用的查询语法略有不同。

【讨论】:

以上是关于Grafana + InfluxDB + telegraf的主要内容,如果未能解决你的问题,请参考以下文章

InfluxDB 和 Grafana:InfluxDB 错误:错误请求 |码头工人

Grafana + Influxdb Android性能监控部署

14.grafana导入导出;Grafana的安装和Influxdb数据源配置

14.grafana导入导出;Grafana的安装和Influxdb数据源配置

grafana,influxdb动态展示监控项

influxDB和grafana