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数据源配置