如何使 /metrics 端点显示排序的指标?

how to make /metrics endpoint show the metrics Sorted?

我有一个 Spring Boot 1.3.1 项目。使用执行器,所以我也有 /metrics 端点。

我正在使用 codahale 为我的一些方法添加一个度量,完整的 java 类名是度量的名称。没关系。

但是那里的指标显示未排序,这是非常不充分的,所有排序都会好得多(给定指标的最大值、最小值、百分位数等将在一个块中,而不是像现在这样到处都是)。

有人知道如何解决这个问题吗?

我终于找到了解决这个问题的方法。 我添加了一个调用 MetricsEndpoint 的新端点并对结果进行排序。

@Component
public class CustomMetricsEndpoint extends AbstractEndpoint<Map<String, Object>> {

    private MetricsEndpoint metricsEndpoint;

    @Autowired
    public CustomMetricsEndpoint(MetricsEndpoint metricsEndpoint) {
        super("custommetrics");
        this.metricsEndpoint = metricsEndpoint;
    }

    public Map<String, Object> invoke() {
        SortedMap<String, Object> metricsMap =
                new TreeMap<String, Object>(this.metricsEndpoint.invoke());
        return metricsMap;
    }

}

现在,当我调用 /custommetrics 时,结果是按键排序的。