如何使用 SpringBoot 2、InfluxDB 和 Grafana 理解微米指标?

Posted

技术标签:

【中文标题】如何使用 SpringBoot 2、InfluxDB 和 Grafana 理解微米指标?【英文标题】:How to make sense of the micrometer metrics using SpringBoot 2, InfluxDB and Grafana? 【发布时间】:2021-09-17 04:40:33 【问题描述】:

我正在尝试配置 SpringBoot 应用程序以将指标导出到 InfluxDB 以使用 Grafana 仪表板将它们可视化。我以this 仪表板为例,它使用 Prometheus 作为后端。 对于某些指标,我可以毫无问题地弄清楚如何为它们创建图表,但对于其他一些指标,我不知道如何创建图表,甚至根本不知道如何创建图表。所以我列举了以下几点我不太确定的事情:

是否有任何文档描述了价值单位?我作为示例使用的应用程序没有任何负载,所以有时我不知道该值是位、字节、秒、毫秒、计数等。

一些测量包含标签“metric_type = histogram”,其中包含“count”、“sum”、“mean”和“upper”字段。同样,在这里我不知道价值单位是什么,上限是什么意思或我想如何绘制它们。例如“http_server_requests”或“jvm_gc_pause”。

从我在 Grafana 仪表板示例中看到的内容来看,我似乎应该使用这些直方图类型的度量来创建具有计数的图形和具有持续时间的图形。例如,我看到我应该能够创建一个包含请求数量的图表和另一个包含其持续时间的图表。或者对于垃圾收集器,我应该能够提供一个图表来显示次要和主要 GC 的数量以及它们的持续时间。

作为我插入 InfluxDB 的度量示例:

time                 count exception mean     method metric_type outcome status sum      upper    uri
1625579637946000000  1     None      0.892144 GET    histogram   SUCCESS 200    0.892144 0.892144 /actuator/health

time                action          cause                 count   mean  metric_type  sum upper
1625581132316000000 end of minor    GC Allocation Failure     1      2  histogram    2   2

【问题讨论】:

【参考方案1】:

我同意千分尺的文档不是很好。我不得不挖掘代码以找到答案......

关于您对jvm_gc_pause的问题,它是Timer,实现是AbstractTimer,这是一个包含Histogram 和其他组件的类。此特定指标由JvmGcMetrics 类注册。发布到 InfluxDB 的各种测量由InfluxMeterRegistry.writeTimer(Timer timer) 方法确定:

总和:timer.totalTime(getBaseTimeUnit()) // The total time of recorded events 计数:timer.count() // The number of times stop has been called on the timer 意思是:timer.mean(getBaseTimeUnit()) // totalTime()/count() 上:timer.max(getBaseTimeUnit()) // The max time of a single event

基本时间单位是毫秒。

同样,http_server_requests 似乎也是Timer

我相信你是对的,明智的做法是在两个单独的 Grafana 面板上绘制图表:一个面板用于 GC 暂停秒使用 sum(或 meanupper),另一个面板用于 GC 事件使用 @ 987654334@.

【讨论】:

以上是关于如何使用 SpringBoot 2、InfluxDB 和 Grafana 理解微米指标?的主要内容,如果未能解决你的问题,请参考以下文章

实战 InfluxDb + Grafana 数据监控

python influxDB 基本操作

python influxDB 基本操作

减去两个查询结果

如何使用 SpringBoot 2、InfluxDB 和 Grafana 理解微米指标?

SpringBoot 2.x 系列:配置