Skip to content

metrics

liubao edited this page Jan 18, 2023 · 3 revisions

应用监控(metrics)

Spring Cloud Huawei使用Spring Cloud Actuator和Micrometer生成和上报监控信息。Spring Cloud Huawei增加了服务治理、调用统计等相关监控指标。

日志中打印常见监控指标

默认情况下,Spring Cloud Huawei会间隔5分钟在日志里面打印请求调用时延信息,可以通过下面的配置项控制打印。

spring:
  cloud:
    servicecomb:
      metrics:
        logsEnabled: true
        includePattern: (.)* # Java正则表达式,只统计包含的 metrics ID。
        excludePattern: (.)* # Java正则表达式,不统计包含的 metrics ID。
        logsInterval: PT1M # Duration表达式,打印周期

默认情况下,根据 METHOD PATH 统计调用时延,比如:

metrics_logger                           : [status] [operation] [stage] [requests/cycle/tps] [average] [0, 10) [10,20) [20,50) [50,100) [100,500) [500,2000) [2000,60000) 
200:
  POST /benchmark/feign/delay/z0:
    1001/300/3 2 1000 0 1 0 0 0 0  all
    1001/300/3 1 1000 1 0 0 0 0 0  feign POST /benchmark/delay/z0

在一些复杂的场景下,需要将一系列方法作为一个方法统计,或者在网关调用微服务A,微服务调用微服务B场景下,需要使用网关入口的请求进行时延统计,可以将唯一标识设置为请求上下文:

spring:
  cloud:
    servicecomb:
      context:
        useContextOperationForMetrics: true

设置以后,调用的标记使用 x-operation-id 来识别, 并且请求过程中均使用这个标记。 如果没有这个上下文,会根据METHOD PATH生成 x-operation-id

上报监控信息

一般会通过prometheus来上报监控信息。在项目中引入相关依赖:

<dependency>
  <groupId>com.huaweicloud</groupId>
  <artifactId>spring-cloud-starter-huawei-actuator</artifactId>
</dependency>
<dependency>
  <groupId>io.micrometer</groupId>
  <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

开启 health, prometheus等监控端点, 在 application.yml 中配置:

management:
  endpoint:
    health:
      group:
        readiness:
          include: registry
  endpoints:
    web:
      exposure:
        include: "health,prometheus"
  metrics:
    tags:
      application: ${spring.application.name}

使用监控信息端点

  • 查看健康状态
http://IP:PORT/actuator/health/readiness
http://IP:PORT/actuator/health/liveness
  • 查看监控(metrics) 数据
http://IP:PORT/actuator/prometheus

可以在 ServiceStage 中使用这些端点,实现灵活的滚动升级,以及往 AOM 上报监控数据。

Clone this wiki locally