我们开始使用Prometheus和Grafana作为监控 Service Fabric 集群的主要工具。对于 Prometheus,我们使用wmi_exporter,并带有预定义的参数:CPU、系统、进程、服务、内存等。我们的主要目标是开始在 Azure Service Fabric 中的每个实例的节点组上监控我们的产品服务。
例如,我们使用这个 PQuery 来计算总 CPU 使用率(以 % 为单位):
100 - (avg by (hostname) (irate(wmi_cpu_time_total{scaleset="name",mode="idle" }[5m])) * 100)
和指标 +- 看起来很现实。
直到我们开始编写服务查询。
对于服务,sum by (process,hostname)(irate(wmi_process_cpu_time_total{scaleset="name", process=~"processes"}[5m])) * 100
和指标有时似乎不现实,尤其是在将其与总 CPU 时间百分比进行比较后很明显。我发现了一篇关于乘以 100 以获得 CPU 时间百分比的文章,但在这种情况下,我得到的指标大约为 170% 或更多。也许我需要将它划分为 CPU 内核的数量?
关于查询,我使用sum过程,因为我在user和privileged两种模式下为一个进程获得了两个不同的指标。
谁能帮我正确计算 CPU 处理时间总指标并将它们转换为 perc。?
谢谢你,我会很感激任何帮助!