Skip to content

Commit 3b070da

Browse files
feat: update metrics receiving part
1 parent 66fcbfe commit 3b070da

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

examples/sglang/components/worker.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,11 @@
1818
from utils.sgl_utils import parse_sglang_args_inc
1919

2020
from 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

Comments
 (0)