如何使 /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 时,结果是按键排序的。
我有一个 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 时,结果是按键排序的。