此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.4.4

指标 (metrics)

metricsendpoint 提供对应用程序指标的访问,以诊断应用程序已记录的指标。 此终端节点不应被 “抓取” 或用作生产中的指标后端。 其目的是显示当前注册的量度,以便用户可以看到哪些量度可用、其当前值是什么,以及触发某些作是否会导致某些值发生任何变化。 如果您想通过应用程序收集的指标来诊断应用程序,则应使用外部指标后端。 在这种情况下,metricsendpoint 仍然有用。

检索度量名称

要检索可用指标的名称,请创建一个GETrequest 添加到/actuator/metrics,如以下基于 curl 的示例所示:

$ curl 'http://localhost:8080/actuator/metrics' -i -X GET

生成的响应类似于以下内容:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 154

{
  "names" : [ "jvm.buffer.count", "jvm.buffer.memory.used", "jvm.buffer.total.capacity", "jvm.memory.committed", "jvm.memory.max", "jvm.memory.used" ]
}

响应结构

响应包含指标名称的详细信息。 下表描述了响应的结构:

路径 类型 描述

names

Array

已知指标的名称。

检索指标

要检索指标,请创建一个GETrequest 添加到/actuator/metrics/{metric.name},如以下基于 curl 的示例所示:

$ curl 'http://localhost:8080/actuator/metrics/jvm.memory.max' -i -X GET

前面的示例检索有关名为jvm.memory.max. 生成的响应类似于以下内容:

HTTP/1.1 200 OK
Content-Disposition: inline;filename=f.txt
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 555

{
  "name" : "jvm.memory.max",
  "description" : "The maximum amount of memory in bytes that can be used for memory management",
  "baseUnit" : "bytes",
  "measurements" : [ {
    "statistic" : "VALUE",
    "value" : 2.399141885E9
  } ],
  "availableTags" : [ {
    "tag" : "area",
    "values" : [ "heap", "nonheap" ]
  }, {
    "tag" : "id",
    "values" : [ "CodeHeap 'profiled nmethods'", "G1 Old Gen", "CodeHeap 'non-profiled nmethods'", "G1 Survivor Space", "Compressed Class Space", "Metaspace", "G1 Eden Space", "CodeHeap 'non-nmethods'" ]
  } ]
}

查询参数

终端节点使用查询参数通过标签向下钻取到指标。 下表显示了单个支持的查询参数:

参数 描述

tag

用于在表单中向下钻取的标记name:value.

响应结构

响应包含指标的详细信息。 下表描述了响应的结构:

路径 类型 描述

name

String

指标名称

description

String

指标描述

baseUnit

String

度量的基本单位

measurements

Array

度量的度量

measurements[].statistic

String

测量的统计信息。(TOTAL,TOTAL_TIME,COUNT,MAX,VALUE,UNKNOWN,ACTIVE_TASKS,DURATION).

measurements[].value

Number

测量值的值。

availableTags

Array

可用于向下钻取的标记。

availableTags[].tag

String

标签的名称。

availableTags[].values

Array

标签的可能值。

向下钻取

要向下钻取到量度,请创建一个GETrequest 添加到/actuator/metrics/{metric.name}使用tagquery 参数,如以下基于 curl 的示例所示:

$ curl 'http://localhost:8080/actuator/metrics/jvm.memory.max?tag=area%3Anonheap&tag=id%3ACompressed+Class+Space' -i -X GET

前面的示例检索jvm.memory.max指标,其中areatag 的值为nonheapidattribute 的值为Compressed Class Space. 生成的响应类似于以下内容:

HTTP/1.1 200 OK
Content-Disposition: inline;filename=f.txt
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 263

{
  "name" : "jvm.memory.max",
  "description" : "The maximum amount of memory in bytes that can be used for memory management",
  "baseUnit" : "bytes",
  "measurements" : [ {
    "statistic" : "VALUE",
    "value" : 1.073741824E9
  } ],
  "availableTags" : [ ]
}

APP信息