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

Dropwizard指标-如何在报告间隔后重置计数器

姜玉泽
2023-03-14

我正在使用codahale指标(现在是dropwizard指标)来监控系统中发生的一些“事件”。我使用计数器来跟踪“事件”发生的时间。

我检查了报告器打印的值,以获取我的计数器指标,似乎该值一直在增加(而且从未下降)。这似乎合乎逻辑,因为我总是使用指标。每当我的“事件”发生时,inc()函数。

我真正想要的是在两个报告时间之间计算我的“事件”,为此,我需要在每次报告指标时重置计数器,但我在计数器指标中找不到任何选项来做到这一点。codahale用户是否有一种方法或一般做法来生成此类指标?

当前行为(报告时间10秒):

00:00:00 0
00:00:10 2 // event happened twice
00:00:20 2 // event did not occur
00:00:30 5 // event occured three times`

预期指标:

00:00:00 0
00:00:10 2
00:00:20 0
00:00:30 3

共有2个答案

樊浩初
2023-03-14

我相信计数器不适合您的情况。考虑使用为您提供每个时间间隔的速率:

while(...) {
    int stuffProcesssed = doStuff();
    meter.mark(stuffProcesssed);
}
易镜
2023-03-14
匿名用户

求和或计算每个任意间隔的计数(总数):

hitcount(perSecond(your.count), '1day')

哎呀,里面全是黑魔法。包括但不限于汇总(scaleToSeconds(nonnegativedeviative(your.count),1),“1day”),还应根据落入所选聚集区间的碳保留期(一个或多个)进行缩放。

 类似资料:
  • 我们正在处理定期收到的消息。我们使用codahale dropwizard指标的“计时器”来测量处理这些指标所需的时间。 我发现有人在这里也有同样的问题:“指数衰减水库的问题是,如果没有新数据进来,它会一直给出相同的数字。例如,假设你用5和7更新一个计时器(然后什么都不要放),然后不管你什么时候看到(甚至在x小时之后),计时器仍将显示平均值为6,这无论如何都不能代表过去5分钟的结果。因此,只有当数

  • 我已经为dropwizard (codehale)度量注册表配置了一个基本的sl4j reporter。这是报告器配置: 我正在接收的日志不是我所期望的(期望使用metricRegistry注册的计时器、计数器的可解析输出)。这是我每30秒实际看到的内容(与报告器配置相匹配): …… java: 55)org.slf4j.helpers.FormattingTuple@39fda09e 无论如何,

  • 我正在尝试使用神经节监视我的dropwizard Web服务。我在本地机器上运行了gmond和gmetad。我能够在神经节网络上看到基本指标(eg.cpu、内存使用情况)。 根据这个,我还在我的服务中添加了神经节记者。但是我的神经节网上什么也没有显示。

  • 我正在尝试使用 DropWizard 指标库在我的应用程序上测量应用程序和 jvm 级别的指标。 下面是我的度量类,我在代码中使用它来增加/减少度量。我正在调用下面类的< code>increment和< code>decrement方法来递增和递减度量。 下面是我如何使用上面的<code>TestMetrics</code>类来根据需要增加度量的基础。下面的方法由多个线程调用。 现在我有了另一个

  • 这定义了几个接收器、指标等。但它们是收集的吗? 假设我将 添加到 文件中,并启用了所有实例指标(主实例、应用程序、工作线程、执行程序、驱动程序、随机排序服务、应用程序主站)。 假设设置了 jmx 端口。 在哪里收集指标:我应该连接到所有群集节点还是仅连接到驱动程序节点?

  • 我使用Dropwizard指标来衡量应用程序中的各种指标。它们是JVM检测中的几个预定义报告器,但奇怪的是,我找不到任何报告CPU使用情况的报告器。 我可以创建自己的Gauge(使用getThreadCpuTime或类似工具),但我最好的猜测是我错过了一些东西。 我是否在当前的实现中错过了它,或者它比我最初想象的更复杂?