问题标签 [spring-micrometer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2455 浏览

json - 将 SpringBoot - micrometer 的日志记录格式更改为 JSON

我有一个 SpringBoot 应用程序,它使用千分尺打印出应用程序指标。

我的 pom.xml 有:

我的配置类是:

课堂使用:

我看到写入我的日志文件的指标输出为:

2019-02-25 14:40:23,337 | 信息 | [记录指标发布者] | [meter.core.instrument.logging.LoggingMeterRegistry] | MY_SAMPLE_APP | 用户 ID = [] | jvm.memory.max{area=heap,id=PS Survivor Space} value=12.5 MiB

如何以 JSON 格式注销?

我需要的:

根据乔恩的回答用代码更新问题。@Jon,您认为下面的代码正确吗?我已经实现了一个扩展 LoggingMeterRegistry 的自定义 Meter Registry。

LoggingMeterRegistry 和 CustomMeterRegistry 的唯一区别是我的自定义类打印出 ID=

在 LoggingMeterRegistry 中: this.loggingSink.accept(print.id() + " throughput=" + print.rate(count));

在 CustomMeterRegistry 中: this.loggingSink.accept("ID=" + print.id() + " throughput=" + print.rate(count));

完整代码:

}

0 投票
1 回答
1471 浏览

spring-boot - Spring Boot OAuth2RestTemplate 和 HTTP 客户端指标

Actuator 管理 的检测RestTemplate,我们只需要注入RestTemplateBuilder来创建RestTemplatebean:

如何OAuth2RestTemplate使用 HTTP 客户端 Mertics 支持创建 bean(内置 OAuth2)?

0 投票
1 回答
232 浏览

servlet-filters - Spring RestController 响应与 PrometheusMeterRegistry 错误消息混合

环境:Springboot-2.0.7.RELEASE(嵌入式tomcat-8.5.35),JDK-1.8.0_181,micrometer-registry-prometheus-1.0.8

描述:使用@Timed控制器方法和WebMvcMetricsFilter自定义WebMvcTagsProvider

演示项目:https ://github.com/kenix/resp-mix

如果PrometheusMeterRegistry已经创建了带有一组标签的仪表,它将不会创建另一个具有相同名称和一组不同标签的仪表。它抛出IllegalArgumentException上述原因。这发生在请求的正常处理成功之后(响应现在具有转换后的 JSON)。异常没有在 spring 中捕获WebMvcMetricsFilter(即在它的catch-clause 中捕获异常。顺便说一句,ControllerAdvice没有帮助),但被 tomcat 捕获StandardHostValve,它将自己的错误消息(它不知道这个异常来自哪里)响应也。这会导致一个非法的 JSON 作为渲染结果。

问题1:应该WebMvcMetricsFilter捕获并处理这个抛出的异常,PrometheusMeterRegistry而不是进一步抛出?

问题2:已经看到过滤器链中的异常在实际处理之前按预期处理。实际处理成功后的异常呢?有参考吗?

要触发这种情况:

  1. curl -i localhost:8080/hi/foo/there
  2. curl -i localhost:8080/hi/blah/there
0 投票
1 回答
2679 浏览

java - MicroMeter:删除/禁用某个标签

我正在使用默认的 MicroMeter 活页夹,其中之一创建 Gauage jvm.memory.used。问题是它带有 2 个可用标签:“area”和“id”。这实际上生成了 6 个我不感兴趣的仪表。

我能够做到这一点:

但这将忽略所有带有此标签的仪表。

我怎么能deny()jvm.memory.used用一个id标签?

谢谢!

编辑:
查看 globalRegistry:

Metrics.globalRegistry.getRegistries().iterator().next().meterMap

每个Meterjvm.memory.used具有以下结构:

"MeterId{name='jvm.memory.used', tags=[tag(area=nonheap),tag(id=Metaspace)]}"

所以我们不能只过滤getName().equals("jvm.memory.used") && getTag("id") != null

0 投票
1 回答
1061 浏览

java - 为什么 MicroMeter Timer 返回零?

考虑以下代码:

两次打印的输出都是零,但当然它应该是一个正数。

我正在使用,globalRegistry但我不认为它应该有所作为。

0 投票
1 回答
141 浏览

java - 为什么 CloudWatchConfig 接口需要一个步骤持续时间字符串

我正在使用随 Gradle 一起引入的 Micrometer Cloudwatch 1.1.3compile 'io.micrometer:micrometer-registry-cloudwatch:1.1.3'

在 Java 中,我可以CloudWatchConfig通过执行以下操作来创建一个:

我认为 Kotlin 中的等价物应该是:

Koltin 编译器失败了,指出块中的最后一行:fun batchSize() = CloudWatchConfig.MAX_BATCH_SIZE说它需要一个 String 类型的值?

经过多次调试,我能够通过返回 step 函数的 toString 来解决这个问题。您不能只传递任何字符串,因为它将被解析为好像它是由 Duration 生成的。我的 Kotlin 代码现在可以运行,如下所示:

在查看了 CloudWatchConfig、StepRegisteryConfig 和 MeterRegistryConfig 接口后,我无法弄清楚为什么会出现这种情况。为什么 Koltin 会这样做,为什么它期待一个 Duration 的 toString?

0 投票
1 回答
1309 浏览

spring-boot - 在 spring-boot 中配置 http.server.requests 的分布统计

有没有办法为http.server.requests指标配置分布统计过期和缓冲区长度?

我需要增加到期时间,但找不到使用弹簧启动执行器执行此操作的正确方法。是否可以配置这些设置?

0 投票
2 回答
474 浏览

spring-boot - 需要什么配置才能让带有 spring-boot 的千分尺输出 jvm_info{} 量规?

我有许多非 spring-boot 服务,它们使用io.prometheus simpleclient_hotspot.

我正在尝试与这些以及使用千分尺默认设置的 spring-boot 服务产生的 JVM 指标进行奇偶校验。

是否有一些额外的千分尺配置,我需要它来生成指标,例如:

?

我很欣赏开箱即用的千分尺正在记录:jvm_memory_used_bytes它与 simpleclient_hotspot 中相同指标的名称不匹配:(

如果可能的话,我想实现一致性,并且jvm_info对千分尺/弹簧靴特别有用。

0 投票
1 回答
1855 浏览

java - Spring Boot 执行器的 /beans 无法访问

尝试使用具有执行器依赖项的简单 Spring Boot 应用程序,但无法访问http://localhost:8080/actuator/beans

我可以使用以下输出访问http://localhost:8080/actuator :

此外,主要是以下网址无法从此处列出

0 投票
1 回答
2701 浏览

dropwizard - 用千分尺测量事件发生率

在 Dropwizard 中有类似仪表的东西: https ://metrics.dropwizard.io/3.1.0/getting-started/#meters 它让我只需通过调用mark()指标上的方法来测量事件发生率。

我怎样才能在千分尺中做到这一点?

我可以使用计时器,但我不想将对象传递到我需要调用方法Timer.Sample的任何地方。stop()

与 Dropwizard 相比,Micrometer 中另一个缺失的东西是可以包含文本消息的度量,例如 Dropwizard 中的量规。