Skip to content

platbox/nanometer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nanometer

Библиотека для сбора данных и отправки их в Graphite.

Зачем?

Потому что Exometer не гарантирует доставку данных и не умеет в авторесет счётчиков (поэтому умеет терять данные напрочь), а StatsD написан на node.js, а мы не очень хотим конвертировать в текст и потом сразу обратно.

Как пользоваться?

  1. Запустите приложение.

  2. Используйте вызовы:

    • 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: отсылать ли статистику.
  3. Репортер будет коллекционировать все ваши метрики и отправлять на сервер. Те метрики, которые удалось отправить, будут сбрасываться. Те, которые не удалось, будут накапливаться.

  4. Наслаждайтесь метриками, которые ведут себя разумно и никуда не теряются!

Отсылаемые данные

  • для счётчиков: 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.

Автор

Releases

No releases published

Packages

No packages published