# Mem checker [![Static Badge](https://img.shields.io/badge/pi3c_nao-green?style=for-the-badge&logo=telegram&label=Telegram)](https://t.me/pi3c_nao) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit) ## Задание Написать 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 - Вынести глобальные переменные в конфигурационные файлы