SpringBoot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等-SpringBoot应用可视化监控-《Java笔记》

admin 2025-10-19 05:40:49 编程 来源:ZONE.CI 全球网 0 阅读模式

Java SpringBoot2021-08-25-16-46-12-226693.png

1、Spring Boot 应用暴露监控指标【版本 1.5.7.RELEASE】

首先,添加依赖如下依赖:

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-actuator</artifactId>
  4. </dependency>

采集应用的指标信息,我们使用的是prometheus,相应的我们引入包:

  1. <dependency>
  2. <groupId>io.prometheus</groupId>
  3. <artifactId>simpleclient_spring_boot</artifactId>
  4. <version>0.0.26</version>
  5. </dependency>

然后,在启动类 Application.java 添加如下注解:

  1. @SpringBootApplication
  2. @EnablePrometheusEndpoint
  3. @EnableSpringBootMetricsCollector
  4. public class Application {
  5. public static void main(String[] args) {
  6. SpringApplication.run(Application.class, args);
  7. }
  8. }

最后,配置默认的登录账号和密码,在 application.yml 中:

  1. security:
  2. user:
  3. name:user
  4. password: pwd

启动应用程序后,会看到如下一系列的 Mappings2021-08-25-16-46-12-403691.jpeg利用账号密码访问 http://localhost:8080/application/prometheus ,可以看到 Prometheus 格式的指标数据 2021-08-25-16-46-12-571700.jpeg

2、Prometheus 采集 Spring Boot 指标数据

首先,获取 Prometheus 的 Docker 镜像:

  1. $ docker pull prom/prometheus

然后,编写配置文件 prometheus.yml :

  1. global:
  2. scrape_interval: 10s
  3. scrape_timeout: 10s
  4. evaluation_interval: 10m
  5. scrape_configs:
  6. - job_name: spring-boot
  7. scrape_interval: 5s
  8. scrape_timeout: 5s
  9. metrics_path: /application/prometheus
  10. scheme: http
  11. basic_auth:
  12. username: admin
  13. password: 123456
  14. static_configs:
  15. - targets:
  16. - 192.168.11.54:8099 #此处填写 Spring Boot 应用的 IP + 端口号

接着,启动 Prometheus :

  1. docker run -d --name prometheus -p 9090:9090 -v D:\test\actuator\prometheus\prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

:::danger 请注意,D:\test\actuator\prometheus\prometheus.yml ,是配置文件存放地址,需要将它放到容器里面去,所以用了-v来做文件映射。/etc/prometheus/prometheus.yml这个是容器启动的时候去取的默认配置,这里是直接覆盖掉了它。prom/prometheus这是镜像,如果本地没有,就设置好的镜像仓库去取。 ::: 启动完成后用docker ps看下是否已经启动成功,之后打开浏览器输入:http://localhost:9090/targets,检查 Spring Boot 采集状态是否正常,如果看到下图就是成功了。2021-08-25-16-46-12-708691.jpeg

3、Grafana 可视化监控数据

首先,获取 Grafana 的 Docker 镜像:

  1. $ docker pull grafana/grafana1

然后,启动 Grafana:

  1. $ docker run --name grafana -d -p 3000:3000 grafana/grafana1

接着,访问 http://localhost:3000/ 配置 Prometheus 数据源:Grafana 登录账号 admin 密码 admin

  1. 先配置数据源.

2021-08-25-16-46-12-922692.png

  1. 配置单个指标的可视化监控面板:

2021-08-25-16-46-13-044692.jpeg2021-08-25-16-46-13-149696.jpeg2021-08-25-16-46-13-267695.jpegprometh采集的数据2021-08-25-16-46-13-440699.png2021-08-25-16-46-13-596697.jpeg

以太坊cppgolang区别 编程

以太坊cppgolang区别

以太坊是一种去中心化的开源平台,它采用智能合约技术,旨在构建和运行不受干扰的分布式应用程序。作为目前最受欢迎的区块链平台之一,以太坊提供了多种编程语言的支持,其
progolang 编程

progolang

Go语言(Golang)是由Google开发的一门静态类型编程语言。作为一名专业的Golang开发者,我深知这门语言的优势和特点。在本文中,我将介绍Golang
golangn个发送者 编程

golangn个发送者

Golang是一种开源的编程语言,由Google团队开发,旨在提高程序的并发性和简化软件开发过程。在Go语言中,有时需要向多个接收者发送信息。本文将介绍如何在G
golang技能图谱 编程

golang技能图谱

从互联网行业的快速发展到人工智能技术的日益成熟,各种编程语言也应运而生。而在这众多的编程语言中,Golang(即Go)作为一门强大且高效的开发语言备受关注。Go
评论:0   参与:  14