Grafana 中的 CPU 指标,用于带有 Actuator Micrometer 和 Prometheus 的 Spring Webflux 应用程序
Posted
技术标签:
【中文标题】Grafana 中的 CPU 指标,用于带有 Actuator Micrometer 和 Prometheus 的 Spring Webflux 应用程序【英文标题】:CPU metrics in Grafana for Spring Webflux app with Actuator Micrometer and Prometheus 【发布时间】:2021-09-09 12:45:10 【问题描述】:请教一个关于如何在 CPU 指标上建立视觉和洞察力的小问题。
我有一个 Spring Boot Webflux 应用程序,没什么特别的。 我引入了 Actuator、Micrometer 和 Prometheus 依赖项。
该应用具有开箱即用的 CPU 指标,我认为这非常酷。 我也相信这些指标包含大量信息。 不幸的是,我认为不了解 Grafana 或指标本身以充分释放其潜力。
指标是:
system_cpu_usage
process_cpu_usage
system_cpu_count
system_load_average_1m
不知道如何正确使用它们,我使用那些非常基本的菜鸟查询:
system_cpu_usage_ns_=“my_namespace",cluster=~”my_cluster"
process_cpu_usage_ns_=“my_namespace",cluster=~”my_cluster"
system_cpu_count_ns_=“my_namespace",cluster=~”my_cluster”
system_load_average_1m_ns_=“my_namespace",cluster=~”my_cluster"
有了这些,我确实得到了一些结果。问题是,我得到的只是一些平淡无奇的线条,无法采取进一步的见解或行动。
我在网上看到一些比较复杂的查询,比如
avg_over_time(process_cpu_usage_ns_=“my_namespace",cluster=~”my_cluster"[1h])
或者一些使用delta rate irate
。但不确定他们来这里是为了什么。
什么是使用这些指标的正确方法以及我当前的查询有什么问题,因为现在和有意义的指标之间存在差距。
谢谢。
【问题讨论】:
【参考方案1】:avg_over_time
最后一个 1h
的用法在您想为警报管理器制定规则的情况下很有用。想象一个用例,其中 cpu 上的每个峰值都会触发 alertmanager 规则。这是不受欢迎的。顺便说一句,在这个特定的用例中,我更喜欢使用histogram_quantile
,因为平均值可以隐藏高值(只是因为它是平均值)。这里有一些百分位数的最佳实践:https://prometheus.io/docs/practices/histograms/#quantiles。然后使用rate
来确定分位数的时间窗口。
histogram_quantile(0.9, rate(
process_cpu_usage_ns_=“my_namespace",cluster=~”my_cluster"[1h]
))
【讨论】:
以上是关于Grafana 中的 CPU 指标,用于带有 Actuator Micrometer 和 Prometheus 的 Spring Webflux 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Grafana 中显示的 netdata 指标显示不正确的值
如何使用 cpu-memory 使用指标可视化 grafana 上的结果?