50. 度量指标(Metrics)

Spring Boot执行器包含一个支持’gauge’和’counter’级别的度量指标服务,’gauge’记录一个单一值,’counter’记录一个增量(增加或减少)。同时,Spring Boot提供一个PublicMetrics接口,你可以实现它,从而暴露以上两种机制不能记录的指标,具体参考SystemPublicMetrics

所有HTTP请求的指标都被自动记录,所以如果点击metrics端点,你可能会看到类似以下的响应:

  1. {
  2. "counter.status.200.root": 20,
  3. "counter.status.200.metrics": 3,
  4. "counter.status.200.star-star": 5,
  5. "counter.status.401.root": 4,
  6. "gauge.response.star-star": 6,
  7. "gauge.response.root": 2,
  8. "gauge.response.metrics": 3,
  9. "classes": 5808,
  10. "classes.loaded": 5808,
  11. "classes.unloaded": 0,
  12. "heap": 3728384,
  13. "heap.committed": 986624,
  14. "heap.init": 262144,
  15. "heap.used": 52765,
  16. "mem": 986624,
  17. "mem.free": 933858,
  18. "processors": 8,
  19. "threads": 15,
  20. "threads.daemon": 11,
  21. "threads.peak": 15,
  22. "uptime": 494836,
  23. "instance.uptime": 489782,
  24. "datasource.primary.active": 5,
  25. "datasource.primary.usage": 0.25
  26. }

此处,我们可以看到基本的memoryheapclass loadingprocessorthread pool信息,连同一些HTTP指标。在该实例中,root(‘/‘),/metrics URLs分别返回20次,3HTTP 200响应,同时可以看到root URL返回了4HTTP 401(unauthorized)响应。双星号(star-star)来自于被Spring MVC /**匹配到的请求(通常为静态资源)。

gauge展示了一个请求的最后响应时间,所以root的最后请求响应耗时2毫秒/metrics耗时3毫秒

在该示例中,我们实际是通过HTTP的/metrics路径访问该端点的,这也就是响应中出现metrics的原因。