ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

JVM Prometheus Monitor - 轻量级 JVM 监控面板

2026/8/15 9:27:23 拓冰建站 浏览量
JVM Prometheus Monitor - 轻量级 JVM 监控面板 JVM Prometheus Monitor一个基于 Prometheus 的 JVM 监控工具提供实时、可视化的 JVM 性能监控和健康分析功能。 目录功能特性快速开始配置说明监控指标详解健康分析功能GC 类型支持常见问题最佳实践✨ 功能特性 实时监控每 5 秒自动刷新支持暂停/继续实时查看 JVM 各项指标变化趋势。 可视化图表15 个独立图表包括堆内存、非堆内存、GC、CPU、线程等支持鼠标悬浮查看详情。 健康分析自动分析 JVM 健康状态识别潜在风险提供优化建议。 多 GC 支持自动识别 G1、Parallel、CMS、Serial 等 GC 类型提供针对性分析。⚙️ 灵活配置支持自定义服务地址、Metrics 路径、认证 Header配置自动保存。 响应式设计Grafana 风格暗色主题适配各种屏幕尺寸支持移动端访问。 快速开始1. 前置条件目标应用已集成 Spring Boot Actuator 或 Prometheus 客户端目标应用暴露了/metrics或/actuator/prometheus端点现代浏览器Chrome、Firefox、Safari、Edge2. 启动监控打开index.html文件直接双击或用浏览器打开点击右上角⚙️ 配置按钮填写配置信息服务地址例如http://your-service:8080Metrics 路径默认/metricsSpring Boot 应用通常是/actuator/prometheus请求头如果需要认证填写 JSON 格式的 Header例如{refresh-token: ***}点击连接服务按钮开始监控 提示配置会自动保存到浏览器本地存储下次打开无需重新配置。⚙️ 配置说明基础配置配置项说明示例服务地址目标应用的完整 URL协议域名端口http://test-service.example.com:8080Metrics 路径Prometheus 指标暴露的路径/metrics或/actuator/prometheus请求头JSON 格式的 HTTP 请求头用于认证{Authorization: Bearer ***}Spring Boot 应用配置如果目标应用是 Spring Boot需要确保已添加 Actuator 依赖dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-actuator/artifactId /dependency dependency groupIdio.micrometer/groupId artifactIdmicrometer-registry-prometheus/artifactId /dependency在application.yml中启用 Prometheus 端点management: endpoints: web: exposure: include: prometheus,health,info metrics: export: prometheus: enabled: true 监控指标详解堆内存监控指标说明关注点Eden 区新对象分配区域频繁 Minor GC 可能导致 Eden 快速回收Survivor 区存活对象暂存区使用率过高可能导致对象提前晋升Old Gen长期存活对象持续增长可能表示内存泄漏非堆内存监控指标说明关注点Metaspace类元数据存储区持续增长可能表示类加载泄漏Code CacheJIT 编译代码缓存满了会影响性能Compressed Class Space压缩类指针空间通常不需要特别关注GC 监控指标说明正常范围Minor GC 频率Young GC 次数/小时 100 次/小时Full GC 频率Full GC 次数/小时 1 次/小时GC 暂停时间单次 GC 暂停毫秒数 200ms系统资源监控指标说明关注点CPU 使用率进程和系统 CPU 占用持续 80% 需要关注线程数活跃线程、阻塞线程等阻塞线程过多可能表示锁竞争 健康分析功能点击页面右上角的 分析按钮系统会自动分析当前 JVM 状态并生成健康报告。分析维度堆内存使用率评估堆内存是否充足各区域使用率Eden、Survivor、Old Gen 的使用情况非堆内存Metaspace、Code Cache 使用情况GC 频率和耗时评估 GC 是否过于频繁CPU 使用率评估 CPU 资源是否充足线程状态检查是否有过多阻塞线程文件描述符检查 FD 使用率风险等级等级颜色说明正常 绿色指标在安全范围内警告 黄色指标接近阈值需要关注严重 红色指标超过阈值需要立即处理阈值标准指标警告阈值严重阈值堆内存使用率 70% 85%Old Gen 使用率 60% 80%Survivor 使用率 90%-Metaspace 使用率 80% 90%Full GC 频率 0.1 次/小时 1 次/小时CPU 使用率 60% 80%阻塞线程数 10- GC 类型支持系统会自动识别以下 GC 类型并提供针对性的分析G1 GC特点面向服务端应用可预测的停顿时间内存区域Eden、Survivor、Old GenRegion 化GC 类型Young GC、Mixed GC、Full GC分析重点Old Gen 使用率、Mixed GC 频率Parallel GC默认特点吞吐量优先多线程并行回收内存区域PS Eden、PS Survivor、PS Old GenGC 类型Minor GC、Major GC分析重点Survivor 使用率自适应策略、Full GC 频率CMS GC特点低延迟并发标记清除内存区域Par Eden、Par Survivor、CMS Old GenGC 类型Minor GC、Concurrent Mark-Sweep分析重点Old Gen 碎片化、Concurrent Mode FailureSerial GC特点单线程适合客户端应用内存区域Eden、Survivor、Tenured GenGC 类型Minor GC、Major GC分析重点GC 暂停时间❓ 常见问题Q1: 为什么连接服务失败可能原因服务地址或端口错误Metrics 路径不正确Spring Boot 应用通常是/actuator/prometheus需要认证但未提供正确的 HeaderCORS 跨域问题目标服务未配置允许跨域Q2: 为什么某些图表没有数据可能原因目标应用未暴露相应的 Prometheus 指标应用刚启动还没有产生 GC 或 HTTP 请求指标名称与预期不同不同 GC 类型的指标名称不同Q3: Survivor 区使用率很高正常吗答案取决于 GC 类型和配置。Parallel GC启用自适应策略时Survivor 会自动调整大小高使用率可能是正常的G1 GCSurvivor 使用率高可能导致对象提前晋升需要关注建议查看健康分析报告系统会根据 GC 类型给出针对性建议Q4: Full GC 频繁怎么办排查步骤检查 Old Gen 使用率是否持续增长可能内存泄漏检查 Metaspace 使用率可能类加载泄漏增加堆内存-Xmx调整 GC 参数或切换到 G1 GC使用jmap、jstat等工具深入分析Q5: 如何监控多个服务当前版本每个页面只能监控一个服务。解决方案打开多个浏览器标签页每个监控一个服务或者修改代码支持多服务切换需要开发 最佳实践JVM 参数推荐配置G1 GC推荐堆内存 4GB-Xms4g -Xmx4g -XX:UseG1GC -XX:MaxGCPauseMillis200 -XX:G1HeapRegionSize4m -XX:InitiatingHeapOccupancyPercent45 -XX:MetaspaceSize256m -XX:MaxMetaspaceSize512mParallel GC堆内存 4GB-Xms2g -Xmx2g -XX:UseParallelGC -XX:ParallelGCThreads4 -XX:UseAdaptiveSizePolicy -XX:MetaspaceSize256m -XX:MaxMetaspaceSize512m监控建议定期检查健康分析报告每天至少查看一次及时发现潜在问题关注趋势而非瞬时值观察图表的变化趋势而不是某个时间点的值设置告警阈值根据业务特点设置合理的告警阈值结合日志分析GC 日志、应用日志结合分析快速定位问题压测验证在测试环境进行压测观察 JVM 各项指标的表现性能优化方向减少 GC 频率优化对象创建减少短命对象降低 GC 暂停调整 GC 参数选择合适的 GC 类型避免内存泄漏及时释放不再使用的资源注意集合类的清理优化线程池合理配置线程池大小避免过多线程竞争监控 Metaspace避免类加载泄漏特别是动态加载类的场景JVM Prometheus Monitor- 让 JVM 监控更简单、更直观版本1.0.0 | 最后更新2026-08-13