【问题标题】:How to aggregate/Sum multiple CPU cores to get one CPU metric in grafana?如何聚合/汇总多个 CPU 内核以获得 grafana 中的一个 CPU 指标?
【发布时间】:2019-03-12 17:14:31
【问题描述】:
有没有办法跨指标/指标名称进行聚合?例如,在一个四核系统上,您有以下指标名称:
cpu.0.system
cpu.1.system
cpu.2.系统
cpu.3.system
我想 SUM(cpu.*.system) 得到聚合的 cpu.system.total。
有没有办法用当前的 Grafana-graphite 查询编辑器来完成这个?
请指教。
【问题讨论】:
标签:
centos7
grafana
graphite
health-monitoring
collectd
【解决方案1】:
试试这个
alias(sumSeries(cpu.*.system),'Total CPU')
【解决方案2】:
我得到了另一种解决方案,如下所述:
编辑vi /opt/collectd/etc/collectd.conf 文件。
取消注释 LoadPlugin 聚合。
LoadPlugin aggregation
<Plugin aggregation>
<Aggregation>
#Host "unspecified"
Plugin "cpu"
#PluginInstance "unspecified"
Type "cpu"
#TypeInstance "unspecified"
GroupBy "Host"
GroupBy "TypeInstance"
# CalculateNum false
# CalculateSum false
CalculateAverage true
# CalculateMinimum false
# CalculateMaximum false
# CalculateStddev false
</Aggregation>
</Plugin>
并重新启动收集的服务。
【解决方案3】:
这是一个仅使用内置 Grafana 函数的解决方案
1-sum(rate(node_cpu_seconds_total{mode="idle"}[20s]))/8
Grafana 将计算过去 20 秒的平均 CPU 使用率。
重要
更改最后一个数字("/8" 在上面的示例中),以匹配您监控实例上的核心数和 "20s" 到您希望的任何时间间隔。
然后将图表的显示单位更改为百分比0.0-1.0