【发布时间】:2015-12-14 06:53:22
【问题描述】:
如何让 grafana 为新添加的主机动态添加图表?例如,我有 grafana 图表来显示现有主机的平均负载。当我添加新主机时,collectd 会将新主机指标发送到 influxdb。但是每次我必须在 grafana 中手动添加一个不需要的图形?有没有办法让 grafana 自动绘制新的主机指标而不更改 grafana?
【问题讨论】:
-
你用的是哪个influxdb版本?
如何让 grafana 为新添加的主机动态添加图表?例如,我有 grafana 图表来显示现有主机的平均负载。当我添加新主机时,collectd 会将新主机指标发送到 influxdb。但是每次我必须在 grafana 中手动添加一个不需要的图形?有没有办法让 grafana 自动绘制新的主机指标而不更改 grafana?
【问题讨论】:
您必须使用Grafana HTTP api 并通过添加所需的新图表来更新您的仪表板。这实际上意味着您必须:
层次结构很简单:仪表板有行,行有面板。可能您必须在面板内添加一些 json 代码。去检查你的 json 文件,所有这些对你来说都是有意义的......
【讨论】:
您可以使用regexp patterns in InfluxDB 0.8(另请参阅0.9 equivalent docs)来匹配所有新添加的主机。 InfluxDB 正则表达式使用Golang syntax。
例如,匹配所有以stats.cpuNUMBER开头的系列:
series: /^stats\.cpu\d+/
select: avg(load)
但是这样一来,您不会为每个新添加的主机获得一个新地块,而是为同一地块中的每个主机获得一条线。
【讨论】:
您必须在您的选择子句中添加正则表达式。
SELECT mean(value) FROM /logstash.*.requests.count/ WHERE $timeFilter 按时间分组($interval)
以上脚本将自动为所有主机绘制与正则表达式匹配的每个系列,而无需更改 grafana。
logstash.ABC1.requests.count
logstash.ABC2.requests.count
logstash.ABC3.requests.count
添加 ABC4 主机并正确发货后,将自动绘制新图表。
【讨论】: