繁体   English   中英

汇总多台服务器的收集的CPU状态,这些服务器之间的CPU数量不同

[英]Summarize CollectD CPU-Stats for multiple servers with different CPU count across servers

我正在尝试创建一个图表,该图表显示一组可变服务器上最坏情况的CPU使用情况。 我从收集的数据中获取数据,该数据分别报告每个CPU内核的统计信息。 问题在于该集中的服务器可能具有不同数量的CPU核心。

到目前为止,我所拥有的(每个cpu-foo属性一个系列): sumSeriesWithWildcards(sumSeriesWithWildcards(summarize(servers.$foo.$bar.*.collectd.cpu-*.cpu-system.value, '$timeframe', 'max', false), 5), 3)

显然,这会使图表偏向cpu-idle,因为服务器大多数情况下负载均匀,因此具有更多CPU内核的服务器的空闲率要高于具有更少内核的服务器。

为了澄清这一点:我想将所有服务器的所有cpu- *系列总和汇总到所有服务器的最大值,空闲状态除外,我想总结一下。 因此,我需要一种在汇总服务器之前将每个服务器总和标准化为100%的方法。

到目前为止,我来了,这要好一些: divideSeries(sumSeriesWithWildcards(sumSeriesWithWildcards(summarize(servers.$foo.$bar.*.collectd.cpu-*.cpu-system.value, '$timeframe', 'max', false), 5), 3), #L)

但是,这仍然不能令人满意。 它没有偏斜,但仍然不能满足该图的目的:显示最坏情况下服务器之间的CPU使用率。

我需要做的但不能弄清楚该怎么做的是以下内容:

  1. 对于第3段(服务器)中的每个,计数cpu- *,然后
  2. 对该服务器的每个cpu-*。foo求和,然后将其除以1中的计数。
  3. 从2中求和

我缺少的是第2步。基本上,我需要一种在将所有服务器的CPU值求和之前对它们进行标准化的方法。

有什么办法吗?

编辑:当然,这对于其他度量也很有用,这些度量在服务器之间是统一的,例如RAM。

尝试这个:

summarize(sumSeries(averageSeriesWithWildcards(servers.$foo.$bar.*.collectd.cpu-*.cpu-system.value, 5)), '$timeframe', 'max', false)

我不确定它是否会起作用,但是我相信它会按照您概述的步骤进行操作,也许您可​​以对其进行调整以使其起作用。 :)请参阅有关Graphite函数的文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM