Spring Boot 2.0.0.M6:使用一个请求显示所有指标

时间:2017-11-10 09:35:18

标签: spring spring-boot spring-boot-actuator

使用Spring Boot 2.0.0.M6和新的执行器指标端点,当我请求时

GET /application/metrics

仅显示指标的名称

{
  "names" : [ "data.source.active.connections", "jvm.buffer.memory.used", "jvm.memory.used", "jvm.buffer.count", "logback.events", "process.uptime", "jvm.memory.committed", "data.source.max.connections", "http.server.requests", "system.load.average.1m", "jvm.buffer.total.capacity", "jvm.memory.max", "process.start.time", "cpu", "data.source.min.connections" ]
}

显然,我可以使用访问特定指标 GET /application/metrics/jvm.memory.used

但是有没有办法通过一个请求查看所有指标?

2 个答案:

答案 0 :(得分:0)

这就是metrics端点在Spring Boot 2.0.0M *版本中的行为方式。 endpoint class中只定义了两个读取操作:

  • ListNamesResponse listNames()
    • 已解析为GET /application/metrics
  • MetricResponse metric(@Selector String requiredMetricName, @Nullable List<String> tag)
    • 已解析为GET /application/metrics/jvm.memory.used

Mex支持在2.x中发生了巨大变化(目前由Micrometer支持),而Spring Boot 2.x upgrade guide目前缺少有关指标的任何细节,但这是一项正在进行中的工作,因此可能更多细节随着Spring Boot 2.0越来越接近GA发布,它将会成为现实。

我怀疑从分层指标到维度指标的转变导致维护者认为1.x(层级)指标显示不再可行/适合。

答案 1 :(得分:0)

Spring boot 2默认情况下已删除此功能,但是如果您的应用程序需要此功能,则此自定义实现将满足您的目的:https://github.com/csankhala/spring-metrics-grabber

在本地存储库中的应用程序中添加依赖项

compile("org.springframework.boot:spring-metrics-grabber:1.0.0-SNAPSHOT");
compile("org.springframework.boot:spring-boot-starter-actuator");

将MetricxEndpoint.class添加到@SpringBootApplication扫描路径

import org.springframework.metricx.controller.MetricxEndpoint;

@SpringBootApplication(scanBasePackageClasses = { MetricxEndpoint.class, YourSpringBootApplication.class })
public class YourSpringBootApplication {
    public static void main(String[] args) {
        new SpringApplication(YourSpringBootApplication.class).run(args);
    }
}

所有度量标准都将在“ / metricx”端点上发布,名称和值都为

还支持模式搜索,例如'/ metricx / jvm。*'