新增获取服务器cpu、内存、硬盘的使用率视图
parent
50f5b88146
commit
6c7652976c
|
@ -2,7 +2,7 @@ from django.urls import re_path
|
||||||
from rest_framework.routers import DefaultRouter
|
from rest_framework.routers import DefaultRouter
|
||||||
|
|
||||||
from apps.system.views import DictDataModelViewSet, DictDetailsModelViewSet, \
|
from apps.system.views import DictDataModelViewSet, DictDetailsModelViewSet, \
|
||||||
ConfigSettingsModelViewSet, SaveFileModelViewSet, MessagePushModelViewSet
|
ConfigSettingsModelViewSet, SaveFileModelViewSet, MessagePushModelViewSet, SystemInfoApiView
|
||||||
|
|
||||||
router = DefaultRouter()
|
router = DefaultRouter()
|
||||||
router.register(r'dict/type', DictDataModelViewSet)
|
router.register(r'dict/type', DictDataModelViewSet)
|
||||||
|
@ -25,5 +25,7 @@ urlpatterns = [
|
||||||
re_path('message/receive/', MessagePushModelViewSet.as_view({"get": "get_received_messages"})),
|
re_path('message/receive/', MessagePushModelViewSet.as_view({"get": "get_received_messages"})),
|
||||||
# 消息通知导出
|
# 消息通知导出
|
||||||
re_path('message/export/', MessagePushModelViewSet.as_view({'get': 'export',})),
|
re_path('message/export/', MessagePushModelViewSet.as_view({'get': 'export',})),
|
||||||
|
|
||||||
|
re_path('sys/info/', SystemInfoApiView.as_view())
|
||||||
]
|
]
|
||||||
urlpatterns += router.urls
|
urlpatterns += router.urls
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
from rest_framework.request import Request
|
from rest_framework.request import Request
|
||||||
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from apps.op_drf.filters import DataLevelPermissionsFilter
|
from apps.op_drf.filters import DataLevelPermissionsFilter
|
||||||
from apps.op_drf.viewsets import CustomModelViewSet
|
from apps.op_drf.viewsets import CustomModelViewSet
|
||||||
|
@ -11,6 +12,7 @@ from apps.system.serializers import DictDataSerializer, DictDataCreateUpdateSeri
|
||||||
MessagePushSerializer, MessagePushCreateUpdateSerializer, ExportMessagePushSerializer
|
MessagePushSerializer, MessagePushCreateUpdateSerializer, ExportMessagePushSerializer
|
||||||
from utils.export_excel import export_excel_save_model
|
from utils.export_excel import export_excel_save_model
|
||||||
from utils.response import SuccessResponse
|
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):
|
class DictDataModelViewSet(CustomModelViewSet):
|
||||||
|
@ -186,7 +188,6 @@ class MessagePushModelViewSet(CustomModelViewSet):
|
||||||
"""
|
"""
|
||||||
获取用户未读消息数量
|
获取用户未读消息数量
|
||||||
"""
|
"""
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def export(self, request: Request, *args, **kwargs):
|
def export(self, request: Request, *args, **kwargs):
|
||||||
|
@ -197,6 +198,23 @@ class MessagePushModelViewSet(CustomModelViewSet):
|
||||||
:param kwargs:
|
:param kwargs:
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
field_data = ['消息序号', '标题', '内容', '消息类型', '是否审核', '消息状态','通知接收消息用户', '创建者', '修改者', '修改时间', '创建时间']
|
field_data = ['消息序号', '标题', '内容', '消息类型', '是否审核', '消息状态', '通知接收消息用户', '创建者', '修改者', '修改时间', '创建时间']
|
||||||
data = ExportMessagePushSerializer(MessagePush.objects.all(), many=True).data
|
data = ExportMessagePushSerializer(MessagePush.objects.all(), many=True).data
|
||||||
return SuccessResponse(export_excel_save_model(request, field_data, data, '导出岗位数据.xls'))
|
return SuccessResponse(export_excel_save_model(request, field_data, data, '导出岗位数据.xls'))
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
})
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
"""
|
||||||
|
封装系服务监控相关函数
|
||||||
|
"""
|
||||||
|
import psutil as psutil
|
||||||
|
|
||||||
|
|
||||||
|
def get_cpu_used_percent():
|
||||||
|
"""
|
||||||
|
获取CPU运行情况
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
return float(psutil.cpu_percent(0.1))
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def get_memory_used_percent():
|
||||||
|
try:
|
||||||
|
memory_info = psutil.virtual_memory()
|
||||||
|
return float(memory_info.percent)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def get_disk_used_percent():
|
||||||
|
print(psutil.disk_partitions())
|
||||||
|
try:
|
||||||
|
return float(psutil.disk_usage("/").percent)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
get_cpu_used_percent()
|
Loading…
Reference in New Issue