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

【监控】Spring Boot 应用监控

这段配置是 Spring Boot 应用中对 Actuator 和 Micrometer 监控系统的配置,用于将应用的指标暴露给 Prometheus 进行收集。下面我将详细介绍这种配置方式及其提供的指标。

配置说明

这个配置主要涉及 Spring Boot Actuator 和 Micrometer 两个核心组件:

  1. Actuator 配置
management:endpoint:env:enabled: false  # 禁用 env 端点,防止暴露敏感环境变量security:enabled: false  # 禁用端点安全验证(生产环境建议启用)endpoints:web:exposure:include:- prometheus  # 只暴露 prometheus 端点

这部分配置了 Actuator 端点的访问权限和暴露范围,特别启用了 Prometheus 指标端点。

  1. Micrometer 配置
management:metrics:tags:application: XXXX  # 为所有指标添加 application=XXXX 标签enable:all: true  # 启用所有默认指标收集distribution:percentiles:http.server.requests: 0.25,0.5,0.75,0.9,0.95  # 为 HTTP 请求指标计算指定百分位数

这部分配置了 Micrometer 的指标收集策略,包括标签、启用的指标类型和分布统计参数。

  1. 依赖配置
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

这两个依赖分别引入了 Actuator 和 Prometheus 指标收集器。

提供的核心指标

Spring Boot Actuator 与 Micrometer 结合 Prometheus 会提供以下几类核心指标:

1. JVM 相关指标
jvm_memory_used_bytes                # JVM 各区域(堆、非堆)已使用内存
jvm_memory_max_bytes                 # JVM 各区域最大可用内存
jvm_memory_committed_bytes           # JVM 各区域已提交的内存
jvm_gc_pause_seconds_total           # GC 暂停总时间
jvm_threads_live_threads             # 当前活跃线程数
jvm_classes_loaded_classes           # 已加载的类数量
2. HTTP 请求指标
http_server_requests_seconds_count   # HTTP 请求总数
http_server_requests_seconds_sum     # HTTP 请求总耗时
http_server_requests_seconds_max     # HTTP 请求最大耗时
http_server_requests_seconds         # HTTP 请求耗时分布(通过 percentiles 配置)

可通过 methoduristatus 等标签过滤不同请求路径和状态码的性能。

3. 系统资源指标
system_cpu_usage                     # 系统 CPU 使用率
process_cpu_usage                    # 进程 CPU 使用率
system_load_average_1m               # 系统 1 分钟负载平均值
process_start_time_seconds           # 进程启动时间
4. 数据库连接池指标(如 HikariCP)
hikaricp_connections_active          # 活跃连接数
hikaricp_connections_idle            # 空闲连接数
hikaricp_connections_pending         # 等待获取连接的线程数
hikaricp_connections_creation_seconds # 连接创建耗时
5. 缓存指标(如 Caffeine、Redis)
cache_gets_total                     # 缓存获取次数
cache_hits_total                     # 缓存命中次数
cache_misses_total                   # 缓存未命中次数
cache_puts_total                     # 缓存放入次数
6. 自定义业务指标

通过 MeterRegistry 接口可以在代码中添加自定义指标,例如:

@Autowired
private MeterRegistry meterRegistry;// 计数器
Counter requestCounter = meterRegistry.counter("http_requests", "endpoint", "/api/users");
requestCounter.increment();// 计时器
Timer apiTimer = meterRegistry.timer("api_response_time", "service", "user-service");
apiTimer.record(() -> {// 执行耗时操作
});

如何使用这些指标

  1. 访问指标端点
    应用启动后,可以通过 http://<host>:<port>/actuator/prometheus 查看 Prometheus 格式的指标数据。
  2. Prometheus 配置
    在 Prometheus 的配置文件中添加抓取任务:
scrape_configs:- job_name: 'spring-boot-app'static_configs:- targets: ['localhost:8080']metrics_path: '/actuator/prometheus'
  1. Grafana 可视化
    导入 Spring Boot 官方提供的 Grafana 仪表盘模板(如 ID 12968),快速展示应用性能图表。

性能优化建议

  1. 调整百分位计算
    配置中的 percentiles 会增加计算开销,生产环境建议只保留关键百分位(如 0.95、0.99)。
  2. 禁用不必要的指标
    如果某些指标对监控无帮助,可以通过 management.metrics.enable.<metric-name>=false 禁用。
  3. 添加自定义标签
    为指标添加有业务意义的标签(如 serviceoperation),便于聚合和分析。
  4. 监控告警
    基于关键指标设置告警规则,例如:
    • HTTP 请求 95% 响应时间超过 1 秒
    • JVM 堆内存使用率超过 80%
    • 数据库连接池等待线程数持续大于 5

这种配置方式使 Spring Boot 应用能够无缝集成 Prometheus 监控系统,提供全面的应用性能指标,帮助开发者及时发现和解决问题。

相关文章:

  • 如何制作全景VR图?
  • 线上 VR 展会:独特魅力与显著特质
  • 【赵渝强老师】HBase的体系架构
  • VR 技术与病毒分离鉴定:一场奇妙的邂逅​
  • Mobaxterm 连接到 Docker 容器
  • C语言栈详解
  • 不同电脑同一个网络ip地址一样吗
  • ⚡ Hyperlane —— 比 Rocket 更快的 Rust Web 框架!
  • IEEE出版|2025年智能制造、机器人与自动化国际学术会议 (IMRA2025)
  • 晶体单元(crystal unit)与晶体振荡器(crystal oscillator)
  • 类和对象(3)
  • vscode开发stm32,main.c文件中出现很多报错影响开发解决日志
  • 智能防护实战:从攻击成本看企业安全降本增效
  • 分布式架构:解读不同数据一致性模型
  • stm32f系列工程切换到H系列
  • Qwen3内置提示词模板解读
  • 企业微信内部网页开发流程笔记
  • 嵌入式学习--江协stm32day3
  • JavaScript- 3.2 JavaScript实现不同显示器尺寸的响应式主题和页面
  • Java spingboot项目 在docker运行,需要含GDAL的JDK
  • WordPress+百度+主动/seo引擎优化工具
  • 郑州市建网站/磁力天堂
  • 免费做产品画册的网站/上海抖音seo公司
  • wordpress调用ip查询/东莞seo网络培训
  • wordpress客户端建站/引擎搜索大全
  • 公司注册地址异常如何处理/站长工具seo综合查询广告