### Коллекторы Автор: Сергей Антропов, сайт: https://devops.org.ru Коллектор — это модуль, который исполняется агентом по расписанию и выводит результат в формате JSON в stdout. Агент объединяет вывод всех активных коллекторов в один JSON-документ. Размещение исходников и артефактов: - Исходники Go-коллекторов: `src/collectors/` - Собранные бинарники/скрипты: `bin/agent/collectors/` Требования к коллектору: - Вывод строго в формате JSON в stdout (одна строка или валидный JSON-объект) - Отсутствие побочного вывода в stderr/stdout кроме JSON (для корректного парсинга) - Завершение за время, не превышающее `timeout` в конфигурации Пример внешнего скрипта-коллектора (`bin/agent/collectors/sample.sh`): ```bash #!/usr/bin/env sh set -eu echo '{"sample": {"ok": true, "ts": '"$(date +%s)"'}}' ``` Пример описания коллектора в `bin/agent/config.yaml`: ```yaml collectors: system: enabled: true type: exec key: system interval: "30s" timeout: "8s" exec: "./collectors/system" platforms: [linux] ``` Сборка Go-коллекторов через Makefile (в Docker): ```bash make collectors # текущая платформа make collectors-linux # linux/amd64 make collectors-darwin # darwin/arm64 ``` Рекомендации по разработке: - Следуйте единому JSON-стилю и ключам, не допускайте дублирования имен ключей между коллекторами - Логирование делайте в stderr, чтобы не мешать JSON - Ограничивайте потребление ресурсов и время выполнения - На стороне агента используйте `interval` ≥ 10s для тяжелых коллекторов ## Доступные коллекторы ### Встроенные коллекторы - **system** - системные метрики (CPU, RAM, сеть, диски, обновления) - **uptime** - время работы системы - **macos** - специфичные для macOS метрики - **hba** - информация о HBA адаптерах - **sensors** - данные датчиков температуры/напряжения - **docker** - информация о Docker контейнерах - **gpu** - информация о GPU устройствах - **kubernetes** - метрики Kubernetes кластера - **proxcluster** - информация о Proxmox кластере ⭐ ### Документация коллекторов - [proxcluster](collectors/proxcluster.md) - сбор информации о Proxmox кластере - [gpu](collectors/gpu.md) - сбор информации о GPU устройствах с агрегированной статистикой