有没有办法关闭执行器/千分尺中的一些返回的度量值?现在看着它们,我看到大约1000个,并想将它们缩减到精选的几个,比如100个,以便实际发送到我们的注册表。
MZLL答案中的属性命名在Spring Boot 2中发生了变化。例如,要禁用JVM指标,现在需要:
management.metrics.binders.jvm.enabled=false
有关其他选项,请参阅此类。Spring团队在2.1中再次进行了重构。x和那些内部工厂bean类现在被提升到独立文件中,但属性命名与2.0保持不变。x。
仪表滤波器可以在三个方面提供帮助,这三个方面已与测微计松弛通道进行了讨论:
千分尺配备了第一种内置的仪表过滤器。它还支持分层启用/禁用,类似于日志记录的工作方式(例如,如果有类似于“我的请求.总计”和“我的请求.延迟”的度量,则可以禁用以“我的请求”开始的所有度量。
我已经实现了我自己的组合过滤器示例,如果您有高基数的指标并希望在新维度中组合它们,它会很有用。例如,您有一个关于状态代码的维度,这允许您将200, 201, 203响应代码组合为标签2xx
。这类似于NetflixSpectator的“占位符”支持。我很乐意将该代码贡献到上游,但目前它是相当自定义的,因此需要一些工作才能使其普遍可用。
捕获高基数维度的最后一种类型尚未创建,但将作为安全阀存在,以确保如果一个指标可能具有高数量的标签值,它将计算唯一标签的数量,并且一旦达到最大值,要么禁用附加标签或将其组合到一个公共桶中,这样该值就不会爆炸并可能压倒您的监控(或者如果按指标付费,则会花费您大量的$$$)
让我用几个例子来详细阐述一下切克茨发布的答案。您可以在应用程序中启用/禁用某些指标。yml如下:
management:
metrics:
enable:
tomcat: true
jvm: false
process: false
hikaricp: false
system: false
jdbc: false
http: false
logback: true
或者在代码中定义MeterFilter bean:
@Bean
public MeterFilter meterFilter() {
return new MeterFilter() {
@Override
public MeterFilterReply accept(Meter.Id id) {
if(id.getName().startsWith("tomcat.")) {
return MeterFilterReply.DENY;
}
if(id.getName().startsWith("jvm.")) {
return MeterFilterReply.DENY;
}
if(id.getName().startsWith("process.")) {
return MeterFilterReply.DENY;
}
if(id.getName().startsWith("system.")) {
return MeterFilterReply.DENY;
}
return MeterFilterReply.NEUTRAL;
}
};
}
我正在将JavaSpring项目从java 8迁移到java 11。所以我需要将dropwizard指标替换为千分尺。Dropwizard指标记录到达特定endpoint时的状态和响应。例如:endpoint- 有没有办法在千分尺中实现相同的效果?我知道有注释,但由于某种原因它不起作用。(我把它放在endpoint方法上)。 我的属性文件(仅与指标相关的值):
我有一个Spring Boot应用程序,我有以下依赖关系:
我用的是Spring靴。为了监视JVM内存,我正在使用Spring Boot Actuator的/metricsendpoint。 我无法理解键实际上代表什么: 有人能告诉我它们到底是什么吗? CMS(并发标记扫描)和MarkSweepCompact相同吗?我应该使用CMS(并发标记扫描)吗?或者我应该使用哪种GC算法?
我有一个应用程序,其中包含2打Spring批处理cronjobs.There没有Rest控制器,因为它是一个分析应用程序,它每天运行,从数据库读取数据,处理它,然后将聚合数据存储在另一个数据库中。我想使用千分尺对作业进行Spring内置度量,并将它们推送到Prometheus。由于我的应用程序不是网络服务器应用程序,所以千分尺仍然会在HOST: 8080上发布结果?执行器会自动在HOST: 808
我有一个带有Jersey RESTendpoint的web应用程序(war)。我正在与prometheus/micrometer集成以生成度量。我在这里公开了“/metrics”endpoint 我被困在如何生成http请求度量上。我找不到任何与获取这些指标相关的代码。有人能帮我吗?
我想禁用除健康endpoint之外的所有执行器endpoint。所有文档都描述了如何在资源属性中实现这一点: 但我一直倾向于使用内联java配置。有人能解释一下我可以在应用程序的什么地方配置相同的吗?