指标(metrics

metrics 端点用于访问应用程序指标,以诊断应用程序记录的各项指标。 该端点不应在生产环境中被“抓取”或用作指标后端。 其目的是展示当前已注册的指标,便于用户查看可用指标、当前值,以及触发某些操作后某些值是否发生变化。 如果你希望通过应用收集的指标进行诊断,应使用 外部指标后端。 在这种情况下,metrics 端点依然有参考价值。

获取指标名称

要获取可用指标的名称,请像以下基于 curl 的示例一样,向 /actuator/metrics 发起 GET 请求:

$ 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" ]
}

响应结构

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

Path Type Description

names

Array

Names of the known metrics.

获取单个指标

要获取某个指标,请像以下基于 curl 的示例一样,向 /actuator/metrics/{metric.name} 发起 GET 请求:

$ 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.936012797E9
  } ],
  "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'" ]
  } ]
}

查询参数

该端点使用查询参数对指标进行 下钻,通过标签筛选。 下表展示了唯一支持的查询参数:

Parameter Description

tag

A tag to use for drill-down in the form name:value.

响应结构

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

Path Type Description

name

String

Name of the metric

description

String

Description of the metric

baseUnit

String

Base unit of the metric

measurements

Array

Measurements of the metric

measurements[].statistic

String

Statistic of the measurement. (TOTAL, TOTAL_TIME, COUNT, MAX, VALUE, UNKNOWN, ACTIVE_TASKS, DURATION).

measurements[].value

Number

Value of the measurement.

availableTags

Array

Tags that are available for drill-down.

availableTags[].tag

String

Name of the tag.

availableTags[].values

Array

Possible values of the tag.

下钻

要对某个指标下钻,请像以下基于 curl 的示例一样,使用 tag 查询参数向 /actuator/metrics/{metric.name} 发起 GET 请求:

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

上述示例检索 jvm.memory.max 指标,其中 area 标签值为 nonheapid 属性值为 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" : [ ]
}