摘自我球的docs文档,我没时间在CSDN上再写一份,见
前景提要
注意:官方提供的simpleclient_spring_boot这个starter在springboot2.0中不支持,官方issue:github.com/prometheus/…
会报以下错误:
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.actuate.endpoint.AbstractEndpoint
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_201]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_201]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[na:1.8.0_201]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_201]
相关的组件介绍:
正式开始
pom添加依赖:
<!-- Spring boot actuator to expose metrics endpoint -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Micormeter core dependecy -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
</dependency>
<!-- Micrometer Prometheus registry -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
application.yml配置监控指标:
## prometheus监控配置``management:`` ``server:`` ``port: 18080 ``# 修改actuator的端口`` ``metrics:`` ``export:`` ``prometheus:`` ``enabled: true`` ``step: 1m`` ``descriptions: true`` ``web:`` ``server:`` ``auto-time-requests: true`` ``endpoints:`` ``prometheus:`` ``id: springmetrics`` ``web:``# base-path: /xueqiu # 修改actuator的路径名`` ``exposure:`` ``include: health``,``prometheus`` ``exclude: info``,``env``,``metrics``,``httptrace``,``threaddump``,``heapdump |
|---|
服务发现
该部分正在测试阶段,稍后开放,不影响用户当前使用
安全认证
--------该部分不需要,直接由NGINX层面完成-----------
以下是在项目中添加security安全依赖,也可以使用系统自己的安全认证
配置pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
配置application.xml
## security认证配置`` ``security:`` ``user:`` ``name: monitor`` ``password: monitor123 |
|---|
配置prometheus.xml
…… scrape_configs:``# job name 这个配置是表示在这个配置内的时间序例,每一条都会自动添加上这个{job_name:"redis-manage"}的标签。`` ``- job_name``: 'redis-manager'`` ``# metrics_path defaults to '/actuator/prometheus'`` ``# scheme defaults to 'http'.`` ``# 重写了全局抓取间隔时间,由15秒重写成5秒。`` ``metrics_path: /xueqiu/prometheus`` ``scrape_interval: 5s`` ``scheme: http`` ``basic_auth:`` ``username: admin`` ``password: admin`` ``static_configs:`` ``- targets``: [``'192.168.64.51:8099'``] …… |
|---|
样例效果
grafana的dashboard json demo:
spring-boot-statistics_rev2.json
Prometheus监控效果:
参考链接:
代码稍后给你们。。。