使用Prometheus监控MicroMeter的Java应用

本文介绍如何使用Prometheus监控MicroMeter的Java应用。

前提条件

已创建Java应用。

步骤一:将MicroMeter加入Java应用

说明

这里以目前最常用的Spring Boot 2.x应用为例介绍。

  1. 将Spring Boot Actuator加入Java应用所在Project的pom.xml中添加Actuator依赖。

    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-registry-prometheus</artifactId>
      <version>x.y.z</version>
    </dependency>
    说明

    最新版本可到aliyun仓库查找。

  2. 配置Acuator,在application.properties中添加相关配置暴露prometheus监测数据端口和范围。

    management.server.port=8080
    management.endpoints.web.exposure.include=xxx, prometheus
  3. 在Project的pom.xml中添加MicroMeter依赖。

    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-registry-prometheus</artifactId>
      <version>x.y.z</version>
    </dependency>
    说明

    最新版本可到aliyun仓库查找。

  4. 在Project的pom.xml中添加MicroMeter JVM Extras依赖。

    <dependency>
        <groupId>io.github.mweirauch</groupId>
        <artifactId>micrometer-jvm-extras</artifactId>
        <version>0.2.2</version>
    </dependency>
    说明

    最新版本可到aliyun仓库查找。

  5. 配置MicroMeter JVM Extras,增加以下2个Spring Bean定义,以便暴露内存和线程相关指标。

    /* With Spring */
    @Bean
    public MeterBinder processMemoryMetrics() {
        return new ProcessMemoryMetrics();
    }
    
    @Bean
    public MeterBinder processThreadMetrics() {
        return new ProcessThreadMetrics();
    }
  6. 将Java应用部署到容器服务中ECS。

    根据业务场景,将Java业务应用部署到容器服务或ECS上。部署成功后,访问应用监听地址http://localhost:8080/actuator/prometheus(其中8080端口是您在application.properties中配置中指定的,根据实际端口值,修改此URL中的端口即可),验证metrics暴露正确。

    image

步骤二:接入 MicroMeter

  1. 登录ARMS控制台在左侧导航,选择接入中心,然后在搜索框中输入并单击MicroMeter

    image

  2. 在MicroMeter面板的开始接入页签选择所属环境类型完成接入,然后单击确定

    image

    参数

    说明

    选择所属环境类型

    可以接入以下两种服务环境:

    • 容器服务环境

    • ECS(VPC)

    选择集群

    选择目标集群。

    Pod 标签

    部署 MicroMeter 服务 Pod 的标签(建议使用有特定标识的标签)

    服务端口

    Java应用服务的端口,默认端口号会自动填充。

    Metrics 采集路径

    MicroMeter 指标透出路径,默认路径会自动填充。

    使用 HTTPS 采集

    默认使用 HTTP 协议采集,如果服务支持 HTTPS 协议,且希望通过 HTTPS 协议来采集,则可以打开此开关。

    Metric 采集间隔(单位/秒)

    可观测监控 Prometheus 版采集指标数据的时间间隔,默认30秒。

步骤三:查看 MicroMeter 大盘数据

  1. 登录ARMS控制台在左侧导航栏,单击接入管理。在接入管理页面的已接入环境页签中,选择目标环境,在目标环境列表中,单击目标环境名称进入容器环境详情页面。

    image

  2. 组件管理页签下的组件类型区域,单击MicroMeter,然后单击大盘,即可查看所有的大盘名称。

    image

  3. 单击目标大盘名称,查看对应的Grafana大盘。

    image

步骤四:配置 MicroMeter 监控告警

  1. 组件管理页签下的组件类型区域,单击MicroMeter,然后单击告警规则,即可查看默认创建的告警规则。

    image

  2. 您还可以根据业务需求新增告警规则,创建Prometheus告警规则的具体操作,请参见Prometheus告警规则