CPU Grafana 中用于 Spring Webflux 应用程序的指标,带有 Actuator Micrometer 和 Prometheus
CPU metrics in Grafana for Spring Webflux app with Actuator Micrometer and Prometheus
关于如何在 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
。但不知道他们来这里干什么。
使用这些指标的正确方法是什么?我当前的查询有什么问题,因为现在和有意义的指标之间存在差距。
谢谢。
最后一个 1h
的 avg_over_time
用法在您想为警报管理器制定规则时很有用。想象一个用例,其中 cpu 上的每个尖峰都会触发 alertmanager 规则。这是不受欢迎的事情。顺便说一句,在这个特定的用例中,我更愿意使用 histogram_quantile
因为平均值可以隐藏高值(仅仅因为它是平均值)。百分位数的一些最佳实践如下:https://prometheus.io/docs/practices/histograms/#quantiles。然后使用 rate
来确定分位数的时间 window。
histogram_quantile(0.9, rate(
process_cpu_usage{_ns_=“my_namespace",cluster=~”my_cluster"}[1h]
))
关于如何在 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
。但不知道他们来这里干什么。
使用这些指标的正确方法是什么?我当前的查询有什么问题,因为现在和有意义的指标之间存在差距。
谢谢。
最后一个 1h
的 avg_over_time
用法在您想为警报管理器制定规则时很有用。想象一个用例,其中 cpu 上的每个尖峰都会触发 alertmanager 规则。这是不受欢迎的事情。顺便说一句,在这个特定的用例中,我更愿意使用 histogram_quantile
因为平均值可以隐藏高值(仅仅因为它是平均值)。百分位数的一些最佳实践如下:https://prometheus.io/docs/practices/histograms/#quantiles。然后使用 rate
来确定分位数的时间 window。
histogram_quantile(0.9, rate(
process_cpu_usage{_ns_=“my_namespace",cluster=~”my_cluster"}[1h]
))