Я использую зависимость 'io.micrometer: micrometer-registry-prometheus' для вычисления среднего времени обработки запроса. Для этого я написал следующий java код
public void processingTypeEvent(String eventType, Runnable runnable) {
meterRegistry
.timer("myapplication.processingTimeEvent", EVENT_TYPE_TAG, eventType)
.record(runnable);
}
Таким образом, с помощью этого кода таймер измеряет время, затрачиваемое исполняемым (методом запроса), а также подсчитывает количество раз был вызван метод. В результате генерируются две метрики, которые я могу использовать в Datadog:
"prometheus.myapplication_processingTimeEvent_seconds.sum" and "prometheus.myapplication_processingTimeEvent_seconds.count"
Затем, чтобы рассчитать среднее время обработки запроса, я создал график «Значение запроса» в datadog и использовал datadog среднее по функции . Но вместо того, чтобы давать среднее время , DataDog, похоже, вычисляет сумму среднего времени запроса для каждого типа события и показывает всегда увеличивающееся среднее время запроса в секундах (что неверно, потому что Я вошел в систему java кодируйте время запроса, и все они меньше 100 миллисекунд; поэтому среднее значение должно быть в диапазоне миллисекунд).
Итак, я полагаю, что я делаю что-то не так. Мой вопрос: Как вычислить среднее время отклика с помощью графиков DataDog?
NB, я также пробовал в качестве решения разделить количество на сумму с помощью функции «Добавить запрос». Вкратце это означает
prometheus.myapplication_processingTimeEvent_seconds.sum DIVIDED BY prometheus.myapplication_processingTimeEvent_seconds.count
. Но некоторые коллеги утверждали, что это неправильный способ расчета среднего и что он должен иметь возможность рассчитывать среднее значение «из коробки» с помощью DataDog. Что вы думаете об этом решении?
С уважением