问题标签 [codahale-metrics]

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.

0 投票
0 回答
145 浏览

java - 是否可以将 codahale @Timed 配置为报告其默认指标的子集?

我在 spring 应用程序中将 codahale 指标的 @Timed 注释与石墨报告器一起使用,但我只想将指标的一个子集发送到我们的石墨服务器。

例如,我不需要 p999,因此删除它会通过 @Timed 实例的数量 x 环境的数量来减少指标数量的总和。

我没有从 API 文档中看到如何做到这一点,也没有看到任何示例。这可以通过metrics-spring config还是通过codahale的配置实现?

谢谢!

-尼尔

0 投票
1 回答
562 浏览

dropwizard - 如果服务关闭或重新启动,如何处理 Dropwizard 指标?

我有一个用例,我们必须监控我们使用 Dropwizard 指标并将它们推送到服务器的各种服务统计信息。但是,如果服务出现故障并重新启动,这些指标将被重置。计数器重置为 0,这将影响监控,因为百分位数或平均值等值会受到影响。

如何处理这种情况或用例?

0 投票
0 回答
310 浏览

spring - codahale 指标没有被记录

我正在试验 codahale metrics 和 metrics-spring 包。我一直无法记录指标。

函数调用

指标-spring.xml

豆类.xml

输出

当我在 war 文件中运行它并点击端点时,计数器不会增加。它保持在 0

似乎所有东西都正确连接在一起。数据被转储到控制台,它知道计数器。我究竟做错了什么?

0 投票
1 回答
1183 浏览

algorithm - 如何计算分布式系统中大量数据的分布(直方图)?

我正在一个包含超过 100,000 个前端实例的实例队列上构建一个指标报告系统。对于任何请求,每个实例都会有一个响应时间。而我需要的是在整个车队中各种请求的响应时间分布。例如 [requestType1, requestType2...requestType1000] 的 [Percentile 50, Percentile 90, Percentile 99, Percentile99.9...]。

每个实例都会收集里面发生的响应时间。所以一分钟后,一个实例在内存中收集的是各种 requestType 的响应时间列表。比如requestType1 - [1, 2, 3, 4, 1, 2], requestType2 - [2, 2, 3, 2, 1]……那么我需要做的就是处理这些数据并产生最终结果。

我尝试了很多设计,我的主要痛点是我为每个 requestType 收集的大量数据点,以及实例之间的通信费用。 我将在下面解释我当前的设计,但我也想知道是否有更好的设计或一些奇特的算法可以聚合直方图?

目前最有希望的一个是:每个前端实例都会将它们的数据发送到中间层实例队列的随机实例。在这个中间层队列中,每个实例将聚合它在短时间内(例如 5 秒)获得的所有数据点。(它没有足够的内存来保存更长时间)。然后中间层实例将聚合后的数据通过 requestTypes 的哈希值分发给后端实例。这意味着所有中间层实例都会将相同请求类型的数据点发送到相同的后端实例。然后在后端实例中,我可以使用第三方的直方图容器(CodaHale 的直方图或 HdrHistogram)来计算传入数据点的 P50、P90、P99 ......我需要中间层实例队列的原因是从前端发送数据-最终实例很昂贵,

这个设计我可能会想到的主要问题是复杂度比较高,如果一个 back-instance 宕机了,我可能会丢失一些 requestTypes 的所有数据。那么对于系统设计部分,有人有更好的想法吗?

我在想的另一种方法是找到一种奇特的算法来聚合现有的直方图。上面的设计,我得到的数据将是 100% 准确的。但实际上我可以容忍一些错误。比如在 CodaHale 的直方图和 HdrHistogram 中,我确信它们实际上并没有保存所有的数据点,而是应用了一些高级数学算法,以非常低的成本获得了相对高精度的结果。我可以在前端或中间层实例中使用直方图库。但问题是,虽然我可以以低成本获得每个前端实例或中间层实例的 [P50, P90, P99...],但我找不到聚合它们的方法。因为不同的前端实例可能会处理不同类型的请求,并且请求到前端实例的分布是未知的,所以简单计算ALL P50,P90的平均值,那么有人知道,如何将多个 CodaHale 的直方图或 HdrHistogram 聚合在一起?或者是否有任何算法可以帮助将直方图聚合为一个?

