当前位置: 首页 > news >正文

Spring Boot Actuator 详细介绍

Spring Boot Actuator 详细介绍

1. 简介

Spring Boot Actuator 是 Spring Boot 提供的一个用于监控和管理应用程序的强大功能模块。它可以帮助我们了解应用程序的运行状况、指标收集、环境信息、日志级别管理等。

2. 添加依赖

2.1 在 pom.xml 中添加以下依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2.2 在bootstrap.yml 中添加如下信息:

management:endpoints:web:exposure:include: "*" // * 号代表启用所有的监控端点,可以单独启用,例如,health,info,metrics等endpoint:health:show-details: always

3. 主要端点介绍

3.1 健康检查端点

  • 端点: /actuator/health
  • 描述: 显示应用程序的健康状态信息
  • 返回示例:
{"status": "UP"
}

3.2 应用信息端点

  • 端点: /actuator/info
  • 描述: 显示应用程序的自定义信息
  • 可在 application.properties/yml 中配置信息

3.3 指标端点

  • 端点: /actuator/metrics
  • 描述: 显示应用程序的各种指标信息
  • 包含: JVM内存使用、系统CPU使用、HTTP请求统计等
{"names": ["application.ready.time","application.started.time","disk.free","disk.total","executor.active","executor.completed","executor.pool.core","executor.pool.max","executor.pool.size","executor.queue.remaining","executor.queued","health_status","http.server.requests","jvm.buffer.count","jvm.buffer.memory.used","jvm.buffer.total.capacity","jvm.classes.loaded","jvm.classes.unloaded","jvm.gc.live.data.size","jvm.gc.max.data.size","jvm.gc.memory.allocated","jvm.gc.memory.promoted","jvm.gc.overhead","jvm.gc.pause","jvm.memory.committed","jvm.memory.max","jvm.memory.usage.after.gc","jvm.memory.used","jvm.threads.daemon","jvm.threads.live","jvm.threads.peak","jvm.threads.states","lettuce.command.completion","lettuce.command.firstresponse","logback.events","nacos_server_instance","process.cpu.usage","process.start.time","process.uptime","system.cpu.count","system.cpu.usage","tomcat.sessions.active.current","tomcat.sessions.active.max","tomcat.sessions.alive.max","tomcat.sessions.created","tomcat.sessions.expired","tomcat.sessions.rejected"]
}

基于上面返回的信息,我们可方便的查看里面各项指标的值,比如查看health_status 指标
端点:http://localhost:8080/actuator/metrics/health_status

 {"name": "health_status","description": null,"baseUnit": null,"measurements": [{"statistic": "VALUE","value": 9.0}],"availableTags": [{"tag": "component","values": ["mongo","reactiveDiscoveryClients","nacosConfig","diskSpace","ping","discoveryComposite","refreshScope","nacosDiscovery","db"]},{"tag": "application","values": ["服务名"]}]
}

3.4 环境端点

  • 端点: /actuator/env
  • 描述: 显示应用程序的环境变量、配置属性等信息

3.5 线程转储端点

  • 端点: /actuator/threaddump
  • 描述: 显示应用程序线程转储信息

3.6 堆转储端点

  • 端点: /actuator/heapdump
  • 描述: 生成应用程序的堆转储文件

4. 常用配置

4.1 如果不想输出redis 相关的指标可以在.yml 文件中添加如下配置

management:health:redis:enabled: false

5. 安全配置

为了保护敏感端点,建议:

  1. 添加 Spring Security 依赖
  2. 配置访问认证
  3. 仅暴露必要的端点
management:endpoints:web:exposure:include: health,info,metrics

6. 自定义健康指示器

可以通过实现 HealthIndicator 接口创建自定义健康检查:

@Component
public class CustomHealthIndicator implements HealthIndicator {@Overridepublic Health health() {// 进行健康检查逻辑return Health.up().withDetail("customKey", "customValue").build();}
}

7. 常见应用场景

  1. 应用程序监控
  2. 健康检查
  3. 性能指标收集
  4. 问题诊断
  5. 运维管理

8. 最佳实践

  1. 生产环境中只暴露必要的端点
  2. 添加适当的安全控制
  3. 定期监控关键指标
  4. 配置告警阈值
  5. 集成到监控系统中

9. 注意事项

  1. 敏感信息保护
  2. 性能影响考虑
  3. 安全访问控制
  4. 磁盘空间管理(特别是对于heapdump)
  5. 监控数据的管理和清理

10. 总结

Spring Boot Actuator 是一个强大的监控和管理工具,通过合理配置和使用,可以帮助我们更好地监控和管理 Spring Boot 应用程序。在实际使用中,需要注意安全性和性能的平衡。

http://www.lryc.cn/news/522282.html

相关文章:

  • 联通用户管理系统(一)
  • go chan底层分析
  • idea上git log面板的使用
  • WOA-Transformer鲸鱼算法优化编码器时间序列预测(Matlab实现)
  • dock 制作 python环境
  • 2025第3周 | json-server的基本使用
  • Autodl转发端口,在本地机器上运行Autodl服务器中的ipynb文件
  • flutter Get GetMiddleware 中间件不起作用问题
  • RabbitMQ(三)
  • 【Python】Python之locust压测教程+从0到1demo:基础轻量级压测实战(1)
  • 【JavaScript】基础内容,HTML如何引用JavaScript, JS 常用的数据类型
  • vue使用自动化导入api插件unplugin-auto-import,避免频繁手动导入
  • 在 C# 中的Lambda 表达式
  • 奉加微PHY6230兼容性:部分手机不兼容
  • 32单片机综合应用案例——基于GPS的车辆追踪器(三)(内附详细代码讲解!!!)
  • 45_Lua模块与包
  • 深度学习电影推荐-CNN算法
  • 【Git 】探索 Git 的魔法——git am 与补丁文件的故事
  • G1原理—5.G1垃圾回收过程之Mixed GC
  • 机器人传动力系统介绍
  • 1161 Merging Linked Lists (25)
  • 内联变量(inline variables):在多个文件中共享全局常量
  • Jmeter进行http接口并发测试
  • 力扣解题汇总_JAVA
  • ubuntu下安装编译cmake,grpc与protobuf
  • SQL Prompt 插件
  • 知识图谱抽取分析中,如何做好实体对齐?
  • 【Python通过UDP协议传输视频数据】(界面识别)
  • 【伪随机数】关于排序算法自测如何生成随机数而引发的……
  • 核密度估计(Kernel Density Estimation, KDE)是一种非参数统计方法