# Коллектор uptime **Автор:** Сергей Антропов **Сайт:** https://devops.org.ru ## Описание Коллектор `uptime` собирает информацию о времени работы системы. Предоставляет время работы в секундах и в человекочитаемом формате. ## Поддерживаемые платформы - **Linux**: Полная поддержка - **macOS**: Полная поддержка - **Windows**: Не поддерживается (возвращает пустой JSON) ## Собираемые данные ### Информация о времени работы ```json { "collector_name": "uptime", // Имя коллектора "seconds": 86400, // Время работы в секундах "human": "1d 0h 0m 0s", // Время работы в человекочитаемом формате "execution_time_ms": 5, // Время выполнения коллектора в миллисекундах "execution_time_seconds": 0.005 // Время выполнения коллектора в секундах } ``` ### Формат человекочитаемого времени Время работы отображается в формате: - `d` - дни - `h` - часы - `m` - минуты - `s` - секунды Примеры: - `0d 0h 5m 30s` - 5 минут 30 секунд - `0d 2h 15m 45s` - 2 часа 15 минут 45 секунд - `1d 3h 20m 10s` - 1 день 3 часа 20 минут 10 секунд - `7d 12h 0m 0s` - 7 дней 12 часов ## Конфигурация ### config.yaml ```yaml collectors: uptime: enabled: true type: exec key: uptime interval: "60s" # 1 минута timeout: "5s" exec: "./collectors/uptime" platforms: [linux, darwin] ``` ### Переменные окружения - `COLLECTOR_TIMEOUT`: Таймаут выполнения коллектора (по умолчанию 5s) ## Требования ### Системные требования - Linux или macOS система - Доступ к системным файлам времени работы - Права на чтение системной информации ### Команды Коллектор использует следующие команды (должны быть доступны): - **Linux**: чтение `/proc/uptime` - **macOS**: команда `uptime` или чтение системных файлов ## Примеры использования ### Проверка работы коллектора ```bash # Запуск коллектора напрямую ./bin/agent/collectors/uptime # Запуск через агент make run ``` ### Фильтрация данных ```bash # Время работы в секундах ./bin/agent/collectors/uptime | jq '.seconds' # Время работы в человекочитаемом формате ./bin/agent/collectors/uptime | jq '.human' # Полная информация ./bin/agent/collectors/uptime | jq '.' # Время выполнения коллектора ./bin/agent/collectors/uptime | jq '.execution_time_ms' ``` ## Устранение неполадок ### Частые проблемы 1. **"No data collected"** - Убедитесь, что система Linux или macOS - Проверьте доступность системных файлов - Убедитесь в правильности прав доступа 2. **"Permission denied"** - Проверьте права доступа к системным файлам - Убедитесь, что файлы `/proc/uptime` доступны для чтения 3. **"Invalid uptime data"** - Проверьте корректность системных файлов - Убедитесь в правильности формата данных ### Отладка ```bash # Проверка времени работы (Linux) cat /proc/uptime # Проверка времени работы (macOS) uptime # Проверка прав доступа (Linux) ls -la /proc/uptime # Проверка системной информации uname -a ``` ## Безопасность - Коллектор требует права на чтение системных файлов - Не передает пароли или секретные ключи - Собирает только публичную информацию о времени работы - Не выполняет привилегированные операции ## Производительность - Время выполнения: ~1-5 миллисекунд - Интервал сбора: рекомендуется 1 минута (60s) - Потребление ресурсов: минимальное - Собирает только локальную информацию о времени работы ## Совместимость - **Linux**: все дистрибутивы - **macOS**: все версии - **Архитектуры**: x86_64, ARM64 - **Системы**: серверы, рабочие станции, ноутбуки ## Особенности - **Точность**: время работы измеряется с точностью до секунды - **Формат**: поддерживает как числовой, так и человекочитаемый формат - **Производительность**: один из самых быстрых коллекторов - **Надежность**: минимальная вероятность ошибок