==================================================== =======================

昨晚我有了一些新想法。由于 P50 和 P90 正在测量所有数据的“平均值”,我认为在每个中间层实例中计算的所有 P50 和 P90 上简单地应用加权平均值应该足够好。但是 P99、P99.9 和 P99.99 正在测量那些离群数据,因此子集的 P99 的平均值可能不准确。

但是如果假设中间层实例中的数据是相对随机分布的,我可以获得每个中间层实例中前 5% 的数据点,并将它们发送到后端。每个中间层数据点的 5% 加起来是总数据点的 5%。而且我更有信心,这5%数据的P80接近整体数据的P99,这5%数据的P98接近整体数据的P99.9,5%数据的P99.8接近P99 .99 的整体数据。

我希望通过这种方式,我只能传输整体数据的 5%,但得到一个高精度的结果。你怎么看这种方式?

0 投票
0 回答
203 浏览

java - 将注释与 Yammer 指标库一起使用

我正在为 ElasticSearch 的 TransportClient 编写一个子类。(好吧,那是无关紧要的信息)

我想计算各种功能的频率和时间统计。所以我写了以下客户端(只包括一些部分以避免复杂化)

我在各种函数中一次又一次地编写了 Timer 和 Meter 的类似代码 - index()、get()、update()、delete() 和 search()。我开始知道使用注释可以完成同样的事情。但不幸的是,我不知道 java 中的注释。好吧,我很想知道如何在 java 中使用它们。这将有助于大幅减少我的代码。

我现在只是想使用@Timer、@Meter 和默认设置。我想为指标使用自定义名称。

0 投票
1 回答
352 浏览

java - 了解 jvisualVM 中的 Java 度量库单元

基本上我想了解度量 java 库OneMinuteRateRateUnit

所以我已经login使用 jmeter 用 51 个请求访问了服务器方法,现在我正在尝试理解数据。

1给出方法被调用的COUNT总次数。

但是oneMinRateand是rateUnit什么?什么是这里的事件?


编辑请也请注意其他属性

在此处输入图像描述

0 投票
1 回答
35684 浏览

java - DropWizard Metrics 米与计时器

我正在学习DropWizard Metrics 库(以前称为 Coda Hale 指标),我对何时应该使用Metersvs感到困惑Timers。根据文档:

仪表:仪表测量一组事件发生的速率

和:

计时器:计时器基本上是一种事件持续时间的直方图和事件发生率的计量器

基于这些定义,我无法辨别它们之间的区别。令我困惑的是,它Timer并没有按照我预期的方式使用。对我来说,Timer就是这样:一个计时器;start()它应该测量 a和之间的时间差异stop()。但它似乎Timers也捕捉到了事件发生的速率,感觉就像他们踩到了Meters脚趾。

如果我能看到每个组件输出的示例,这可能有助于我了解何时/何地使用其中任何一个。

0 投票
2 回答
1122 浏览

java - 为什么要在 Dropwizard Metrics 中使用 CachedGauage?

我看到CachedGaugeDropWizard Metrics(以前称为 Coda Hale Metrics)库中有 。我想知道为什么有人会使用这个?!?

我对指标价值的理解是它是实时的、准确的和相关的。如果一个指标报告一个陈旧/缓存的值,它可能用于什么目的?

0 投票
1 回答
755 浏览

java - 监控 Java 应用 API 的指标

我正在使用 com.sparkjava 库来编写 API。我想监控这些 API 的指标,例如给出响应所需的平均、最小和最大时间、API 的吞吐量以及为 API 发送的请求计数等,

我正在寻找一个合适的库来提供所有这些数据。我希望使用 JMX 技术在 JVM 中注册这些指标数据。我知道用于注册的 codahale.metrics 库,除此之外还有其他更好的库吗?除非没有其他选择,否则不想编写 MBean 对象并在 MBeanRegisrty 中注册。我正在寻找一个库,一旦我运行应用程序就可以提供上述指标数据。

0 投票
1 回答
623 浏览

spring - 当 Spring Integration 在类路径中时无法重置 Metrics Counter

在我的 spring-boot 应用程序(在类路径中使用 spring-integration),我无法重置任何指标计数器。它抛出 ClassCastException :

我认为这是 messageChannel 的一个错误,所以有没有办法禁用它?