/CPUTracker

Hardware tracking demo (full package provided by NDA*)

Primary LanguagePython

FastAPI приложение для мониторинга системы

Этот проект является FastAPI приложением, которое предоставляет конечные точки для получения информации о мониторинге системы, такой как использование ЦП и использование ОЗУ. Приложение использует Dash для предоставления панели мониторинга системы и FastAPI для предоставления конечных точек API.

Возможности

  • Конечная точка использования ЦП: Возвращает текущее использование ЦП для каждого ядра ЦП.
  • Конечная точка использования ОЗУ: Возвращает текущее использование ОЗУ.
  • Аутентификация: Защищает конечные точки API с помощью базовой аутентификации HTTP.

Используемые технологии

  • FastAPI: Современный, быстрый (высокопроизводительный) веб-фреймворк для создания API с помощью Python 3.6+ на основе стандартных подсказок типов Python.
  • Dash: Продуктивный фреймворк Python на основе Flask, React и Plotly.js для создания аналитических веб-приложений.
  • Passlib: Библиотека хеширования паролей для Python.

Аутентификация

Конечные точки API защищены с помощью базовой аутентификации HTTP. Функция auth_user используется для проверки учетных данных пользователя. Функция verify_pwd используется для сравнения захешированного пароля с исходным текстовым паролем, предоставленным пользователем. Функция get_pwd_hash используется для хеширования исходного текстового пароля.

Конечные точки

  • /cpu/: Возвращает текущее использование ЦП для каждого ядра ЦП. Если предоставлен параметр запроса cpu_id, возвращается только использование ЦП для этого ядра.
  • /ram/: Возвращает текущее использование ОЗУ.

Запуск приложения

Чтобы запустить приложение, просто выполните основной скрипт Python. Приложение будет доступно по адресу http://localhost:8000 в вашем веб-браузере. Панель мониторинга системы будет доступна по адресу http://localhost:8000/dash/.

Чтобы получить доступ к конечным точкам API, вам потребуется предоставить имя пользователя и пароль. Имя пользователя по умолчанию - admin, пароль по умолчанию - password. Вы можете изменить пароль, обновив переменную HASHED_PASSWORD в коде.

Например, чтобы получить текущее использование ЦП для всех ядер ЦП, вы можете отправить запрос GET по адресу http://localhost:8000/cpu/ с заголовком Authorization, установленным в Basic YWRtaW46cGFzc3dvcmQ= (что является admin:password, закодированным в base64). Ответ будет представлять собой объект JSON, содержащий использование ЦП для каждого ядра.

Вот пример с использованием curl:

curl -X GET -H "Authorization: Basic YWRtaW46cGFzc3dvcmQ=" http://localhost:8000/cpu/

Ответ будет выглядеть примерно так:

{
  "cpu": [
    12.34,
    15.67,
    9.01,
    18.23
  ]
}

Это означает, что текущее использование ЦП для четырех ядер составляет 12,34%, 15,67%, 9,01% и 18,23% соответственно.