【问题标题】:Grafana dynamically display new hosts added by collectdGrafana 动态显示 collectd 添加的新主机
【发布时间】:2015-12-14 06:53:22
【问题描述】:

如何让 grafana 为新添加的主机动态添加图表?例如,我有 grafana 图表来显示现有主机的平均负载。当我添加新主机时,collectd 会将新主机指标发送到 influxdb。但是每次我必须在 grafana 中手动添加一个不需要的图形?有没有办法让 grafana 自动绘制新的主机指标而不更改 grafana?

【问题讨论】:

  • 你用的是哪个influxdb版本?

标签: influxdb grafana collectd


【解决方案1】:

您必须使用Grafana HTTP api 并通过添加所需的新图表来更新您的仪表板。这实际上意味着您必须:

  • 使用api取仪表盘的json
  • 处理此数据并为要添加的新面板添加额外代码
  • 再次使用 api 更新仪表板

层次结构很简单:仪表板有行,行有面板。可能您必须在面板内添加一些 json 代码。去检查你的 json 文件,所有这些对你来说都是有意义的......

【讨论】:

  • 我遇到了这样的事情:wahlnetwork.com/wp-content/uploads/2015/04/…。但我在我的 grafana 中没有看到系列选项。 Collectd 仅提供指标,host 是列之一。我认为类似于上图的东西是我需要的。只是不知道如何获得该系列。我的主机中确实有命名约定。
【解决方案2】:

您可以使用regexp patterns in InfluxDB 0.8(另请参阅0.9 equivalent docs)来匹配所有新添加的主机。 InfluxDB 正则表达式使用Golang syntax

例如,匹配所有以stats.cpuNUMBER开头的系列:

series: /^stats\.cpu\d+/
select: avg(load)

但是这样一来,您不会为每个新添加的主机获得一个新地块,而是为同一地块中的每个主机获得一条线。

【讨论】:

    【解决方案3】:

    您必须在您的选择子句中添加正则表达式。

    SELECT mean(value) FROM /logstash.*.requests.count/ WHERE $timeFilter 按时间分组($interval)

    以上脚本将自动为所有主机绘制与正则表达式匹配的每个系列,而无需更改 grafana。

    logstash.ABC1.requests.count

    logstash.ABC2.requests.count

    logstash.ABC3.requests.count

    添加 ABC4 主机并正确发货后,将自动绘制新图表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      • 2021-11-01
      相关资源
      最近更新 更多