Как вы суммируете счетчик statsd за большой временной диапазон с правильными значениями?

Фон

Базовый вариант использования statsd и grafana - узнать, сколько раз функция вызывалась за определенный промежуток времени - будь то последние 6 часов, с начала сегодняшнего дня, с начала времени и т. Д.

Я изо всех сил пытаюсь найти правильную функцию для этого. Я использую размещенное решение; однако я могу подтвердить, что данные сбрасываются из StatsD в Graphite с интервалом в 10 секунд.


Текущая настройка

StatsD Flush: 10 с.

Функция графика: hitcount(counters.login.employer.count, "10seconds")

Диапазон времени: 24 часа


Проблема

При использовании hitcount(counters.login.employer.count, "10seconds") возвращенные данные неверны. Фактически, я могу делать 24 часа, 23 часа, 22 часа и замечать, что значения на самом деле увеличиваются.


Я провел все тесты здесь в контролируемой среде, только моя машина отправляет метрики в StatsD. Этого еще нет в производственном коде.

Есть идеи, что здесь может происходить?


person Sean Lindo    schedule 18.10.2016    source источник


Ответы (1)


Принцип работы счетчиков заключается в том, что на каждом интервале значение счетчика отправляется в графит и сбрасывается в statsd, поэтому вы ищете сумму ряда.

Вы можете сделать это с помощью olidateBy ('sum') в сочетании с maxDataPoints = 1.

Имейте в виду, что если ваша серия агрегируется в графите, вам необходимо убедиться, что агрегация производится по сумме, в противном случае, когда значения будут объединены из отдельных значений, сообщаемых statsd, в агрегированные сегменты, они будут усреднены, а ваша сумма не будет работать с более длинными интервалами. Вы можете узнать больше о настройке агрегации в Graphite здесь.

person AussieDan    schedule 18.10.2016