我可以向现有指标 http_server_requests_seconds 添加新的 dimension/tag 吗?
Can I add a new dimension/tag to the existing metric http_server_requests_seconds?
我有一个 Java Spring 引导应用程序正在使用 Prometheus 收集指标。这是一个 REST API,一切正常。
Spring,默认情况下,提供一些指标。例如,具有以下维度的指标 http_server_requests_seconds_count
:
http_server_requests_seconds_count{application="metrics-demo-app", exception="None", instance="host.docker.internal:8080", job="metrics-demo-app", method="GET", outcome="SUCCESS", status="200", uri="/actuator/prometheus"}
维度是指 key/value 对(application="metrics-demo-app", exception="None", 等。 .) 上面例子中的标签。
我可以向这些指标添加新维度(key/value 对)吗?我的想法是,当创建用户的调用失败时,向该指标中插入更多信息。
我知道我可以创建一个新的自定义指标,但我想知道是否有一些方法可以在现有指标中添加内容。
这可能吗?怎么做?
提前致谢:D
这是可以做到的,在文档中是如何做到的,在这里:
https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.metrics.supported.system
我的代码是这样结束的:
@Configuration
public class MetricsConfig implements WebMvcTagsProvider {
private final WebMvcTagsProvider delegate = new DefaultWebMvcTagsProvider();
@Override
public Iterable<Tag> getTags(HttpServletRequest request, HttpServletResponse response, Object handler, Throwable exception) {
final String channelId = ServiceContextHolder.getContext().getXItauChannelId();
return Tags.of(this.delegate.getTags(request, response, handler, exception)).and("channelId", channelId);
}
@Override
public Iterable<Tag> getLongRequestTags(HttpServletRequest request, Object handler) {
return null;
}
}
我有一个 Java Spring 引导应用程序正在使用 Prometheus 收集指标。这是一个 REST API,一切正常。
Spring,默认情况下,提供一些指标。例如,具有以下维度的指标 http_server_requests_seconds_count
:
http_server_requests_seconds_count{application="metrics-demo-app", exception="None", instance="host.docker.internal:8080", job="metrics-demo-app", method="GET", outcome="SUCCESS", status="200", uri="/actuator/prometheus"}
维度是指 key/value 对(application="metrics-demo-app", exception="None", 等。 .) 上面例子中的标签。
我可以向这些指标添加新维度(key/value 对)吗?我的想法是,当创建用户的调用失败时,向该指标中插入更多信息。
我知道我可以创建一个新的自定义指标,但我想知道是否有一些方法可以在现有指标中添加内容。
这可能吗?怎么做?
提前致谢:D
这是可以做到的,在文档中是如何做到的,在这里: https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.metrics.supported.system
我的代码是这样结束的:
@Configuration
public class MetricsConfig implements WebMvcTagsProvider {
private final WebMvcTagsProvider delegate = new DefaultWebMvcTagsProvider();
@Override
public Iterable<Tag> getTags(HttpServletRequest request, HttpServletResponse response, Object handler, Throwable exception) {
final String channelId = ServiceContextHolder.getContext().getXItauChannelId();
return Tags.of(this.delegate.getTags(request, response, handler, exception)).and("channelId", channelId);
}
@Override
public Iterable<Tag> getLongRequestTags(HttpServletRequest request, Object handler) {
return null;
}
}