Постройте количество точек данных в Graphite

В моем приложении я часто обращаюсь к внешнему API. Продолжительность каждого звонка (в секундах) регистрируется в Graphite.

Эта часть работает нормально, но я также хочу отобразить общее количество вызовов. Должен ли я собирать данные в другом отдельно для этого, или я могу получить количество точек данных из существующих данных.


person Saqib    schedule 26.02.2014    source источник


Ответы (2)


Отправляете ли вы свои данные непосредственно в Graphite (углерод) при вызове API? Если это так, вы должны знать, что в зависимости от разрешения вашей базы данных шепота (например, 1 минута или 5 минут) Graphite сохраняет только последнюю точку данных, отправленную за заданный интервал! Поэтому люди используют, например. statsd, чтобы он усреднил все точки данных за один интервал перед Graphite.

Из-за этого, а также из-за того факта, что шепот очищает и усредняет старые данные с использованием количества точек данных, будет трудно правильно (или даже невозможно). Вы должны представить его как другую метрику и не забывать об этом интервале.

person cmur2    schedule 27.02.2014

Нет. Вам не нужно. Предположим, ваш таймер - Stats.app.api.call_duration.time_taken

Graphite автоматически рассчитает для вас набор вещей. К ним относятся count. Это сохранит количество обновлений таймера. Это зависит от степени детализации. Итак, Graphite учитывает это и дает вам подсчет в секунду: count_ps.

person erbdex    schedule 27.02.2014
comment
@erbex Я попробовал Stats.app.api.call_duration.time_taken.count и Stats.app.api.call_duration.time_taken.coutn_ps. Ни один из них не работает. - person Saqib; 28.02.2014
comment
Под «не работает» вы подразумеваете, что lower, upper, mean, sum и т. д. отображаются на графике, а count нет? - person erbdex; 28.02.2014