api_system.py 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. from django.contrib import auth
  2. from rest_framework.views import APIView
  3. from django.core.exceptions import ValidationError
  4. from api.utils import TRIGGEREDALERTS, PROCESSPERFORMANCE, SYSTEMPERFORMANCE, success, failed
  5. from api.models import Alert, Mission
  6. import requests
  7. import json
  8. class SystemPerformanceAPI(APIView):
  9. # 获取系统性能信息
  10. def get(self, request):
  11. if not request.user.identity == 'admin':
  12. return failed(message="仅允许管理员访问")
  13. processes = []
  14. for process in PROCESSPERFORMANCE:
  15. processes.append({
  16. **process,
  17. 'user': Mission.objects.get(id=process['missionId']).user.username,
  18. })
  19. # 注意将触发的告警一并传递
  20. triggeredAlerts = []
  21. for alert in TRIGGEREDALERTS:
  22. triggeredAlerts.append({
  23. 'name': alert.name,
  24. 'level': alert.level,
  25. 'metric': alert.metric,
  26. 'threshold': alert.threshold,
  27. 'handle': alert.handle,
  28. })
  29. return success(data={**SYSTEMPERFORMANCE, 'processes': processes, 'triggeredAlerts': triggeredAlerts})