TCollector
tcollector — это клиентский процесс, который собирает данные из локальных коллекторов и отправляет их в OpenTSDB. Вы запускаете его на всех ваших хостах, и он выполняет работу по отправке данных каждого хоста в TSD.
OpenTSDB разработан для простоты сбора и записи данных. У него простой протокол, достаточно простой, чтобы даже скрипт оболочки мог начать отправлять данные. Однако сделать это надёжно и последовательно немного сложнее. Что делать, когда сервер TSD выключен? Как убедиться, что ваши коллекторы продолжают работать? Именно тут и появляется tcollector.
Tcollector выполняет за вас несколько задач:
- Запускает все ваши коллекторы данных и собирает их данные
- Выполняет всю работу по управлению подключениями для отправки данных в TSD
- Вам не нужно встраивать весь этот код в каждый написанный вами коллектор
- Выполняет дедупликацию повторяющихся значений
- Обрабатывает всю работу с протоколом передачи данных, а также будущие улучшения
Дедупликация
Как правило, вы хотите собирать данные обо всём в вашей системе. Это генерирует большое количество точек данных, большинство из которых не меняются со временем (или почти никогда). Однако вы хотите точное разрешение, когда они меняются. Tcollector запоминает последнее значение и метку времени, которые были отправлены для всех временных рядов для всех коллекторов, которые он управляет. Если значение не меняется между интервалами выборки, он подавляет отправку этой точки данных. Как только значение изменится (или пройдёт 10 минут), он отправит последнее подавленное значение и метку времени, а также текущее значение и метку времени. Таким образом, все ваши графики и тому подобное будут корректными. Дедупликация обычно значительно уменьшает количество точек данных, которые нужно собрать TSD. Это снижает нагрузку на сеть и хранение в бэкенде. Однако в будущей версии OpenTSDB будет улучшена структура хранения, используя RLE (и другие вещи), что сделает хранение повторяющихся значений практически бесплатным.
Сбор большого количества метрик с помощью tcollector
Коллекторы в tcollector могут быть написаны на любом языке. Они должны быть исполняемыми и выводить данные в стандартный вывод. Tcollector позаботится обо всём остальном. Коллекторы размещаются в каталоге collectors. Tcollector перебирает все каталоги, имеющие номер в этом каталоге, и запускает все коллекторы в каждом каталоге. Если вы назовёте каталог 60, tcollector будет пытаться запустить каждый коллектор в этом каталоге каждые 60 секунд. Наименьший поддерживаемый интервал составляет 15 секунд, вы должны использовать долгоживущий коллектор в папке 0 для интервалов меньше 15 секунд. TCollector будет спать 15 секунд после каждого запуска коллекторов, поэтому интервалы в 15 секунд — единственные фактически поддерживаемые интервалы. Например, это позволит вам запускать коллектор каждые 15, 30, 45, 60, 75 или 90 секунд, но не 80 или 55 секунд. Используйте каталог 0 для любых долгоживущих коллекторов, которые работают непрерывно. Tcollector будет читать их вывод и перезапускать их в случае сбоя. Как правило, вы хотите писать долгоживущие коллекторы, так как это потребует меньше накладных расходов. OpenTSDB разработан для получения большого количества точек данных для каждой метрики (для большинства метрик мы отправляем точки данных каждые 15 секунд).
Если в каталоге collectors есть каталоги с нечисловыми именами, они игнорируются. Мы включили каталоги lib и etc для данных библиотеки и конфигурации, используемых всеми коллекторами.
Установка tcollector
Вам нужно клонировать tcollector с GitHub:
git clone git://github.com/OpenTSDB/tcollector.git
и изменить скрипт 'tcollector/startstop', чтобы установить следующую переменную: TSD_HOST=dns.name.of.tsd
Чтобы избежать необходимости запуска mkmetric для каждой метрики, которую отслеживает tcollector, вы можете запустить TSD с флагом --auto-metric. Это полезно для быстрого начала работы, но не рекомендуется использовать этот флаг в долгосрочной перспективе, чтобы избежать случайного создания метрик.
© 2010–2016 The OpenTSDB Authors
Licensed under the GNU LGPLv2.1+ and GPLv3+ licenses.
http://opentsdb.net/docs/build/html/user_guide/utilities/tcollector.html