File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -111,7 +111,7 @@ def check_build(use_ssl=False):
111111 service .run ()
112112 time .sleep (5 )
113113 endpoint = EndpointManager (server_url = service .server_url )
114- metrics = endpoint .metrics
114+ metrics = endpoint .metrics ()
115115 print ("Metrics:" )
116116 print (metrics )
117117 describe = endpoint .describe
Original file line number Diff line number Diff line change @@ -12,7 +12,6 @@ class EndpointManager:
1212 def __init__ (self , server_url ):
1313 self .server_url = server_url
1414 self ._describe = None
15- self ._metrics = None
1615
1716 @property
1817 def is_alive (self ) -> bool :
@@ -23,12 +22,9 @@ def is_alive(self) -> bool:
2322 except :
2423 return False
2524
26- @property
2725 def metrics (self ) -> str :
28- if not self ._metrics :
29- response = requests .get (url = "{}/api/v1/metrics" .format (self .server_url ), verify = False )
30- self ._metrics = response .text
31- return self ._metrics
26+ response = requests .get (url = "{}/api/v1/metrics" .format (self .server_url ), verify = False )
27+ return response .text
3228
3329 @property
3430 def metrics_available (self ) -> bool :
Original file line number Diff line number Diff line change @@ -73,7 +73,7 @@ def run_all(self, test_resources_path: Path):
7373
7474 all_results = dict ()
7575
76- metrics = service_tester .endpoint_manager .metrics
76+ metrics = service_tester .endpoint_manager .metrics ()
7777 logger .info ("Metrics:" )
7878 logger .info (metrics )
7979
@@ -113,6 +113,16 @@ def run_all(self, test_resources_path: Path):
113113
114114 self ._serialize_response (response_path , response )
115115
116+ # Metrics after one more test
117+ metrics = service_tester .endpoint_manager .metrics ()
118+ logger .info ("Metrics after one more test:" )
119+ logger .info (metrics )
120+
121+ # Metrics after all tests
122+ metrics = service_tester .endpoint_manager .metrics ()
123+ logger .info ("Metrics after all tests:" )
124+ logger .info (metrics )
125+
116126 with open (self ._tmp_test_resources / "results.json" , "w" ) as f :
117127 json .dump (all_results , f , indent = 2 )
118128
Original file line number Diff line number Diff line change @@ -62,13 +62,22 @@ def health() -> Response:
6262 return Response (content = 'OK' ,status_code = 200 ,media_type = 'text/plain' )
6363
6464@v1 .get ('/metrics' )
65- def metrics () -> Response :
65+ def metrics (request : Request ) -> Response :
6666 processing_version = DescribeService .compute_version ().get ("version" , "unknown" )
6767 metrics = (
6868 '# HELP pesto_instance_info Information about the Pesto instance\n '
6969 '# TYPE pesto_instance_info gauge\n '
7070 f'pesto_instance_info{{pesto_version="{ PESTO_VERSION } ",processing_version="{ processing_version } "}} 1\n '
71+ '# HELP pesto_jobs_total Information about the jobs\n '
72+ '# TYPE pesto_jobs_total gauge\n '
7173 )
74+ url_root = _get_url_root (request )
75+ result = JobListService ().job_list (url_root )
76+ for job_id in result .keys ():
77+ job_status = JobStatusService (url_root , job_id ).get_status ()
78+ status = job_status .get ('status' )
79+ progress = job_status .get ('progress' )
80+ metrics += f'pesto_job_total{{id="{ job_id } ",status="{ status } ",progress="{ progress } "}} 1\n '
7281 return Response (content = metrics , status_code = 200 , media_type = 'text/plain' )
7382
7483@v1 .post ('/jobs' )
You can’t perform that action at this time.
0 commit comments