88from loguru import logger
99from rich .console import Console
1010
11- from python_response_time .core import app_settings , setup_logger
11+ from python_response_time .core import (
12+ REQUEST_COUNT ,
13+ REQUEST_LATENCY ,
14+ app_settings ,
15+ setup_logger ,
16+ start_metrics_server ,
17+ )
1218
1319setup_logger (app_settings .LOG_LEVEL )
1420console = Console ()
@@ -67,18 +73,20 @@ def run_app():
6773 timeout = app_settings .TIMEOUT ,
6874 verify = app_settings .VERIFY_SSL ,
6975 )
70- elapsed_ms = ( time .perf_counter () - start_time ) * 1000
76+ elapsed = time .perf_counter () - start_time
7177 console .print (
72- f"{ i + 1 :>4} | { response .status_code } | { elapsed_ms :.2f} ms"
78+ f"{ i + 1 :>4} | { response .status_code } | { elapsed * 1000 :.2f} ms"
7379 )
7480 logger .info (
7581 {
7682 "request" : i + 1 ,
7783 "status" : response .status_code ,
78- "response_time_ms" : elapsed_ms ,
84+ "response_time_ms" : elapsed * 1000 ,
7985 "url" : str (app_settings .TARGET_URL ),
8086 }
8187 )
88+ REQUEST_COUNT .labels (status = str (response .status_code )).inc ()
89+ REQUEST_LATENCY .observe (elapsed )
8290 except requests .exceptions .SSLError as e :
8391 console .print (f"{ i + 1 :>4} | SSL ERROR" )
8492 logger .error (
@@ -89,6 +97,7 @@ def run_app():
8997 }
9098 )
9199 except requests .RequestException as e :
100+ REQUEST_COUNT .labels (status = "error" ).inc ()
92101 console .print (f"{ i + 1 :>4} | ERROR" )
93102 logger .error (
94103 {
@@ -107,6 +116,7 @@ def run_app():
107116if __name__ == "__main__" :
108117 """Run the application."""
109118 register_signals ()
119+ start_metrics_server (port = 8000 )
110120 try :
111121 run_app ()
112122 except KeyboardInterrupt :
0 commit comments