- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将我的 Prometheus 指标迁移到千分尺,但现在我在这里遇到了一件事......
目前我有一个 Prometheus 直方图配置如下:
private static final Histogram REQUEST_DURATION = Histogram
.build("http_request_duration_milliseconds", "Duration in milliseconds for processing a request.")
.labelNames("http_method", "http_status", "java_class", "java_method")
.buckets(10, 25, 50, 100, 500, 1000)
.register();
因此为了切换到 Micrometer,我将其替换如下:
Timer.builder("http.request.duration")
.description("Duration in seconds for processing a request.")
.sla(Duration.ofMillis(10), Duration.ofMillis(25), Duration.ofMillis(50), Duration.ofMillis(100), Duration.ofMillis(500), Duration.ofMillis(1000), Duration.ofMillis(5000))
.register(registry);
好的。让我们看看我想如何使用它......目前我只是调用
REQUEST_DURATION.labels(httpMethod, httpStatus, javaClass, javaMethod).observe(milliseconds);
所以我将其替换为
Metrics.timer("http.request.duration",
"http.method", httpMethod,
"http.status", httpStatus,
"java.class", javaClass,
"java.method", javaMethod)
.record(Duration.ofNanos(nanoseconds));
但现在的问题是,Micrometer 提示说我之前配置的指标没有这些标签。我当然知道了,因为我当时不知道这些值。这里是异常(exception):
java.lang.IllegalArgumentException:Prometheus 要求所有具有相同名称的仪表具有相同的一组标签键。已经有一个包含标签键 [] 的现有仪表。您尝试注册的仪表具有 key [http.method、http.status、java.class、java.method]。
好的。所以我想,让我们使用 Metrics.timer
调用指定存储桶。但这不起作用,因为没有传递这些值的方法。
那么...如何为我的指标设置 sla
存储桶和 标签
?
最佳答案
我在 Micrometer slack channel 上得到了答案. Micrometer 解决这个问题的方法不是注册指标本身,而是注册一个过滤器,如下所示:
registry.config().meterFilter(new MeterFilter() {
@Override
public DistributionStatisticConfig configure(Meter.Id id, DistributionStatisticConfig config) {
if (id.getName().equals("http.request.duration")) {
return DistributionStatisticConfig.builder()
.sla(Duration.ofMillis(10).toNanos(),
Duration.ofMillis(25).toNanos(),
Duration.ofMillis(50).toNanos(),
Duration.ofMillis(100).toNanos(),
Duration.ofMillis(500).toNanos(),
Duration.ofMillis(1000).toNanos(),
Duration.ofMillis(5000).toNanos())
.build()
.merge(config);
}
return config;
}
});
当使用 Metrics.timer(...)
推送指标值时,Micrometer 将调用此过滤器并应用此处指定的所有配置。此过滤器仅在仪表初始化时调用,即当 Metrics.timer(...)
第一次使用此特定 name
和 tags
调用时>。所以我们不必担心这里的性能。
关于java - 如何使用 SLA 和标签注册 Micrometer Timer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50366888/
随着 OpenTelemetry 试图成为应用程序/服务可观察性的事实上的标准,Micrometer 在哪里适合? Micrometer 网站声称它是用于度量标准的 SLF4J,但它是否与 OpenT
我正在尝试弄清楚如何为特定指标设置通用标签。注意:我正在使用 Cloudwatch 监控系统。这是我所拥有的: @Bean public MeterRegistryCustomizer metrics
我正在尝试发布我的应用程序正在处理的事件数量。这是我在接收端的代码: public void process(List batch) { logger.info ("Processing ba
这可能听起来很愚蠢,而且可能有一个非常简单的答案,但我还没有找到任何答案。 对于以下形式的每个度量类型,Micrometer 都有 Builder 类: .builder().description(
我想记录多个指标名称的计数,例如 metricA、metricB、metricC 等等。 一种选择是像这样创建多个计数器对象 Counter .builder("metricA") .register
我正在尝试使用 Atlas 配置 Micrometer。我正在遵循 Micrometer 和 Spring 提供的指南(我使用的是 Spring Boot 2.0.1),但我不明白出了什么问题。 我有
考虑以下代码: public static void main(String[] args) { Timer timer = Metrics.timer("item.processing");
任何人都可以解释一下千分尺 @Timed 注释公开的 _count 和 _sum 指标之间的区别是什么。 这里有两个度量值示例,作为方法上的 @Timed 注释的结果。 GET_CARD_LIMITS
我正在使用默认的 MicroMeter Binder ,其中之一创建了 Gauage jvm.memory.used。问题是它带有 2 个可用标签:“area”和“id”。这实际上生成了 6 个我不感
我想将Micrometer的默认执行器指标(JVM内存等)发送到AWS ElasticSearch实例,并在Kibana中可视化数据。 我想我正确设置了它,但是在Kibana中没有任何数据。 这是我的
Micrometer 库是否支持 OpenTsdb 作为监控系统? 如果没有,是否有任何第三方库可以在 Micrometer 之上工作并向 OpenTsdb 报告指标? 最佳答案 在撰写本文时,还没有
我有一段使用 Codahale 指标的旧代码。我想将其更改为千分尺。我可以切换简单的对象,但我在重现某些 Codahale 特定对象的功能时遇到了一些麻烦。 而且我可以切换简单的对象,我在重现某些 C
如何在不重新启动微服务的情况下禁用或启用 Micrometer 的某些指标?我想公开一个端点来更改我的应用程序收集的指标。 最佳答案 禁用/启用场景 您希望停止修改指标,但将其保留在指标端点上,以便您
我正在尝试监控登录用户,我通过调用 api 获取登录用户信息,这是我使用的代码, public class MonitorService { private InfoCollectionSer
我正在尝试使用 Micrometer在我的 Java 应用程序中记录执行时间。这与我的另一个question有关关于使用 @Timed注解。 我有一个类CountedObject有以下两种方法: @M
在 Prometheus 中,http_server_requests_seconds_max 有 14 秒。 http_server_requests_seconds_max{exception="
我是使用 spring-boot 指标的新手,并从千分尺开始。我找不到在我的 spring-boot 应用程序中执行计时器指标的好例子(它是新的事实)。我正在使用 spring-boot-starte
是否有任何简单的方法可以将 Micrometer 计时器与 Webflux Controller 结合使用? @Timed 似乎仅适用于非响应式方法。对于 react 性来说,它记录的时间值非常低。
我正在尝试将我的 Prometheus 指标迁移到千分尺,但现在我在这里遇到了一件事...... 目前我有一个 Prometheus 直方图配置如下: private static final His
我在 Java Spring Boot 1.5 应用程序中使用 Micrometer 来抓取 Prometheus 的自定义指标。 我正在使用“guageCollectionSize”方法来计算 Ha
我是一名优秀的程序员,十分优秀!