SensusAgent/docs/collectors.md
Sergey Antropoff 621d3f0a43 feat: добавлена информация о VM в коллектор GPU
- Добавлен сбор информации о виртуальных машинах и контейнерах Proxmox
- Генерация уникального vm_id на основе cluster_uuid + vmid (16 символов SHA256)
- Убрана информация о VM из коллектора proxcluster
- Обновлена документация по коллектору GPU
- Исправлен возврат пустого массива вместо null для vms

Автор: Сергей Антропов, сайт: https://devops.org.ru
2025-09-11 16:14:42 +03:00

3.2 KiB
Raw Blame History

Коллекторы

Автор: Сергей Антропов, сайт: https://devops.org.ru

Коллектор — это модуль, который исполняется агентом по расписанию и выводит результат в формате JSON в stdout. Агент объединяет вывод всех активных коллекторов в один JSON-документ.

Размещение исходников и артефактов:

  • Исходники Go-коллекторов: src/collectors/<name>
  • Собранные бинарники/скрипты: bin/agent/collectors/<name>

Требования к коллектору:

  • Вывод строго в формате JSON в stdout (одна строка или валидный JSON-объект)
  • Отсутствие побочного вывода в stderr/stdout кроме JSON (для корректного парсинга)
  • Завершение за время, не превышающее timeout в конфигурации

Пример внешнего скрипта-коллектора (bin/agent/collectors/sample.sh):

#!/usr/bin/env sh
set -eu
echo '{"sample": {"ok": true, "ts": '"$(date +%s)"'}}'

Пример описания коллектора в bin/agent/config.yaml:

collectors:
  system:
    enabled: true
    type: exec
    key: system
    interval: "30s"
    timeout: "8s"
    exec: "./collectors/system"
    platforms: [linux]

Сборка Go-коллекторов через Makefile (в Docker):

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 - сбор информации о Proxmox кластере
  • gpu - сбор информации о GPU устройствах с агрегированной статистикой