| 12345678910111213141516171819202122232425262728293031323334353637 |
- # coding:utf-8
- import psutil
- from psutil._common import bytes2human
- from rest_framework.response import Response
- from rest_framework.views import APIView
- from drf_spectacular.utils import extend_schema, OpenApiResponse
- from .serializers import SystemDetailSerializer
- from monitor.permissions import LoginPermission
- class SystemDetailView(APIView):
- permission_classes = [LoginPermission]
- @extend_schema(
- description="获取系统信息功能接口",
- responses={
- 200: SystemDetailSerializer,
- 400: OpenApiResponse(description="错误状态码")
- }
- )
- def get(self, request):
- cpu_rate = psutil.cpu_percent(interval=0.2)
- memory = psutil.virtual_memory()
- disk = psutil.disk_usage('/')
- data = {
- 'cpu_rate': cpu_rate,
- 'disk_rate': disk.percent,
- 'memory_rate': memory.percent,
- 'disk_used': bytes2human(disk.used),
- 'disk_total': bytes2human(disk.total),
- 'memory_used': bytes2human(memory.used),
- 'memory_total': bytes2human(memory.total)
- }
- serobj = SystemDetailSerializer(data)
- return Response(data=serobj.data, status=200)
|