1
0
mirror of https://github.com/ones-devguide/dev-rules.git synced 2026-05-04 19:44:10 +02:00
Files
dev-rules/docs/master-class/oscript/monitor/technical_specification.md
T
2025-01-16 12:21:51 +07:00

106 lines
5.5 KiB
Markdown

---
sidebar_position: 2
sidebar_label: Техническое задание
title: Техническое задание
---
> Мастер-класс доступен по ссылке "[От базовой библиотеки до полного расцвета с ОСенью. Разработка базовой версии](https://infostart.ru/1c/articles/2275659/)"
Техническое задание на разработку библиотеки для мониторинга ресурсов сервера на Oscript.
**Цель:**
Разработать библиотеку для мониторинга состояния серверных ресурсов на языке Oscript. В первой версии библиотеки реализуется метод проверки свободного места на дисках.
## Общие требования
1. **Расширяемость:**
- Библиотека должна быть модульной, чтобы новые методы мониторинга можно было добавлять без изменений основной логики.
- Каждый метод реализуется как отдельный модуль.
2. **Конфигурация:**
- Все настройки хранятся в одном JSON-файле.
- Для каждого метода в 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"]
}
}
}
```
3. **Логирование:**
- События (успехи и ошибки) записываются в лог-файл.
- Сообщения также выводятся в консоль для отладки.
4. **Уведомления:**
- Реализуется отправка уведомлений через Telegram и Email.
- Новые транспорты должны добавляться без изменений существующего кода.
---
## Функциональные требования: Проверка места на диске
1. **Сбор данных:**
- Метод собирает информацию о свободном месте на указанных дисках.
- Настройки дисков и порога (в процентах) берутся из JSON-файла.
2. **Уведомления:**
- Если доступное место на диске ниже указанного порога, отправляется уведомление:
- Через Telegram (с использованием Telegram API).
- Через Email (SMTP).
3. **Вывод в консоль:**
- Отображается информация о каждом диске:
- Имя диска (например, `C`).
- Общий и свободный объём.
- Метка для дисков, где превышен порог.
4. **Пример работы:**
- Пользователь запускает библиотеку.
- В консоли отображается:
```
Диск C: свободно 15% (30 ГБ из 200 ГБ)
Диск D: свободно 8% (5 ГБ из 60 ГБ) — ПОРОГ ПРЕВЫШЕН!
```
- Уведомления отправляются на основе настроек в JSON.
---
## Расширение функционала
1. **Нагрузка на процессор:**
- Метод собирает данные о загрузке CPU и отправляет уведомления при превышении порога.
2. **Использование оперативной памяти:**
- Мониторинг свободной и занятой памяти с уведомлениями.
3. **Состояние служб:**
- Проверка активности заданных служб и отправка уведомлений о статусе.
4. **Время отклика сервисов:**
- Проверка доступности заданных URL и времени отклика.
5. **Доступность внешних ресурсов:**
- Мониторинг доступности файловых хранилищ или других ресурсов.
---
## Результаты выполнения
1. Реализована модульная библиотека с одним методом мониторинга (диски).
2. Настройки гибко задаются в конфигурационном файле.
3. Результаты отображаются в консоли, пишутся в лог-файл, а при необходимости отправляются уведомления.