Библиотека для сбора данных и отправки их в Graphite.
Потому что Exometer не гарантирует доставку данных и не умеет в авторесет счётчиков (поэтому умеет терять данные напрочь), а StatsD написан на node.js, а мы не очень хотим конвертировать в текст и потом сразу обратно.
-
Запустите приложение.
-
Используйте вызовы:
nanometer:count(Name, Delta)
,nanometer:meter(Name, Delta)
,nanometer:gauge(Name, Number)
,nanometer:histogram(Name, Number[, Options])
,nanometer:time(Name, fun() -> .. end[, Options])
где Name - список из атомов, бинарников или целых чисел.
Время измеряется в микросекундах так, как это делает модуль timer.
Опции гистограмм:
accuracy
: точность перцентилей в процентах.percentiles
: перцентили, которые будут отправляться на сервер.min_lifetime
: время в миллисекундах (или infinity), в течение которого гистограмма будет игнорировать сбросы.debug
: отсылать ли статистику.
-
Репортер будет коллекционировать все ваши метрики и отправлять на сервер. Те метрики, которые удалось отправить, будут сбрасываться. Те, которые не удалось, будут накапливаться.
-
Наслаждайтесь метриками, которые ведут себя разумно и никуда не теряются!
- для счётчиков:
count
- счёт с последней отсылки,rate
- изменение счёта в секунду. - для уровней:
value
- общая сумма за всё время. - для шкал:
value
- значение шкалы. - для гистограмм: все заявленные перцентили плюс отладочная статистика:
{count, количество точек} {size, размер хранилища} {capacity, максимальный достигнутый размер хранилища} {compressions, количество произведённых сжатий}
- для всех типов, кроме meter, external:
ms_since_reset
.
{nanometer, [
{reporter, [
{address, {Host, Port}}},
{prefix, "prefix.as.iodata.without.trailing.dot"},
{period, PeriodInMs},
{packet_size, FullPacketSizeToSend},
{tcp_options, GenTcpConnectOptions}
]}
]}
Настройки гистограмм по умолчанию можно указать в переменной приложения histogram_options
.