概述

本指南帮助Java开发人员配置应用监控指标采集,涵盖JVM性能、应用性能、业务指标等关键监控数据。

监控方案选择

指标采集框架

  • Micrometer:指标收集门面框架(推荐)

配置步骤

方案A:使用Micrometer + Prometheus(推荐)

1. 添加依赖

<!-- Maven -->
<dependencies>
    <!-- Prometheus注册表 -->
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-registry-prometheus</artifactId>
        <version>1.14.5</version>
    </dependency>
    <!-- Spring Boot Actuator(如果使用Spring Boot) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
</dependencies>

2. Spring Boot配置示例

# application.yml
spring:
  application:
    name: demo-server
management:
  server:
    port: 8888
  endpoints:
    web:
      exposure:
        include: '*'
      base-path: /actuator
  metrics:
    tags:
      application: ${spring.application.name}
  prometheus:
    metrics:
      export:
        enabled: true
        descriptions: false

3. 自定义指标采集

import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.stereotype.Component;

@Component
public class CustomMetrics {
    private final Counter requestCounter;
    private final Timer responseTimer;

    public CustomMetrics(MeterRegistry registry) {
        // 自定义计数器
        requestCounter = Counter.builder("app.requests.total")
            .description("总请求数")
            .tag("application", "myapp")
            .register(registry);

        // 自定义计时器
        responseTimer = Timer.builder("app.response.time")
            .description("响应时间")
            .publishPercentiles(0.5, 0.95, 0.99)
            .register(registry);
    }

    public void recordRequest() {
        requestCounter.increment();
    }

    public void recordResponseTime(Runnable task) {
        responseTimer.record(task);
    }
}

关键监控指标

1. JVM指标

  • 内存使用:堆内存、非堆内存、各分区使用率
  • GC情况:GC次数、GC耗时
  • 线程状态:线程数、死锁检测
  • 类加载:加载/卸载类数量

2. 应用性能指标

  • HTTP请求:QPS、响应时间、错误率
  • 数据库连接池:活跃连接、等待连接
  • 缓存命中率
  • 外部调用成功率

3. 业务指标

  • 关键业务流程执行次数
  • 订单量、支付成功率等
  • 用户活跃度

配置验证

1. 检查端点

# Prometheus指标端点
curl http://localhost:8888/actuator/prometheus

# 健康检查
curl http://localhost:8888/actuator/health

# 详细信息
curl http://localhost:8888/actuator/metrics

2. 验证指标

# 查找特定指标
curl http://localhost:8888/actuator/prometheus | grep "jvm_memory_used"

# 响应示例:
# jvm_memory_used_bytes{area="heap",} 2.41056768E8
# jvm_memory_used_bytes{area="nonheap",} 8.0064128E7

监控平台集成

  • 登录容器引擎平台,进入主控制台;
  • 进入目标 【项目详情页】
  • 切换至 【服务】 标签页;
  • 在列表中找到目标服务,点击其右侧的 【监控配置】,即可进入 【监控指标采集配置】 页面。
  • 如果没有服务,请先【创建服务】



项目 说明 示例值
容器内监控端口 目标服务中用于暴露监控指标的端口号。 8888
监控路径 目标服务上提供监控数据的 HTTP 路径。 /actuator/prometheus
抓取URL(自动生成) 系统根据PodIP、端口和路径自动拼接的完整访问地址,用于实际抓取监控数据。

通过以上配置,您的Java应用将能够采集关键监控指标,帮助您及时发现和解决问题,保证系统稳定运行。

作者:叶奕珺  创建时间:2025-12-22 19:46
最后编辑:叶奕珺  更新时间:2026-01-15 14:15