产品动态
prometheus metrics 的地址和2.0不一样,1.5默认的是/prometheus,即http://localhost:8080/prometheus。management 接口加了安全控制,需要修改 management.security.enabled=false。bootstrap.yml 来配置参数,在 bootstrap.yml 中需改 management 不启作用,需要在 application.yml 中修改,原因: spring boot 启动加载顺序有关。metric common tag 不能通过 yml 来添加,只有通过代码加一个 bean 的方式添加。spring-boot-starter-web 的基础上,在 pom.xml 文件中添加 actuator/prometheus Maven 依赖项。<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId></dependency>
resources 目录下的 application.yml 文件,修改 actuator 相关的配置来暴露 Prometheus 协议的指标数据。management:endpoints:web:exposure:include: prometheus # 打开 Prometheus 的 Web 访问 Pathmetrics:# 下面选项建议打开,以监控 http 请求的 P99/P95 等,具体的时间分布可以根据实际情况设置distribution:sla:http:server:requests: 1ms,5ms,10ms,50ms,100ms,200ms,500ms,1s,5s# 在 Prometheus 中添加特别的 Labelstags:# 必须加上对应的应用名,因为需要以应用的维度来查看对应的监控application: spring-boot-mvc-demo
mvn spring-boot:run 之后,可以通过 http://localhost:8080/actuator/prometheus 访问到 Prometheus 协议的指标数据,说明相关的依赖配置已经正确。Dockerfile ,您可以参考如下示例进行添加,在实际项目中需要修改 Dockerfile 。FROM openjdk:8-jdkWORKDIR /spring-boot-demoADD target/spring-boot-demo-*.jar /spring-boot-demo/spring-boot-demo.jarCMD ["java","-jar","spring-boot-demo.jar"]
namespace、ImageName、镜像版本号。mvn clean packagedocker build . -t ccr.ccs.tencentyun.com/[namespace]/[ImageName]:[镜像版本号]docker push ccr.ccs.tencentyun.com/[namespace]/[ImageName]:[镜像版本号]
mvn clean packagedocker build . -t ccr.ccs.tencentyun.com/prom_spring_demo/spring-boot-demo:latestdocker push ccr.ccs.tencentyun.com/prom_spring_demo/spring-boot-demo:latest



apiVersion: v1kind: Servicemetadata:labels: # 可以根据实际情况添加对应的 labelsk8sapp: spring-mvc-demoname: spring-mvc-demonamespace: spring-demospec:ports:- name: 8080-8080-tcp # ServiceMonitor 抓取任务中 port 对应的值port: 8080protocol: TCPtargetPort: 8080selector:k8s-app: spring-mvc-demoqcloud-app: spring-mvc-demosessionAffinity: Nonetype: ClusterIP
port 的取值为 service yaml 配置文件里的 spec/ports/name 对应的值。apiVersion: monitoring.coreos.com/v1kind: ServiceMonitormetadata:name: spring-mvc-demo # 填写一个唯一名称namespace: cm-prometheus # namespace固定,不要修改spec:endpoints:- interval: 30sport: 8080-8080-tcp # 填写service yaml中Prometheus Exporter对应的Port的Namepath: /actuator/prometheus # 填写Prometheus Exporter对应的Path的值,不填默认/metricsnamespaceSelector: # 选择要监控service所在的namespacematchNames:- spring-demoselector: # 填写要监控service的Label值,以定位目标servicematchLabels:k8sapp: spring-mvc-demo
Dashboards/Manage/Application 下查看应用相关的监控大屏。
文档反馈