SpringBoot整合Prometheus实现业务指标上报
本文基于SpringBoot2.5.7 整合Prometheus,完成一个简单的业务指标上报。应用上报监控数据到pushgateway,然后prometheus定时拉取应用上报的数据。关于Prometheus和pushgateway 不是本文重点,可以参考官网介绍。
实现请求次数上报
添加依赖
implementation 'io.micrometer:micrometer-registry-prometheus'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.prometheus:simpleclient_pushgateway'
代码如下:
每请求/index 计数+1
@RestController
public class HelloIndexController {
@Autowired
MycustomerMetricsBean mycustomerMetricsBean;
@RequestMapping("/index")
public String index() {
mycustomerMetricsBean.getCounter().increment();
return "ok";
}
}
定义hello-Index.size metric 信息
@Component
@Getter
@Setter
public class MycustomerMetricsBean {
private Counter counter;
public MycustomerMetricsBean(MeterRegistry registry) {
PrometheusMeterRegistry prometheusMeterRegistry = (PrometheusMeterRegistry) registry;
this.counter = registry.counter("hello-Index.size", Tags.empty());
}
}
启动类
@SpringBootApplication
public class PrometheusApplicationDemo {
public static void main(String[] args) {
SpringApplication.run(PrometheusApplicationDemo.class,args);
}
}
management:
metrics:
tags:
application: ${spring.application.name}
## 定义export 到prometheus
export:
prometheus:
enabled: true
pushgateway: ## 配置pushgateway 信息
enabled: true
base-url: http://192.168.100.101:9091/
job: ${spring.application.name}
grouping-key:
instance: 192.168.100.168
spring:
application:
name: spring-boot-prometheus