当前位置: 首页 > 知识库问答 >
问题:

Spring引导千分尺定时器()它是如何工作的?

姬衡
2023-03-14

我是一个新的使用Spring引导的度量,并从千分尺开始。在我的spring-boot应用程序中,我找不到执行计时器度量的好例子(事实是它是新的)。我使用的是spring-boot-starter-web:2.0.2.release dependency。但是在运行spring-boot服务器和启动jconsole时,我没有看到它显示度量(MBeans),所以我还显式地包含了以下依赖项:

spring-boot-starter-actuator:2.0.2.RELEASE

此外,micrometer依赖项:'io.micrometer:micrometer-registry-jmx:latest'添加执行器后,它会显示Metrics文件夹,但我在列表中看不到我的计时器(app.timer)属性。我做错什么了吗?欢迎任何建议!

下面的代码段:

MeterRegistry registry = new CompositeMeterRegistry();
long start = System.currentTimeMillis();
Timer timer = registry.timer("app.timer", "type", "ping");
timer.record(System.currentTimeMillis() - start, TimeUnit.MILLISECONDS);

这是可行的:

Metrics.timer("app.timer").record(()-> {

 didSomeLogic;
 long t = timeOccurred - timeScheduled;
 LOG.info("recorded timer = {}", t);
});

共有1个答案

巫晋鹏
2023-03-14

请参阅文件的这一部分。我把它修改得更像你想要的。您只需将计时器注册到自动配置MetricRegistry:

@Component
public class SampleBean {

    private final Timer timer;

    public SampleBean(MeterRegistry registry) {
        long start = System.currentTimeMillis();
        this.timer = registry.timer("app.timer", "type", "ping");
    }

    public void handleMessage(String message) {
        timer.record(System.currentTimeMillis() - start, TimeUnit.MILLISECONDS);
    }

}
 类似资料:
  • 我试图获得Spring引导执行器的概念度量。执行器度量由千分尺实现。依赖关系已经包含在执行器起动机pom中了,我猜?有一个“/metrics”endpoint。但是数据保存在哪里呢?对于洞时间,我的应用程序正在运行? 我可以加上其他像普罗米修斯这样的监控系统。它将从/Prometheusendpoint刮取数据。但是,它只是相同数据的另一种格式?

  • 我正试图将普罗米修斯的度量标准迁移到千分尺,但现在我只能做一件事。。。 目前,我有一个普罗米修斯直方图配置如下: 因此,为了切换到测微计,我将其替换为: 好啊让我们看看我想如何使用它。。。此刻我只是打电话 所以我把这个换成了 但现在的问题是,测微计抱怨我之前配置的度量没有这些标签。我当然知道,因为我不知道当时的值。以下是例外情况: 好啊所以我想,然后让我们用呼叫。但这不起作用,因为没有传递这些值的

  • 这篇题为“测微计:Spring Boot 2的新应用程序度量收集器”的博客文章提到了“维度的重要性”。 但是,它没有包括如何在Spring Boot应用程序中设置关联标签的足够示例。 现在,我正在使用Spring Boot 2的千分尺接口来提供Prometheus就绪输出,而无需进行任何基于Java的配置。例如,设置“主机”标签是否需要我编写一些代码?那会是什么样子? 以下是我的整个配置:

  • 我对Spring很陌生,正在尝试将我的应用程序连接到麋鹿。该应用程序运行的是Spring boot 1.5.5,因此我使用的是微米遗产。我的pom看起来像这样: 每当我尝试启动我的应用程序时,我都会收到以下错误: 根本原因似乎是类io.micrometer.core.instrument.config.validate.Validated它似乎没有像它应该的那样出现在包中。对此有什么想法吗?

  • 我有一个Spring Boot Java应用程序,正在向一个分层的Graphite度量系统发送度量。我在使用管理层。指标。出口石墨标记为前缀,并将主机和应用程序映射为前缀“我的指标”。然后,我有一个名称空间<代码>jvm的度量。记忆力已提交,但度量名称空间将作为主机进行连接。应用程序。JVMMORYCOMMITED* 。所以它代替了点(“.”)在metric名称空间中,并对名称空间的以下部分进行c

  • 我有许多应用程序正在使用SpringBoot执行器将度量发布到/metricsendpoint。 我有一些其他应用程序也在使用Micrometer将度量发布到/Prometheusendpoint。 最后,我有一个云提供商,它只允许我从一个endpoint提取度量。他们有许多预先准备好的Grafana仪表板,但大多数是针对执行器变量名的。有些是针对千分尺变量名的。 千分尺输出相同的数据,但它使用的