Техническое задание (ТЗ): Программа мониторинга состояния ПК/сервера с интерфейсом
Описание задачи:
Необходимо разработать программу для мониторинга состояния ПК или сервера. Программа должна выводить следующие характеристики:
1. Аппаратная часть:
-
Процессор (CPU):
- Модель и количество ядер.
- Частота работы.
-
Оперативная память (RAM):
- Общий объём.
- Используемый объём.
- Свободный объём.
-
Жесткий диск (HDD/SSD):
- Общий объём диска.
- Используемое пространство.
- Свободное пространство.
-
Графический процессор (GPU) (если не встройка):
- Модель и основные характеристики.
2. Мониторинг системы:
-
Нагрузка на процессор:
- Текущая загрузка CPU в процентах.
-
Использование оперативной памяти:
- Объём использованной и свободной памяти RAM.
-
Использование диска (HDD/SSD):
- Занятое и свободное место на диске.
-
Список всех запущенных процессов с возможностью:
- Сортировки по объёму потребляемой оперативной памяти.
- Сортировки по загрузке процессора.
- Поиска по названию процесса.
3. Настройки программы:
- Возможность включения/отключения логирования выбранных ключевых показателей. В настройках можно выбрать, какие метрики логировать (например, нагрузку на CPU, использование RAM и т.д.).
Дополнительные требования:
- Реализовать проверку состояния SMART для HDD/SSD. SMART (Self-Monitoring, Analysis, and Reporting Technology) предоставляет информацию о состоянии накопителя и предсказывает возможные отказы. Основные показатели SMART включают:
- Температура диска.
- Количество переназначенных секторов.
- Время работы диска.
- Ошибки чтения/записи.
Ограничения:
- Запрещено использование скриптовых языков программирования (например, Python, AWK, Bash, PowerShell и других).
- Используемые библиотеки должны быть компилируемыми (например, на C, C++, Rust).
Крайне желательно: В интерфейсе программы должна присутствовать главная страница с Dashboard'ом с возможностью настройки отображаемых метрик. Визуализация должна быть реализована в виде графиков, диаграмм и текстовых полей, напоминающих Grafana.