我正在使用Telegraf / InfluxDB / Grafana来注册和查看我的服务器的指标 . 有时其中一个组件崩溃,指标停止流入InfluxDB .
为了能够注意到这种情况发生的时间(除了使用Monit重启服务之外)我想创建一个Grafana仪表板,其中每个主机都有一个singlestat面板,显示最新的时间戳(或更好,有多少时间有自收到最后一个指标以来已经过去了 . 我还想根据它的持续时间对singlestat的背景进行着色 . 我希望能够针对任何InfluxDB指标执行此操作,因为不同的指标可能有不同的原因滞后 .
现在,我在InfluxQL中尝试过类似的东西,但我只是得到一个错误,即查询中必须至少有一个非时间字段:
SELECT last(time) FROM "system" WHERE "load1" > -1 GROUP BY "host"
如果我尝试将其更改为此,我会收到“多系列错误”:
SELECT last(time), last("load1") FROM "system" GROUP BY "host"
我想要做的不容易做到,还是我错过了一些明显的东西?
1 回答
...查询语法取自issue中的某个地方 . 我没有't yet looked at the singlestat panel, but I suggest creating a ' scripted dashboard' .
首先手动创建一个带有虚拟编号的单稳态短划线 . 然后export it看看json的样子 . 然后,使用脚本化仪表板,使用上述查询的实时结果重新创建相同的json .
请查看grafana 's /public/dashboards for ' scripted.js ' or ' scripted_templated.js' . 复制其中一个在同一文件夹中,然后黑客生成你的json . Here和here和here是javascript魔术提交查询到Influxdb的一些很好的例子,并将结果解析为你的singlestat破折号的json . 祝好运 .