【问题标题】:CPU metrics in Grafana for Spring Webflux app with Actuator Micrometer and PrometheusGrafana 中的 CPU 指标,用于带有 Actuator Micrometer 和 Prometheus 的 Spring Webflux 应用程序
【发布时间】: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。但不确定他们来这里是为了什么。

什么是使用这些指标的正确方法以及我当前的查询有什么问题,因为现在和有意义的指标之间存在差距。

谢谢。

【问题讨论】:

    标签: prometheus spring-webflux grafana spring-micrometer actuator


    【解决方案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]
    ))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-07
      • 2022-01-13
      • 2021-06-02
      • 2021-07-22
      • 2018-09-20
      • 2023-01-25
      • 1970-01-01
      • 2022-12-22
      相关资源
      最近更新 更多