今天调研了一下监控项目的接口请求时长统计到Prometheus,这里整体的代码逻辑如下
引入jar包
然后在yml配置文件中配置相关参数
这边的enable可以设置false某些数据不统计
然后就是配置Micrometer 这里代码如下
/**
* @author: chenhao
* @Date: 2022/4/12 09:29
* @Description: MicrometerConfig
*/
@Configuration
public class MicrometerConfig {
@Bean
MeterRegistryCustomizermetricsCommonTags() {
return registry -> {
registry.config().meterFilter(
new MeterFilter() {
@Override
public DistributionStatisticConfigconfigure(Meter.Id id, DistributionStatisticConfig config) {
if (id.getType() == Meter.Type.TIMER&&id.getName().matches("^(http|hystrix){1}.*")) {
return DistributionStatisticConfig.builder()
.percentilesHistogram(true)
.percentiles(0.5, 0.90,0.95, 0.99)
// //设置时间范围
// .minimumExpectedValue(Duration.ofMillis(400).toNanos())
// .maximumExpectedValue(Duration.ofMillis(800).toNanos())
// .sla(Duration.ofMillis(50).toNanos(),
// Duration.ofMillis(100).toNanos(),
// Duration.ofMillis(200).toNanos(),
// Duration.ofSeconds(1).toNanos(),
// Duration.ofSeconds(5).toNanos()
.build()
.merge(config);
}else {
return config;
}
}
});
};
}
}
至此项目中的代码相关已经完成,这时我们直接访问自带的接口就可以查询相关信息
然后就是配置Prometheus的相关信息,让Prometheus主动的定时拉取数据
这样整个流程完成就可以自动统计接口请求时间
这时我们可以在Prometheus的web页面查看数据统计的推送情况
参考文档 https://blog.csdn.net/lp19861126/article/details/106309546
https://blog.csdn.net/aixiaoyang168/article/details/100866159