阿丹:
之前已经实现了使用Prometheus来对服务器进行了监控和仪表盘的创建,现在就需要对这些监控方法使用在spring-boot中去。
实现思路:
1、集成Actuator
2、加入Prometheus的依赖
3、配置开放端口、以及开放监控
4、配置Prometheus中的配置
5、使用Grafana中的SpringBoot Actuator展示模版
一、集成Actuator
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Spring Actuator是Spring框架中的一个模块,旨在为应用程序提供监控和管理的功能。它为开发人员提供了一系列的HTTP端点,可以用来查看应用程序的运行状况、性能指标、日志信息等。Actuator可以帮助开发人员进行应用程序的监控、诊断和管理,从而更好地了解应用程序的运行情况。
Spring Actuator提供了一些常用的端点,包括:
-
/health:用于检查应用程序的健康状况,例如数据库连接是否正常、磁盘空间是否足够等。
-
/info:用于查看应用程序的一般信息,例如应用程序的名称、版本、描述等。
-
/metrics:用于查看应用程序的运行指标,例如CPU使用率、内存使用量、请求次数等。
-
/logfile:用于查看应用程序的日志文件。
-
/env:用于查看应用程序的环境变量。
除了这些常用端点,Actuator还提供了一些其他功能,如配置端点、线程Dump端点、热重启端点等。开发人员可以根据自己的需求自定义配置和使用这些端点。
在Spring项目中集成Actuator非常简单,只需在项目的依赖中加入相关的Actuator模块,并进行必要的配置,即可启用Actuator的功能。
依赖说明:
在Spring Boot应用程序中使用Prometheus进行监控时,spring-boot-starter-actuator
依赖提供了与Prometheus进行集成的能力。通过添加这个依赖,你可以使Spring Boot应用程序暴露所需的端点,以供Prometheus抓取并收集监控指标。
具体来说,spring-boot-starter-actuator
中的Actuator模块启用了以下与Prometheus相关的功能:
- 自动配置:Actuator自动配置模块将根据在应用程序中定义的配置属性,自动为应用程序启用与Prometheus集成的相关功能。这使得无需手动配置即可与Prometheus进行集成。
- 端点暴露:Actuator提供了一组HTTP端点,其中包括与Prometheus监控相关的端点。这些端点将监控数据暴露给Prometheus进行抓取。
- Metrics和Health信息:通过Actuator的端点,你可以获取应用程序的Metrics信息和Health状态。这些信息将被Prometheus抓取并存储,以供进一步的分析和警报。
总之,spring-boot-starter-actuator
依赖使得Spring Boot应用程序能够与Prometheus进行集成,从而通过Prometheus对应用程序进行监控和度量。
二、引入Prometheus依赖micrometer-registry-prometheus
。
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
micrometer-registry-prometheus
这个依赖在Spring Boot项目中使用Prometheus进行监控时,提供了将应用程序的度量数据暴露给Prometheus的功能。
具体来说,micrometer-registry-prometheus
是一个Micrometer的Prometheus注册器实现。Micrometer是一个用于Java应用程序的度量库,它提供了一种标准化的方式来收集和报告度量数据。通过添加这个依赖,你可以将Micrometer与Prometheus集成,从而将应用程序的度量数据暴露给Prometheus进行抓取。
当与Prometheus集成后,你可以通过配置将Micrometer生成的度量数据发送到Prometheus,然后使用PromQL进行查询和分析。这样,你可以获得应用程序的性能指标,如请求处理时间、数据库查询速率等,以便进行监控和问题诊断。
此外,micrometer-registry-prometheus
还提供了一些额外的功能,如自定义度量数据的命名和标签,以及与Prometheus的自动发现功能进行集成等。
总之,micrometer-registry-prometheus
依赖使得Spring Boot项目能够与Prometheus进行集成,以便更好地监控应用程序的性能。
三、添加yml配置
因为在默认的情况下,端点是不可用的,所以必须要公开,所以需要添加如下配置
management:
endpoints:
web:
exposure:
include: prometheus,health,info
并且指定服务名字
spring:
application:
name: adn-ask
四、 添加Prometheus配置
scrape_configs:
- job_name: 'adn-ask' #prometheus任务名称
scrape_interval: 5s #每五秒抓取一次数据
metrics_path: '/actuator/prometheus' #数据来源的地址
static_configs:
- targets: ['localhost:8081'] #拉去数据的地址
注意在使用的时候服务名字一定要对应以及下面的端口号和ip地址。
五、导入SpringBoot Actuator的展示模板
使用的模版id为:12900
提供展板的官网:
Dashboards | Grafana Labs