44import uuid
55import logging
66import json
7+ import time
78from copy import deepcopy
89from django .core .cache import cache
910from django .http import Http404 , HttpResponse
@@ -892,34 +893,41 @@ def _get_app(self):
892893 self .check_object_permissions (self .request , app )
893894 return app
894895
896+ def _to_timestamp (t ):
897+ return int (time .mktime (t .timetuple ()))
898+
895899 def _get_cpus (self , app_id , container_type , start , stop , every ):
896- avg_total , max_total = [], []
897- for record in influxdb .query_memory_usage (app_id , container_type , start , stop , every ):
900+ avg_list , max_list = [], []
901+ for record in influxdb .query_cpu_usage (app_id , container_type , start , stop , every ):
898902 if record ["result" ] == "mean" :
899- avg_total .append ((record ["_value" ] , record ["timestamp " ]))
903+ avg_list .append ((int ( time . mktime ( record ["_time" ]. timetuple ())) , record ["_value " ]))
900904 else :
901- max_total .append ((record ["_value" ] , record ["timestamp " ]))
905+ max_list .append ((int ( time . mktime ( record ["_time" ]. timetuple ())) , record ["_value " ]))
902906 return {
903- "max_total " : max_total ,
904- "avg_total " : avg_total
907+ "max " : max_list ,
908+ "avg " : avg_list ,
905909 }
906910
907911 def _get_memory (self , app_id , container_type , start , stop , every ):
908- max_total , avg_total = [], []
912+ max_list , avg_list = [], []
909913 for record in influxdb .query_memory_usage (app_id , container_type , start , stop , every ):
910914 if record ["result" ] == "mean" :
911- avg_total .append ((record ["_value" ] , record ["timestamp " ]))
915+ avg_list .append ((int ( time . mktime ( record ["_time" ]. timetuple ())) , record ["_value " ]))
912916 else :
913- max_total .append ((record ["_value" ] , record ["timestamp " ]))
917+ max_list .append ((int ( time . mktime ( record ["_time" ]. timetuple ())) , record ["_value " ]))
914918 return {
915- "max_total " : max_total ,
916- "avg_total " : avg_total
919+ "max " : max_list ,
920+ "avg " : avg_list ,
917921 }
918922
919923 def _get_networks (self , app_id , container_type , start , stop , every ):
920924 networks = []
921925 for record in influxdb .query_network_usage (app_id , container_type , start , stop , every ):
922- networks .append ((record ["rx_bytes" ], record ["tx_bytes" ], record ["timestamp" ]))
926+ networks .append ((
927+ int (time .mktime (record ["_time" ].timetuple ())),
928+ record ["rx_bytes" ],
929+ record ["tx_bytes" ]
930+ ))
923931 return networks
924932
925933 def _get_container_count (self , app_id , container_type , start , stop ):
@@ -931,41 +939,41 @@ def _get_container_count(self, app_id, container_type, start, stop):
931939 def status (self , request , ** kwargs ):
932940 """
933941 {
934-
935- app_id: "django_t1",
936- container_type: "web",
937- container_count: 1
938- cpus: {
939- max_total: [(50000, 1611023853)],
940- avg_total: [(50000, 1611023853)],
941- timestamp: 1611023853
942- },
943- memory: {
944- max_total: [(50000, 1611023853)],
945- avg_total: [(50000, 1611023853)],
946- timestamp: 1611023853
947- },
948- networks: [
949- (10000, 50000, 1611023853)
950- ],
942+ "id": "django_t1",
943+ "type": "web",
944+ "count": 1,
945+ "status": {
946+ "cpus": {
947+ "max": [(1611023853, 50000)],
948+ "avg": [(1611023853, 50000)]
949+ },
950+ "memory": {
951+ "max": [(1611023853, 50000)],
952+ "avg": [(1611023853, 50000)],
953+ },
954+ "networks": [
955+ (1611023853, 10000, 50000)
956+ ]
957+ }
951958 }
952959 """
953- app_id , container_type = self ._get_app ().id , kwargs ['container_type' ]
954-
960+ app_id = self ._get_app ().id
955961 data = serializers .MetricSerializer (data = self .request .query_params )
956962 if not data .is_valid ():
957963 return Response (data .errors , status = 422 )
958964 start , stop , every = data .validated_data ['start' ], data .validated_data [
959965 'stop' ], data .validated_data ["every" ]
960966 return Response ({
961- "app_id" : app_id ,
962- "container_type" : container_type ,
963- "container_count" : self ._get_container_count (
964- app_id , container_type , start , stop ),
965- "cpu_usage_list" : self ._get_cpus (
966- app_id , container_type , start , stop , every ),
967- "memory" : self ._get_memory (
968- app_id , container_type , start , stop , every ),
969- "networks" : self ._get_networks (
970- app_id , container_type , start , stop , every )
967+ "id" : app_id ,
968+ "type" : kwargs ['type' ],
969+ "count" : self ._get_container_count (
970+ app_id , kwargs ['type' ], start , stop ),
971+ "status" : {
972+ "cpus" : self ._get_cpus (
973+ app_id , kwargs ['type' ], start , stop , every ),
974+ "memory" : self ._get_memory (
975+ app_id , kwargs ['type' ], start , stop , every ),
976+ "networks" : self ._get_networks (
977+ app_id , kwargs ['type' ], start , stop , every ),
978+ }
971979 })
0 commit comments