Spring Boot + Prometheus 性能监控(Kubernetes)

:本文使用 Maven 作为项目管理工具,如果需要 Gradle 可以对应修改。

创建一个最简单的 Spring Boot + 项目,也可以直接在 Spring Initializr 填写必要信息后下载 JAR 包。首先在 pom.xml 替换 部分为如下:


    
        org.springframework.boot
        spring-boot-starter-webflux
    

    
        org.springframework.boot
        spring-boot-starter-actuator
    

    
        org.springframework.boot
        spring-boot-starter-test
        test
        
            
                org.junit.vintage
                junit-vintage-engine
            
        
    

其实就是把下面这段替换掉:


    org.springframework.boot
    spring-boot-starter

:使用 spring-boot-starter 依赖会无法正常启动服务器。spring-boot-starter-webfluxspring-boot-starter-web 相比,前者使用 Netty ,后者使用 Tomcat ,会与 spring-boot-starter-actuator 冲突。

执行 ./mvn install 编译本项目,启动 java -jar target/demo-0.0.1-SNAPSHOT.jar ,访问 curl http://localhost:8080 ,会报路径不存在:

{
  "timestamp": "2020-02-24T02:11:52.315+0000",
  "status": 404,
  "error": "Not Found",
  "message": "No message available",
  "path": "/"
}

什么是 Spring Boot Actuator ?

Spring Boot Actuator 可以用来监控 Spring Boot 应用,比如健康检查、审计、统计和 HTTP 追踪等,这些特性可以通过 JMX 或者 HTTP Endpoints 获得。

访问 curl localhost:8080/actuator 即可获得已开放的数据。

什么是 Micrometer ?

简单来说,Micrometer 是将 Spring Boot Actuator 开放的数据转变成不同监控系统,如 Prometheus、Influx 等,能接受的数据格式,Spring Boot Actuator 直接获得的数据格式不能被这些监控系统直接使用。这里我们使用 Prometheus,添加 micrometer-registry-prometheus 依赖:


    io.micrometer
    micrometer-registry-prometheus

重新编译本项目,启动后访问 curl localhost:8080/actuator/prometheus

你可能感兴趣的:(Spring Boot + Prometheus 性能监控(Kubernetes))