了解 Spring Boot 执行器 `http.server.requests` 指标 MAX 属性

Rah*_*pta 5 spring-boot spring-boot-actuator spring-micrometer

有人可以解释一下 MAX 统计数据在下面的回复中指的是什么吗?我没有看到它在任何地方记录。

localhost:8081/actuator/metrics/http.server.requests?tag=uri:/myControllerMethod
Run Code Online (Sandbox Code Playgroud)

回复:

{  
   "name":"http.server.requests",
   "description":null,
   "baseUnit":"milliseconds",
   "measurements":[  
      {  
         "statistic":"COUNT",
         "value":13
      },
      {  
         "statistic":"TOTAL_TIME",
         "value":57.430899
      },
      {  
         "statistic":"MAX",
         "value":0
      }
   ],
   "availableTags":[  
      {  
         "tag":"exception",
         "values":[  
            "None"
         ]
      },
      {  
         "tag":"method",
         "values":[  
            "GET"
         ]
      },
      {  
         "tag":"outcome",
         "values":[  
            "SUCCESS"
         ]
      },
      {  
         "tag":"status",
         "values":[  
            "200"
         ]
      },
      {  
         "tag":"commonTag",
         "values":[  
            "somePrefix"
         ]
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

bur*_*ete 3

您可以使用?tag=url:{endpoint_tag}/actuator/metrics/http.server.requests调用响应中定义的方式查看各个指标。值的详细信息measurements是:

  • COUNT:每秒的呼叫速率。
  • TOTAL_TIME:记录的时间总和。以监控系统的基本时间单位报告
  • MAX:记录的最大金额。当它表示时间时,会以监控系统的基本时间单位进行报告。

正如这里给出的,也在这里


您看到的差异是由于计时器的存在造成的。这意味着一段时间后,MAX任何标记指标的当前定义值都可以重置回0。您可以添加一些新的调用,/myControllerMethod然后立即调用以查看给定标记的/actuator/metrics/http.server.requests非零值吗?MAX

MAX这是由于获取每个较小时期的指标背后的想法。当您看到这些指标时,您将能够MAX在很长一段时间内获得一组值而不是单个值。

您可以在 Micrometer 源代码中看到它的实际效果。有一种rotate()方法专注于重置MAX值以创建上述行为。

您可以看到每次调用都会调用此方法poll(),每隔一段时间就会触发一次以进行指标收集。

  • 就我而言,无论调用端点的次数如何,“MAX”始终等于零。 (2认同)