0

一个 Icinga2 插件(由我自己编写)返回性能数据,其指标名为/var(avail_MB),/var(total_MB)和类似的。数据被转发到以 Grafana 作为前端的 InfluxDB。

$tag_metric在仪表板的面板查询中使用“GROUP BY”“tag(metric)”和“ALIAS BY”“”。然后,指标名称会正确显示在图表下方。

但是,当我尝试通过指定“别名或正则表达式”来覆盖系列时,/var(avail_MB)它似乎不起作用,并且当从面板配置返回到仪表板时,我收到一条错误消息,提示“面板呈现错误'/var(avail_MB)' 不是一个有效的正则表达式。 "。我试图在 and 前面加上一个反斜杠()但这没有帮助。更糟糕的是,整个图表消失了,当试图打开“查询检查器”时,前端似乎需要永远(查询永远不会出现)。

有什么问题,我该如何解决?我是 Icinga2、Grafana 和 InfluxDB 的新手(我只是这些的“用户”而不是管理员)。

系列覆盖之前的 Grafana 面板配置

系列覆盖后的 Grafana 面板配置

颜色更改不会应用于图表。

这是插件输出的示例:

OK: /var: 3114/5632MB (55.30%), slope is NaN|/var(total_MB)=5631.56MB;;;0 /var(avail_pct)=55.30%;25;5;0;100 /var(avail_MB)=3114.12MB;10;5;0;5632 /var(est_avail_MB)=nanMB;10;5;0;5632

(“nanMB”是插件中的一个错误,已经修复,但该数据不是来自有问题的机器。)

4

1 回答 1

0

问题似乎是字符串的开头(“/var”)。Grafana 似乎将每个以正则表达式开头的字符串/视为正则表达式,并且它期望任何正则表达式也以 . 开头/(似乎)。

所以解决方法是添加一个尾随/,并将文字转义/\/.

不幸的是,这只会删除错误消息,但不会使覆盖工作(匹配)。还需要对括号和斜杠进行反斜杠转义:

而不是/var(total_MB)你需要写/\/var\(total_MB\).

最初的问题有两个根源:

  1. https://www.monitoring-plugins.org/doc/guidelines.html#AEN201上的监控插件规范指出:“ 2. 标签可以包含除等号或单引号 (') 之外的任何字符”)声明任何字符除了=并且'允许作为度量名称。

  2. Grafana v6.7.3 为“别名或正则表达式”提出了不正确的(即:未转义的)值。

这就是我制造问题的方式。

于 2020-06-10T07:30:24.843 回答