springboot 实时监控 spring-boot-starter-actuator 包

本文介绍在SpringBoot框架中使用Actuator进行实时监控的方法。通过引入spring-boot-starter-actuator依赖,可实现健康检查、信息查看、自动配置等监控功能。详细介绍了如何配置监控URL、公开所有监控节点及针对特定Controller的监控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对java工程实时监控方式很多,本文主要讲在springboot框架中的监控。
springboot框架,自带了actuator监控,在pom中引入jar包即可,如下

1.引入jar
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

在2.0版本之后改动很大,我这里是用的2.0.2

2.启动项目后即可访问
http://localhost:8081/webproject/actuator/health
http://localhost:8081/webproject/actuator/info

如果想让url个性化一点,在 application.propertie
配置文件中 加入
management.endpoints.web.base-path=/jiankong
那么就可以访问
http://localhost:8081/webproject/jiankong/health

3.actuator 提供了很多api(称为:节点)
默认只开放了 health、info两个节点
如果需要公开所有 则在配置文件中继续加入
management.endpoints.web.exposure.include=*
其中 health方法 是不显示具体的内容的,如需要
则继续加入配置
management.endpoint.health.show-details=always

具体方法和返回内容 可以参考API
GET /autoconfig 查看自动配置的使用情况 true 
GET /configprops 查看配置属性,包括默认配置 true 
GET /beans 查看bean及其关系列表 true 
GET /dump 打印线程栈 true 
GET /env 查看所有环境变量 true 
GET /env/{name} 查看具体变量值 true 
GET /health 查看应用健康指标 false 
GET /info 查看应用信息 false 
GET /mappings 查看所有url映射 true 
GET /metrics 查看应用基本指标 true 
GET /metrics/{name} 查看具体指标 true 
POST /shutdown 关闭应用 true 
GET /trace 查看基本追踪信息 true 

4. 常用的查看具体指标的方法  /metrics/{name}
http://localhost:8081/webproject/actuator/metrics/http.server.requests
http://localhost:8081/webproject/actuator/metrics/jvm.memory.used
http://localhost:8081/webproject/actuator/metrics/jvm.threads.peak


等等,具体name 可以通过/metrics 获得,
其中 http.server.requests 是对所有请求的url的监控,次数,时间 等。
那么如果我们需要针对个别重点controller分别监控呢~~

5.分别监控,需要在controller上做些手脚
在RequestMapping 上面 加上注解 @Timed(value = "list.base", longTask = true)
value可以就用mapping 这样。
这个@Timed 注解 是 micrometer-core-1.0.3-sources.jar的 springboot监控本身用到的。
当访问过这个controller之后 就可以调用~ 注意还没有收到过请求的话是请求不到这个list.base的
http://localhost:8081/webproject/actuator/metrics/list.base

{
    "availableTags":[
        {
            "tag":"exception",
            "values":["None"]
        },
        {
            "tag":"method",
            "values":["POST"]
        },
        {
            "tag":"uri",
            "values":["/ListDataBase","root"]
        },
        {
            "tag":"status",
            "values":["200"]
        }
    ],
    "measurements":[
        {
            "statistic":"ACTIVE_TASKS",
            "value":0
        },
        {
            "statistic":"DURATION",
            "value":0
        },
        {
            "statistic":"COUNT",
            "value":1
        },
        {
            "statistic":"TOTAL_TIME",
            "value":0.306317164
        },
        {
            "statistic":"MAX",
            "value":0.306317164
        }
    ],
    "name":"list.base"
}

如果有兴趣研究更多。。。官网api
https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#production-ready-endpoints

### 集成 Spring Boot ActuatorSpring Boot 项目中 要在 Spring Boot 项目中集成 `spring-boot-starter-actuator`,可以通过以下步骤实现。 #### 添加依赖 首先,在项目的 `pom.xml` 文件中添加 `spring-boot-starter-actuator` 的依赖。此模块是 Spring Boot 提供的一个功能强大的工具,用于监控和管理应用程序[^2]。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> ``` 由于 Spring Boot 的父工程通常已经管理了版本信息,因此不需要在子模块中显式指定版本号[^3]。 #### 配置 Actuator 端点 在 `application.properties` 或 `application.yml` 中配置 Actuator 相关的端点设置。默认情况下,并非所有端点都启用,需要手动开启所需的端点。 例如,在 `application.yml` 中启用所有端点: ```yaml management: endpoints: web: exposure: include: "*" endpoint: health: show-details: ALWAYS ``` 上述配置启用了所有 Web 端点,并允许健康检查显示详细信息。 #### 启动应用并访问端点 完成依赖添加和配置后,启动 Spring Boot 应用程序。Actuator 提供了许多内置端点,例如 `/actuator/health`、`/actuator/info`、`/actuator/metrics` 等。这些端点可用于获取应用程序运行时状态的信息[^5]。 #### 自定义端点(可选) 如果需要自定义端点,可以创建一个类并继承 `AbstractEndpoint` 或使用 `@Endpoint` 注解来定义新的端点。这样可以扩展 Actuator 的功能以满足特定需求。 ### 示例代码 以下是简单的 Spring Boot 主类示例: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootStarterActuatorApplication { public static void main(String[] args) { SpringApplication.run(SpringBootStarterActuatorApplication.class, args); } } ``` #### 常见端点说明 | 端点 | 描述 | |------|------| | `/actuator/health` | 显示应用程序的健康状况 | | `/actuator/info` | 显示应用程序的信息 | | `/actuator/metrics` | 显示应用程序的指标信息 | | `/actuator/beans` | 显示 Spring 应用上下文中创建的所有 Bean | | `/actuator/env` | 显示当前 JVM 的环境变量 | 通过这些端点,开发人员和运维团队可以更好地监控和管理应用程序的运行状态[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值