使用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的以下信息。
-
- 利用中のコネクション数
-
- アイドル状態のコネクション数
- 利用率(利用中のコネクション数 / 最大コネクション数)
因为工作的需要,我先把它转化为了一个库。