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

度量名称已存在-度量注册表

都浩淼
2023-03-14

我正在使用指标注册表将指标记录到jmx中。我使用以下代码

protected void submitMetric(String metricName, long value) {

                mr.register(metricName, new Gauge<Long>() {

                    @Override
                    public Long getValue() {
                        return value;
                    }

                });
}

它第一次运行良好。如果我再次尝试这样做,我得到的错误是一个名为****的度量已经存在。但我想记录发送给控制器的每个请求的相同度量值,以便在Grafana中可视化。

是否有任何方法可以记录每个请求的相同度量名称的值?

还有如何每1分钟检查记录的所有数据点。我们应该对每分钟的值求和吗?我在metrics.xml中有以下内容

<publish name="****">
            <delay>60</delay>
            <unit>SECONDS</unit>
        </publish>

共有1个答案

廖招
2023-03-14

通常,您希望创建一个量表并注册它一次,例如,通过从原子长创建量表。然后,您只需通过在原子长上设置值来更新仪表的值。在这种情况下,由于您希望按名称访问仪表,因此可以保留原子映射,并在映射更新为新仪表时注册仪表一次:

final Map<String, AtomicLong> gauges = new ConcurrentHashMap<>();

protected void submitMetric(String metricName, long value) {
    // If the gauge does not exist, create and register it
    gauges.computeIfAbsent(metricName, k -> {
        AtomicLong g = new AtomicLong();
        mr.register(k, new Gauge<Long>() {
            @Override
            public Long getValue() {
                return g.get();
            }
        });         
        return g;
    }).set(value); // Then set the value
    // Counters can be retrieved by name
    mr.counter(metricName + "Counter").inc(value);
    // Meters can be retrieved by name
    mr.meter(metricName + "Meter").mark(value);
}
 类似资料:
  • 有没有一种方法可以通过度量名称对应用程序的所有度量进行分组?查询中列出应用程序所有度量的部分(即):

  • 目前Spring Cloud Sleuth注册了与spans相关的简单指标。它使用Spring Boot的指标支持 来计算接受和删除的数量spans。每次发送到Zipkin时,接受的spans的数量将增加。如果出现错误,那么删除的数字spans将会增加。

  • 我在我的机器上集成了滴送巫师。 我揭露了它们,但我正在寻找它们的含义。 例如,如何获得每秒的请求数?任何这样的信息都可以在任何地方找到,因为我在官方网站上找不到。 谢谢。

  • 如spring-boot文档所述。我的自定义计数器(counter.calls.hello)像预期的那样起到计数器的作用。 现在,如果我将spring-cloud-starter-eureka(Brixton.rc1)添加到pom中,并且不更改任何其他内容,那么metricsendpoint将具有 正常的MVC度量标准已经消失了。响应代码信息呢?我的自定义计数器被报告为gauge.servo.co

  • Storm 开放了一个 metrics 接口,用来汇报整个 topology 的汇总信息 。 Storm 内部通过该接口可以跟踪各类统计数据:executor 和 acker 的数量;每个 bolt 的平均处理时延、worker 节点的堆栈使用情况,这些信息都可以在 Nimbus 的 UI 界面中看到。 Metric Types Metrics 必须实现 IMetric接口,IMetric接口只包

  • 问题内容: Java中的类/方法/变量名称是否有最大长度?JLS似乎没有提及。从代码的可读性和可维护性的角度来看,我知道很长的名称还是有问题的,但是出于好奇,这是有限制的(我想类名可能受到文件系统最大文件名限制的限制)。 问题答案: 抱歉,实际上在JLS中找到了答案:http : //java.sun.com/docs/books/jls/third_edition/html/lexical.ht