计算DataDog中所有事件类型的平均请求处理时间

时间:2020-08-03 14:22:52

标签: java prometheus datadog

我正在使用依赖项'io.micrometer:micrometer-registry-prometheus'来计算平均请求处理时间。为此,我编写了以下java代码

 public void processingTypeEvent(String eventType, Runnable runnable) {
    meterRegistry
        .timer("myapplication.processingTimeEvent", EVENT_TYPE_TAG, eventType)
        .record(runnable);
  }

因此,使用该代码, timer 会测量可运行对象(请求方法)所花费的时间,并计算该方法被调用的次数。结果,生成了两个可以在Datadog中使用的指标:

"prometheus.myapplication_processingTimeEvent_seconds.sum" and "prometheus.myapplication_processingTimeEvent_seconds.count"

然后,为了计算平均请求处理时间,我在datadog中创建了一个“查询值”图,并使用了 avg by 函数。但是,DataDog似乎没有计算出平均时间,而是计算了每种事件类型的平均请求时间的总和,并显示了以秒为单位的不断增加的平均请求时间(即错误,因为我登录了Java代码,请求时间都在100毫秒以下;因此,平均值必须在毫秒范围内。

所以我想我做错了什么。我的问题是如何使用DataDog图计算平均响应时间?

作为解决方案,我还尝试了使用datadog函数“添加查询”将计数除以总和。简而言之

prometheus.myapplication_processingTimeEvent_seconds.sum DIVIDED BY prometheus.myapplication_processingTimeEvent_seconds.count

但是一些同事认为,这不是计算平均值的适当方法,它应该能够使用DataDog开箱即用地计算平均值。 您如何看待该解决方案?

致谢

0 个答案:

没有答案