问题标签 [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.
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));
完整代码:
}
spring-boot - Spring Boot OAuth2RestTemplate 和 HTTP 客户端指标
Actuator 管理 的检测RestTemplate
,我们只需要注入RestTemplateBuilder
来创建RestTemplate
bean:
如何OAuth2RestTemplate
使用 HTTP 客户端 Mertics 支持创建 bean(内置 OAuth2)?
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:已经看到过滤器链中的异常在实际处理之前按预期处理。实际处理成功后的异常呢?有参考吗?
要触发这种情况:
curl -i localhost:8080/hi/foo/there
curl -i localhost:8080/hi/blah/there
java - MicroMeter:删除/禁用某个标签
我正在使用默认的 MicroMeter 活页夹,其中之一创建 Gauage jvm.memory.used
。问题是它带有 2 个可用标签:“area”和“id”。这实际上生成了 6 个我不感兴趣的仪表。
我能够做到这一点:
但这将忽略所有带有此标签的仪表。
我怎么能deny()
只jvm.memory.used
用一个id
标签?
谢谢!
编辑:
查看 globalRegistry:
Metrics.globalRegistry.getRegistries().iterator().next().meterMap
每个Meter
都jvm.memory.used
具有以下结构:
"MeterId{name='jvm.memory.used', tags=[tag(area=nonheap),tag(id=Metaspace)]}"
所以我们不能只过滤getName().equals("jvm.memory.used") && getTag("id") != null
java - 为什么 MicroMeter Timer 返回零?
考虑以下代码:
两次打印的输出都是零,但当然它应该是一个正数。
我正在使用,globalRegistry
但我不认为它应该有所作为。
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?
spring-boot - 在 spring-boot 中配置 http.server.requests 的分布统计
有没有办法为http.server.requests
指标配置分布统计过期和缓冲区长度?
我需要增加到期时间,但找不到使用弹簧启动执行器执行此操作的正确方法。是否可以配置这些设置?
spring-boot - 需要什么配置才能让带有 spring-boot 的千分尺输出 jvm_info{} 量规?
我有许多非 spring-boot 服务,它们使用io.prometheus
simpleclient_hotspot
.
我正在尝试与这些以及使用千分尺默认设置的 spring-boot 服务产生的 JVM 指标进行奇偶校验。
是否有一些额外的千分尺配置,我需要它来生成指标,例如:
?
我很欣赏开箱即用的千分尺正在记录:jvm_memory_used_bytes
它与 simpleclient_hotspot 中相同指标的名称不匹配:(
如果可能的话,我想实现一致性,并且jvm_info
对千分尺/弹簧靴特别有用。
java - Spring Boot 执行器的 /beans 无法访问
尝试使用具有执行器依赖项的简单 Spring Boot 应用程序,但无法访问http://localhost:8080/actuator/beans
我可以使用以下输出访问http://localhost:8080/actuator :
此外,主要是以下网址无法从此处列出
dropwizard - 用千分尺测量事件发生率
在 Dropwizard 中有类似仪表的东西:
https ://metrics.dropwizard.io/3.1.0/getting-started/#meters
它让我只需通过调用mark()
指标上的方法来测量事件发生率。
我怎样才能在千分尺中做到这一点?
我可以使用计时器,但我不想将对象传递到我需要调用方法Timer.Sample
的任何地方。stop()
与 Dropwizard 相比,Micrometer 中另一个缺失的东西是可以包含文本消息的度量,例如 Dropwizard 中的量规。