Сергей Ванюшкин 3c271af48e | ||
---|---|---|
mem_checker | ||
tests | ||
.gitignore | ||
.pre-commit-config.yaml | ||
README.md | ||
poetry.lock | ||
pyproject.toml |
README.md
Mem checker
Задание
Написать bash или python или groovy скрипт, который будет контролировать потребление памяти и генерировать alarm путем отправки http запроса на API
Описание
Скрипт использует только стандартную библиотеку python и не требует установки зависимостей. Утилиты free и df используются для получения данных о свободной памяти.
Реализованы несколько классов. Абстрактный класс Command предоставляет базовый(общий для наследников) функционал. С наследованием от Сommand реализованы классы интеракторов, для работы с указанными выше утилитами.
Функция send_alert, отправляет POST запрос со списком alert сообщений, требующих внимания. Ендпоинт для отправки и уровни срабатывания настраиваются в коде.
Для запуска на продакшен сервере, необходимо настроить планировщик(cron, любой другой) на запуск скрипта через необходимые промежутки времени.
Для тестирования возможен запуск скрипта с ключем --test-mode, Данный способ запуска предназначен только ДЛЯ ТЕСТИРОВАНИЯ работоспособности и не рекомендуется для постоянной работы.
Установка и запуск
Клонируем:
git clone https://git.pi3c.ru/pi3c/mem_checker.git
Запускаем в тестовом режиме
cd ./mem_checker
python ./mem_checker/mem_checker.py --test-mode
Проверка отправки Для полного тестирования необходим работающий ендпоинт на сервере, способный принимать POST запросы. json формат отправляемых данных, которые должен обработать ендпоинт: [ { type_msg: str, message: str detail: str, } ]
ToDo
- Написать логирование
- Добавить обработку исключений при парсинге stdout
- Вынести глобальные переменные в конфигурационные файлы