diff --git a/dvadmin-backend/application/__init__.py b/dvadmin-backend/application/__init__.py index 8b13789..2ea4edd 100644 --- a/dvadmin-backend/application/__init__.py +++ b/dvadmin-backend/application/__init__.py @@ -1 +1,3 @@ +import pymysql +pymysql.install_as_MySQLdb() diff --git a/dvadmin-backend/apps/vadmin/system/urls.py b/dvadmin-backend/apps/vadmin/system/urls.py index 7084014..654bac5 100644 --- a/dvadmin-backend/apps/vadmin/system/urls.py +++ b/dvadmin-backend/apps/vadmin/system/urls.py @@ -3,7 +3,7 @@ from rest_framework.routers import DefaultRouter from ..system.views import DictDataModelViewSet, DictDetailsModelViewSet, \ ConfigSettingsModelViewSet, SaveFileModelViewSet, MessagePushModelViewSet, LoginInforModelViewSet, \ - OperationLogModelViewSet, CeleryLogModelViewSet + OperationLogModelViewSet, CeleryLogModelViewSet, SystemInfoApiView router = DefaultRouter() router.register(r'dict/type', DictDataModelViewSet) @@ -48,6 +48,7 @@ urlpatterns = [ re_path('celery_log/export/', CeleryLogModelViewSet.as_view({'get': 'export', })), # 清除废弃文件 re_path('clearsavefile/', SaveFileModelViewSet.as_view({'post': 'clearsavefile', })), - + # 获取系统信息cpu、内存、硬盘 + re_path('sys/info/', SystemInfoApiView.as_view()) ] urlpatterns += router.urls diff --git a/dvadmin-backend/apps/vadmin/system/views.py b/dvadmin-backend/apps/vadmin/system/views.py index a35338f..05257cc 100644 --- a/dvadmin-backend/apps/vadmin/system/views.py +++ b/dvadmin-backend/apps/vadmin/system/views.py @@ -4,6 +4,7 @@ from django.conf import settings from django.core.cache import cache from django.db.models import Q from rest_framework.request import Request +from rest_framework.views import APIView from .models import LoginInfor, OperationLog, CeleryLog from ..op_drf.filters import DataLevelPermissionsFilter @@ -23,6 +24,7 @@ from ..system.serializers import DictDataSerializer, DictDataCreateUpdateSeriali from ..utils.export_excel import export_excel_save_model from ..utils.file_util import get_all_files, remove_empty_dir, delete_files from ..utils.response import SuccessResponse +from ..utils.system_info_utils import get_memory_used_percent, get_cpu_used_percent, get_disk_used_percent class DictDataModelViewSet(CustomModelViewSet): @@ -328,3 +330,21 @@ class CeleryLogModelViewSet(CustomModelViewSet): """ self.get_queryset().delete() return SuccessResponse(msg="清空成功") + + +class SystemInfoApiView(APIView): + """ + 系统服务监控视图 + """ + + def get(self, request, *args, **kwargs): + # 获取内存使用率 + memory_used_percent = get_memory_used_percent() + # 获取cpu使用率 + cpu_used_percent = get_cpu_used_percent() + # 获取硬盘使用率 + disk_used_percent = get_disk_used_percent() + return SuccessResponse(data={"memory_used_percent": memory_used_percent, + "cpu_used_percent": cpu_used_percent, + "disk_used_percent": disk_used_percent + }) diff --git a/dvadmin-backend/utils/system_info_utils.py b/dvadmin-backend/apps/vadmin/utils/system_info_utils.py similarity index 69% rename from dvadmin-backend/utils/system_info_utils.py rename to dvadmin-backend/apps/vadmin/utils/system_info_utils.py index 69f34c9..88d9895 100644 --- a/dvadmin-backend/utils/system_info_utils.py +++ b/dvadmin-backend/apps/vadmin/utils/system_info_utils.py @@ -4,6 +4,27 @@ import psutil as psutil +def get_cpu_info(): + """ + 获取cpu所有信息 + """ + pass + + +def get_memory_info(): + """ + 获取内存所有信息 + """ + pass + + +def get_disk_info(): + """ + 获取硬盘所有信息 + """ + pass + + def get_cpu_used_percent(): """ 获取CPU运行情况 @@ -31,7 +52,5 @@ def get_disk_used_percent(): pass - - if __name__ == '__main__': - get_cpu_used_percent() + get_disk_used_percent()