新增获取服务器cpu、内存、硬盘的使用率视图
parent
50f5b88146
commit
6c7652976c
|
@ -2,7 +2,7 @@ from django.urls import re_path
|
|||
from rest_framework.routers import DefaultRouter
|
||||
|
||||
from apps.system.views import DictDataModelViewSet, DictDetailsModelViewSet, \
|
||||
ConfigSettingsModelViewSet, SaveFileModelViewSet, MessagePushModelViewSet
|
||||
ConfigSettingsModelViewSet, SaveFileModelViewSet, MessagePushModelViewSet, SystemInfoApiView
|
||||
|
||||
router = DefaultRouter()
|
||||
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/export/', MessagePushModelViewSet.as_view({'get': 'export',})),
|
||||
|
||||
re_path('sys/info/', SystemInfoApiView.as_view())
|
||||
]
|
||||
urlpatterns += router.urls
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from rest_framework.request import Request
|
||||
from rest_framework.views import APIView
|
||||
|
||||
from apps.op_drf.filters import DataLevelPermissionsFilter
|
||||
from apps.op_drf.viewsets import CustomModelViewSet
|
||||
|
@ -11,6 +12,7 @@ from apps.system.serializers import DictDataSerializer, DictDataCreateUpdateSeri
|
|||
MessagePushSerializer, MessagePushCreateUpdateSerializer, ExportMessagePushSerializer
|
||||
from utils.export_excel import export_excel_save_model
|
||||
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):
|
||||
|
@ -186,7 +188,6 @@ class MessagePushModelViewSet(CustomModelViewSet):
|
|||
"""
|
||||
获取用户未读消息数量
|
||||
"""
|
||||
|
||||
pass
|
||||
|
||||
def export(self, request: Request, *args, **kwargs):
|
||||
|
@ -200,3 +201,20 @@ class MessagePushModelViewSet(CustomModelViewSet):
|
|||
field_data = ['消息序号', '标题', '内容', '消息类型', '是否审核', '消息状态', '通知接收消息用户', '创建者', '修改者', '修改时间', '创建时间']
|
||||
data = ExportMessagePushSerializer(MessagePush.objects.all(), many=True).data
|
||||
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