1818from utils .sgl_utils import parse_sglang_args_inc
1919
2020from dynamo .llm import (
21+ ForwardPassMetrics ,
22+ KvStats ,
2123 ModelType ,
2224 WorkerMetricsPublisher ,
25+ WorkerStats ,
2326 ZmqKvEventPublisher ,
2427 ZmqKvEventPublisherConfig ,
2528 register_llm ,
@@ -67,15 +70,6 @@ def setup_metrics(self):
6770
6871 asyncio .create_task (self ._receive_and_publish_metrics_loop ())
6972
70- self .metrics_publisher .publish (
71- request_active_slots = 0 ,
72- request_total_slots = 1024 ,
73- kv_active_blocks = 0 ,
74- kv_total_blocks = 1024 ,
75- num_requests_waiting = 0 ,
76- gpu_cache_usage_perc = 0.0 ,
77- gpu_prefix_cache_hit_rate = 0.0 ,
78- )
7973 task = asyncio .create_task (self .create_metrics_publisher_endpoint ())
8074 task .add_done_callback (
8175 lambda _ : logging .debug ("metrics publisher endpoint created" )
@@ -90,16 +84,26 @@ async def _receive_and_publish_metrics_loop(self):
9084 while True :
9185 try :
9286 kv_metrics = await self .receive_metrics_from_scheduler .recv_pyobj () # type: ignore
93- self . metrics_publisher . publish (
87+ worker_stats = WorkerStats (
9488 request_active_slots = kv_metrics .request_active_slots ,
9589 request_total_slots = kv_metrics .request_total_slots ,
90+ num_requests_waiting = kv_metrics .num_requests_waiting ,
91+ data_parallel_rank = kv_metrics .data_parallel_rank , # Note: 0 means it's either 0 or None from sglang
92+ )
93+ kv_stats = KvStats (
9694 kv_active_blocks = kv_metrics .kv_active_blocks ,
9795 kv_total_blocks = kv_metrics .kv_total_blocks ,
98- num_requests_waiting = kv_metrics .num_requests_waiting ,
9996 gpu_cache_usage_perc = kv_metrics .gpu_cache_usage_perc ,
10097 gpu_prefix_cache_hit_rate = kv_metrics .gpu_prefix_cache_hit_rate ,
101- data_parallel_rank = getattr (kv_metrics , "data_parallel_rank" , None ),
102- )
98+ )
99+ spec_dec_stats = None
100+ metrics = ForwardPassMetrics (
101+ worker_stats = worker_stats ,
102+ kv_stats = kv_stats ,
103+ spec_decode_stats = spec_dec_stats ,
104+ )
105+
106+ self .metrics_publisher .publish (metrics )
103107 except Exception :
104108 logging .exception ("Failed to recieve or publish metrics" )
105109
0 commit comments