Add cuda_graph_forward_passes_total and num_retracted_reqs_total (#15189)
This commit is contained in:
@@ -325,11 +325,18 @@ class SchedulerMetricsCollector:
|
||||
)
|
||||
|
||||
# Retract
|
||||
# TODO maybe remove this old gauge in favor of the new counter
|
||||
self.num_retracted_reqs = Gauge(
|
||||
name="sglang:num_retracted_reqs",
|
||||
documentation="The number of retracted requests.",
|
||||
labelnames=labels.keys(),
|
||||
)
|
||||
self.num_retracted_reqs_total = Counter(
|
||||
# The name is `requests` instead of `reqs` to avoid dup name error
|
||||
name="sglang:num_retracted_requests_total",
|
||||
documentation="Total number of retracted requests.",
|
||||
labelnames=labels.keys(),
|
||||
)
|
||||
self.num_paused_reqs = Gauge(
|
||||
name="sglang:num_paused_reqs",
|
||||
documentation="The number of paused requests by async weight sync.",
|
||||
@@ -605,12 +612,18 @@ class SchedulerMetricsCollector:
|
||||
labelnames=list(labels.keys()) + ["stage"],
|
||||
)
|
||||
|
||||
# TODO maybe remove this old gauge in favor of the new counter
|
||||
self.is_cuda_graph = Gauge(
|
||||
name="sglang:is_cuda_graph",
|
||||
documentation="Whether the batch is using CUDA graph.",
|
||||
labelnames=labels.keys(),
|
||||
multiprocess_mode="mostrecent",
|
||||
)
|
||||
self.cuda_graph_passes_total = Counter(
|
||||
name="sglang:cuda_graph_passes_total",
|
||||
documentation="Total number of forward passes categorized by CUDA graph.",
|
||||
labelnames=list(labels.keys()) + ["mode"],
|
||||
)
|
||||
|
||||
self.new_token_ratio = Gauge(
|
||||
name="sglang:new_token_ratio",
|
||||
@@ -639,6 +652,14 @@ class SchedulerMetricsCollector:
|
||||
def observe_queue_time(self, latency: float) -> None:
|
||||
self._log_histogram(self.queue_time, latency)
|
||||
|
||||
def increment_num_retracted_reqs(self, num: int) -> None:
|
||||
self.num_retracted_reqs_total.labels(**self.labels).inc(num)
|
||||
|
||||
def increment_cuda_graph_pass(self, value: bool) -> None:
|
||||
# leave room for piecewise cuda graph, etc
|
||||
mode = "decode_cuda_graph" if value else "decode_none"
|
||||
self.cuda_graph_passes_total.labels(**self.labels, mode=mode).inc(1)
|
||||
|
||||
def log_stats(self, stats: SchedulerStats) -> None:
|
||||
self._log_gauge(self.num_running_reqs, stats.num_running_reqs)
|
||||
self._log_gauge(self.num_used_tokens, stats.num_used_tokens)
|
||||
|
||||
Reference in New Issue
Block a user