我有在Spring Boot 2.0.2中内置的服务。我正在使用redis和solrj。
现在,如果我想获取redis和solr的指标。
中不显示http://localhost:8080/actuator/metrics
有什么方法可以使自定义端点获取redis和solr指标?
任何帮助将不胜感激。
答案 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