使用Spring Boot Actuator收集Redis的指标

之前,我写了一个关于利用spring-boot-actuator进行健康检查的方法。
借助spring-boot-actuator,还可以收集Spring Boot的指标数据。

获取度量标准的方法

只需将spring-boot-actuator添加到依赖中,然后访问以下URL。

使用本地主机8080端口访问/metrics的curl命令。

{"mem":755200,
 "mem.free":231637,
 "processors":4,
 "instance.uptime":3389,
 "uptime":15520,
 "systemload.average":3.64990234375,
 "heap.committed":755200,
 "heap.init":262144,
 "heap.used":523562,
 "heap":3728384,
 "threads.peak":27,
 "threads.daemon":25,
 "threads":27,"classes":10410,
 "classes.loaded":10410,
 "classes.unloaded":0,
 "gc.ps_scavenge.count":12,
 "gc.ps_scavenge.time":295,
 "gc.ps_marksweep.count":2,
 "gc.ps_marksweep.time":202,
 "httpsessions.max":-1,
 "httpsessions.active":0,
 "datasource.primary.active":0,
 "datasource.primary.usage":0.0}

如果只想收集指定的指标,可以将要收集的指标包含在URL中。
curl localhost:8080/metrics/datasource.*
这样就可以获取数据源的活动连接数和使用率。

{"datasource.primary.active":0,
 "datasource.primary.usage":0.0}

顺便说一下,与metrics相关的配置不仅限于spring-boot-actuator,在management属性中可以进行各种配置。
以下是将上下文路径设置为监控的示例。

management:
    context-path: /monitor

在这种情况下,可以在/monitor/health进行健康检查,并在/monitor/metrics进行指标收集。

添加度量收集目标

您可以添加默认情况下不支持的指标,如与Redis和Elasticsearch的连接相关的指标。
操作很简单,只需实现org.springframework.boot.actuate.endpoint.PublicMetrics类,并将其配置为Spring的Bean。

@Component
public class SamplePublicMetrics implements PublicMetrics {
    @Override
    public Collection<Metric<?>> metrics() {
        // Metricクラスを含んだ
        return Arrays.asList(new Metric<>("sample.name",1);
    }
}

使用本地语言中的一个选项,释义以下内容:以本地主机:8080的方式访问/metrics/sample.*

{"sample.name":1}

收集对于Redis的度量标准

使用以上方法,获取Spring Boot连接的所有Redis的以下信息。

    • 利用中のコネクション数

 

    • アイドル状態のコネクション数

 

    利用率(利用中のコネクション数 / 最大コネクション数)

因为工作的需要,我先把它转化为了一个库。

广告
将在 10 秒后关闭
bannerAds