指标 (metrics
)
这metrics
端点提供对应用程序指标的访问,以诊断应用程序已记录的指标。
此端点不应被“抓取”或用作生产中的指标后端。
其目的是显示当前注册的指标,以便用户可以看到哪些指标可用,它们的当前值是多少,以及触发某些作是否会导致某些值发生任何变化。
如果要通过应用程序收集的指标来诊断应用程序,则应使用外部指标后端。
在这种情况下,metrics
endpoint 仍然有用。
检索指标名称
要检索可用指标的名称,请将GET
请求/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" ]
}
检索指标
要检索指标,请将GET
请求/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.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'" ]
} ]
}
响应结构
响应包含指标的详细信息。 下表描述了响应的结构:
路径 | 类型 | 描述 |
---|---|---|
|
|
指标的名称 |
|
|
指标说明 |
|
|
公制的基本单位 |
|
|
指标的测量 |
|
|
测量的统计。( |
|
|
测量值。 |
|
|
可用于向下钻取的标记。 |
|
|
标记的名称。 |
|
|
标记的可能值。 |
向下钻取
要向下钻取到指标,请将GET
请求/actuator/metrics/{metric.name}
使用tag
query 参数,如以下基于 curl 的示例所示:
$ curl 'http://localhost:8080/actuator/metrics/jvm.memory.max?tag=area%3Anonheap&tag=id%3ACompressed+Class+Space' -i -X GET
前面的示例检索jvm.memory.max
指标,其中area
标记的值为nonheap
和id
属性的值为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" : [ ]
}