mirror of
https://github.com/ones-devguide/dev-rules.git
synced 2026-05-04 19:44:10 +02:00
5.5 KiB
5.5 KiB
sidebar_position, sidebar_label, title
| sidebar_position | sidebar_label | title |
|---|---|---|
| 2 | Техническое задание | Техническое задание |
Мастер-класс доступен по ссылке "От базовой библиотеки до полного расцвета с ОСенью. Разработка базовой версии"
Техническое задание на разработку библиотеки для мониторинга ресурсов сервера на Oscript.
Цель:
Разработать библиотеку для мониторинга состояния серверных ресурсов на языке Oscript. В первой версии библиотеки реализуется метод проверки свободного места на дисках.
Общие требования
-
Расширяемость:
- Библиотека должна быть модульной, чтобы новые методы мониторинга можно было добавлять без изменений основной логики.
- Каждый метод реализуется как отдельный модуль.
-
Конфигурация:
- Все настройки хранятся в одном JSON-файле.
- Для каждого метода в JSON должны быть предусмотрены индивидуальные параметры.
- Пример структуры файла:
{
"Проверки":{
"ПроверкаДисков": {
"Диски": ["C", "D"],
"Порог": 80
}
},
"Уведомления":{
"Почта":{
"Использовать": false,
"Сервер": "smtp.example.com",
"Порт": 587,
"Логин": "your-email@example.com",
"Пароль": "your-email-password",
"Получатели": ["recipient1@example.com"]
},
"Телеграм":{
"Использовать": true,
"Токен": "your-telegram-bot-token",
"Получатели": ["your-chat-id"]
}
}
}
-
Логирование:
- События (успехи и ошибки) записываются в лог-файл.
- Сообщения также выводятся в консоль для отладки.
-
Уведомления:
- Реализуется отправка уведомлений через Telegram и Email.
- Новые транспорты должны добавляться без изменений существующего кода.
Функциональные требования: Проверка места на диске
-
Сбор данных:
- Метод собирает информацию о свободном месте на указанных дисках.
- Настройки дисков и порога (в процентах) берутся из JSON-файла.
-
Уведомления:
- Если доступное место на диске ниже указанного порога, отправляется уведомление:
- Через Telegram (с использованием Telegram API).
- Через Email (SMTP).
- Если доступное место на диске ниже указанного порога, отправляется уведомление:
-
Вывод в консоль:
- Отображается информация о каждом диске:
- Имя диска (например,
C). - Общий и свободный объём.
- Метка для дисков, где превышен порог.
- Имя диска (например,
- Отображается информация о каждом диске:
-
Пример работы:
- Пользователь запускает библиотеку.
- В консоли отображается:
Диск C: свободно 15% (30 ГБ из 200 ГБ) Диск D: свободно 8% (5 ГБ из 60 ГБ) — ПОРОГ ПРЕВЫШЕН! - Уведомления отправляются на основе настроек в JSON.
Расширение функционала
- Нагрузка на процессор:
- Метод собирает данные о загрузке CPU и отправляет уведомления при превышении порога.
- Использование оперативной памяти:
- Мониторинг свободной и занятой памяти с уведомлениями.
- Состояние служб:
- Проверка активности заданных служб и отправка уведомлений о статусе.
- Время отклика сервисов:
- Проверка доступности заданных URL и времени отклика.
- Доступность внешних ресурсов:
- Мониторинг доступности файловых хранилищ или других ресурсов.
Результаты выполнения
- Реализована модульная библиотека с одним методом мониторинга (диски).
- Настройки гибко задаются в конфигурационном файле.
- Результаты отображаются в консоли, пишутся в лог-файл, а при необходимости отправляются уведомления.