Pull to refresh

Comments 7

Не так давно появился telegraf, но все равно выбор не велик.

collectd
statsd
diamond
zabbix
Штуки от elasticsearch


Выбора вроде как много.

Ну это не так много, учитывая матрицу совместимости агент-хранилище.
Statsd не совсем агент, collectd сильно отстает от современного уровня детализации метрик, штуки от ES по-факту не метрики выплевывают, а сырые события, которые только в ES и ложатся, итд.

За statds ничего не скажу.
Про отставания от современного уровня детализации метрик — это как так? Если какая-то метрика кажется не слишком детальной — всегда можно расширить своей.
Про матрицу агент-хранилище слышать несколько странно. Collectd и штуки из ES спокойно можно засунуть в:


  • Influxdb
  • graphite (whisper)
  • elasticsearch
  • cassandra
  • OpenTSDB
  • prometheus

Проще найти хранилище, в которое метрики с collectd записать нельзя.


не метрики выплевывают, а сырые события, которые только в ES и ложатся

через logstash и можно куда угодно

В collectd у метрики идентификатор состоит из 4х фиксированных полей: plugin, instance, type, name. В таких рамках я не могу сделать метрику: количество GET запросов со статусом 400 к урлу / в логе /var/log/nginx/site.access.log. Именно это я имел ввиду под детализацией метрик. В prometheus это уже прекрасно ложится.


Про совместимость спорить не буду, наверное вы правы, было бы желание:)

В collectd у метрики идентификатор состоит из 4х фиксированных полей: plugin, instance, type, name. В таких рамках я не могу сделать метрику: количество GET запросов со статусом 400 к урлу / в логе /var/log/nginx/site.access.log. Именно это я имел ввиду под детализацией метрик. В prometheus это уже прекрасно ложится.

Возможно, я не совсем понимаю проблему, но это можно сделать двумя вариантами:


  1. Модуль python или модуль для bash, который будет считать такое. Если это nginx, можно предложить плагин exec и, например, такой скрипт сбора cat /var/log/nginx/site.access.log | grep GET | grep 400 | wc -l
  2. В идеале, логи лучше тоже отдельно где-то собирать (например, в том же elasticsearch) и потом их анализировать.

Нет, мы не понимаем друг друга, я говорю об идентификаторе метрики. Изобразить такое {name: nginx.requests.rate, url: /, method: GET, status: 400, log_file: /var/log/nginx/site.access.log, host: front1, plugin; logparser} в collectd нельзя, а например в telegraf можно.

Sign up to leave a comment.