Collectd:如何对 cpu 用户和 cpu 系统指标求和

Collectd:如何对 cpu 用户和 cpu 系统指标求和

我面临的挑战是向我们的中央指标收集基础设施提供一些指标,其中之一就是系统的总 CPU 使用率。我正在使用collectd来做到这一点。默认情况下,collectd 会输出 cpu-system、cpu-user 和 cpu-idle 指标(以及其他指标),但不会输出 cpu-usage。从我的角度来看,这大约是 100 - cpu-idle 或 cpu-system + cpu-user。

我已经在使用聚合插件,以便可以将核心指标聚合为单个指标。指标如下所示(仅一个示例):

57501a6f-cdff-4d03-bd5b-ef67e1ad67d6.hostname_domain_tld.aggregation-cpu-average.cpu-idle 99.799081 1442245610

现在我想计算 100 - cpu-idle 或 cpu-system + cpu-user 并将该值作为新指标(cpu-usage)返回。

我尝试使用以下配置来做到这一点:

<Plugin "aggregation">
  <Aggregation>
    Plugin "cpu"
    Type "cpu"
    GroupBy "Host"
    GroupBy "TypeInstance"
    CalculateAverage true
  </Aggregation>

  <Aggregation>
    Plugin "aggregation-cpu-average"
    Type "^/cpu-[system|user]$/"
    GroupBy "Host"
    SetPluginInstance "cpu-util"
    CalculateSum true
  </Aggregation>
</Plugin>

不幸的是,这个配置似乎不起作用,Type 参数似乎无法处理 Regex 表达式。

有人知道如何实现这一目标吗?谢谢!

相关内容