Tiny add num retracted tokens metric (#15653)

This commit is contained in:
fzyzcjy
2025-12-24 22:15:23 +08:00
committed by GitHub
parent aa21c6e3f1
commit 8196998a03
3 changed files with 37 additions and 6 deletions
+10 -2
View File
@@ -2077,8 +2077,16 @@ class Scheduler(
new_token_gained = new_available_tokens - old_available_tokens new_token_gained = new_available_tokens - old_available_tokens
self.num_retracted_reqs = len(retracted_reqs) self.num_retracted_reqs = len(retracted_reqs)
if self.enable_metrics and (x := len(retracted_reqs)) > 0: if self.enable_metrics and len(retracted_reqs) > 0:
self.metrics_collector.increment_num_retracted_reqs(x) self.metrics_collector.increment_retracted_reqs(
num_retracted_reqs=len(retracted_reqs),
num_retracted_input_tokens=sum(
len(r.origin_input_ids) for r in retracted_reqs
),
num_retracted_output_tokens=sum(
len(r.output_ids) for r in retracted_reqs
),
)
self.new_token_ratio = new_token_ratio self.new_token_ratio = new_token_ratio
for req in reqs_to_abort: for req in reqs_to_abort:
abort_reason: FINISH_ABORT = req.to_finish abort_reason: FINISH_ABORT = req.to_finish
+23 -2
View File
@@ -379,6 +379,16 @@ class SchedulerMetricsCollector:
documentation="Total number of retracted requests.", documentation="Total number of retracted requests.",
labelnames=labels.keys(), labelnames=labels.keys(),
) )
self.num_retracted_input_tokens_total = Counter(
name="sglang:num_retracted_input_tokens_total",
documentation="Total number of retracted input tokens.",
labelnames=labels.keys(),
)
self.num_retracted_output_tokens_total = Counter(
name="sglang:num_retracted_output_tokens_total",
documentation="Total number of retracted output tokens.",
labelnames=labels.keys(),
)
self.num_paused_reqs = Gauge( self.num_paused_reqs = Gauge(
name="sglang:num_paused_reqs", name="sglang:num_paused_reqs",
documentation="The number of paused requests by async weight sync.", documentation="The number of paused requests by async weight sync.",
@@ -731,8 +741,19 @@ class SchedulerMetricsCollector:
def observe_queue_time(self, latency: float) -> None: def observe_queue_time(self, latency: float) -> None:
self._log_histogram(self.queue_time, latency) self._log_histogram(self.queue_time, latency)
def increment_num_retracted_reqs(self, num: int) -> None: def increment_retracted_reqs(
self.num_retracted_reqs_total.labels(**self.labels).inc(num) self,
num_retracted_reqs: int,
num_retracted_input_tokens: int,
num_retracted_output_tokens: int,
) -> None:
self.num_retracted_reqs_total.labels(**self.labels).inc(num_retracted_reqs)
self.num_retracted_input_tokens_total.labels(**self.labels).inc(
num_retracted_input_tokens
)
self.num_retracted_output_tokens_total.labels(**self.labels).inc(
num_retracted_output_tokens
)
def increment_cuda_graph_pass(self, value: bool) -> None: def increment_cuda_graph_pass(self, value: bool) -> None:
# leave room for piecewise cuda graph, etc # leave room for piecewise cuda graph, etc
+4 -2
View File
@@ -66,6 +66,7 @@ class TestEnableMetrics(CustomTestCase):
with ( with (
envs.SGLANG_ENABLE_METRICS_DP_ATTENTION.override(True), envs.SGLANG_ENABLE_METRICS_DP_ATTENTION.override(True),
envs.SGLANG_ENABLE_METRICS_DEVICE_TIMER.override(True), envs.SGLANG_ENABLE_METRICS_DEVICE_TIMER.override(True),
envs.SGLANG_TEST_RETRACT.override(True),
): ):
process = popen_launch_server( process = popen_launch_server(
_MODEL_NAME, _MODEL_NAME,
@@ -82,12 +83,13 @@ class TestEnableMetrics(CustomTestCase):
response = requests.post( response = requests.post(
f"{DEFAULT_URL_FOR_TEST}/generate", f"{DEFAULT_URL_FOR_TEST}/generate",
json={ json={
"text": "The capital of France is", "text": ["The capital of France is"] * 20,
"sampling_params": { "sampling_params": {
"temperature": 0, "temperature": 0,
"max_new_tokens": 32, "max_new_tokens": 50,
}, },
"stream": True, "stream": True,
"ignore_eos": True,
}, },
stream=True, stream=True,
) )