Spring Boot中Redis和Solr的度量

时间:2018-07-05 07:31:03

标签: spring-boot redis spring-boot-actuator

我有在Spring Boot 2.0.2中内置的服务。我正在使用redis和solrj。

现在,如果我想获取redis和solr的指标。

不显示
http://localhost:8080/actuator/metrics

有什么方法可以使自定义端点获取redis和solr指标?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

是的,应该有可能。

Spring boot 2的默认指标框架为Micrometer

将此框架集成到Spring Boot应用程序中后(通常通过启动器),任何报告给千分尺的度量都会立即出现在Spring Boot执行器中。

所以问题是redis / solrj集成是否公开Metrics。

如果不是,则必须了解要测量什么并插入集成。

这里是示例:

import io.micrometer.core.annotation;

@Timed("my-redis-calls")
public void doSomethingInMyCode() {
    //call redis here 
}

当然,还有一个编程接口,在非强制性的地方使用注释

答案 1 :(得分:0)

Mark Bramnik 的回答中显示的代码并没有专门为您提供 Redis 客户端调用的时间,而是为您提供了 doSomethingInMyCode 方法的时间,这可能会有所不同。

在 Lettuce 6.1 版本中似乎提供了千分尺支持。

MeterRegistry meterRegistry = …;
MicrometerOptions options = MicrometerOptions.create();
ClientResources resources = ClientResources.builder().commandLatencyRecorder(new MicrometerCommandLatencyRecorder(meterRegistry, options)).build();

RedisClient client = RedisClient.create(resources);

https://lettuce.io/core/release/reference/index.html#command.latency.metrics.micrometer