A high-throughput and memory-efficient inference and serving engine for LLMs
Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git
Synced Nov 12, 14:45 UTC
[Metrics] Scheduled removal of deprecated metrics (#29330)
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Mark McLoughlin committed
Nov 25, 2025 at 03:15 UTC
9cf4edae6ef2c972429560ca8f72d40688d10495
2 files changed
+37
-100
tests/entrypoints/openai/test_metrics.py
-3
@@ -183,9 +183,6 @@ async def test_metrics_counts(
183
EXPECTED_METRICS_V1 = [
184
"vllm:num_requests_running",
185
"vllm:num_requests_waiting",
186
- "vllm:gpu_cache_usage_perc",
187
- "vllm:gpu_prefix_cache_queries",
188
- "vllm:gpu_prefix_cache_hits",
186
"vllm:kv_cache_usage_perc",
187
"vllm:prefix_cache_queries",
188
"vllm:prefix_cache_hits",
vllm/v1/metrics/loggers.py
+37
-97
@@ -440,57 +440,6 @@ class PrometheusStatLogger(AggregateStatLoggerBase):
440
# Setting default values
441
self.record_sleep_state()
442
443
- # GPU cache
444
- #
445
- # Deprecated in 0.9.2 - Renamed as vllm:kv_cache_usage_perc
446
- # With 0.11.x you can enable with --show-hidden-metrics-for-version=0.10
447
- # TODO: remove in 0.12.0
448
- if self.show_hidden_metrics:
449
- gauge_gpu_cache_usage = self._gauge_cls(
450
- name="vllm:gpu_cache_usage_perc",
451
- documentation=(
452
- "GPU KV-cache usage. 1 means 100 percent usage."
453
- "DEPRECATED: Use vllm:kv_cache_usage_perc instead."
454
- ),
455
- multiprocess_mode="mostrecent",
456
- labelnames=labelnames,
457
- )
458
- self.gauge_gpu_cache_usage = make_per_engine(
459
- gauge_gpu_cache_usage, engine_indexes, model_name
460
- )
461
-
462
- # Deprecated in 0.9.2 - Renamed as vllm:prefix_cache_queries
463
- # With 0.11.x you can enable with --show-hidden-metrics-for-version=0.10
464
- # TODO: remove in 0.12.0
465
- if self.show_hidden_metrics:
466
- counter_gpu_prefix_cache_queries = self._counter_cls(
467
- name="vllm:gpu_prefix_cache_queries",
468
- documentation=(
469
- "GPU prefix cache queries, in terms of number of queried"
470
- "tokens. DEPRECATED: Use vllm:prefix_cache_queries instead."
471
- ),
472
- labelnames=labelnames,
473
- )
474
- self.counter_gpu_prefix_cache_queries = make_per_engine(
475
- counter_gpu_prefix_cache_queries, engine_indexes, model_name
476
- )
477
-
478
- # Deprecated in 0.9.2 - Renamed as vllm:prefix_cache_hits
479
- # With 0.11.x you can enable with --show-hidden-metrics-for-version=0.10
480
- # TODO: remove in 0.12.0
481
- if self.show_hidden_metrics:
482
- counter_gpu_prefix_cache_hits = self._counter_cls(
483
- name="vllm:gpu_prefix_cache_hits",
484
- documentation=(
485
- "GPU prefix cache hits, in terms of number of cached "
486
- "tokens. DEPRECATED: Use vllm:prefix_cache_hits instead."
487
- ),
488
- labelnames=labelnames,
489
- )
490
- self.counter_gpu_prefix_cache_hits = make_per_engine(
491
- counter_gpu_prefix_cache_hits, engine_indexes, model_name
492
- )
493
-
443
gauge_kv_cache_usage = self._gauge_cls(
444
name="vllm:kv_cache_usage_perc",
445
documentation="KV-cache usage. 1 means 100 percent usage.",
@@ -735,39 +684,41 @@ class PrometheusStatLogger(AggregateStatLoggerBase):
684
)
685
686
# Deprecated in 0.11 - Renamed as vllm:inter_token_latency_seconds
738
- # TODO: in 0.12, only enable if show_hidden_metrics=True
739
- histogram_time_per_output_token = self._histogram_cls(
740
- name="vllm:time_per_output_token_seconds",
741
- documentation=(
742
- "Histogram of time per output token in seconds."
743
- "DEPRECATED: Use vllm:inter_token_latency_seconds instead."
744
- ),
745
- buckets=[
746
- 0.01,
747
- 0.025,
748
- 0.05,
749
- 0.075,
750
- 0.1,
751
- 0.15,
752
- 0.2,
753
- 0.3,
754
- 0.4,
755
- 0.5,
756
- 0.75,
757
- 1.0,
758
- 2.5,
759
- 5.0,
760
- 7.5,
761
- 10.0,
762
- 20.0,
763
- 40.0,
764
- 80.0,
765
- ],
766
- labelnames=labelnames,
767
- )
768
- self.histogram_time_per_output_token = make_per_engine(
769
- histogram_time_per_output_token, engine_indexes, model_name
770
- )
687
+ # With 0.12.x you can enable with --show-hidden-metrics-for-version=0.11
688
+ # TODO: remove in 0.13.0
689
+ if self.show_hidden_metrics:
690
+ histogram_time_per_output_token = self._histogram_cls(
691
+ name="vllm:time_per_output_token_seconds",
692
+ documentation=(
693
+ "Histogram of time per output token in seconds."
694
+ "DEPRECATED: Use vllm:inter_token_latency_seconds instead."
695
+ ),
696
+ buckets=[
697
+ 0.01,
698
+ 0.025,
699
+ 0.05,
700
+ 0.075,
701
+ 0.1,
702
+ 0.15,
703
+ 0.2,
704
+ 0.3,
705
+ 0.4,
706
+ 0.5,
707
+ 0.75,
708
+ 1.0,
709
+ 2.5,
710
+ 5.0,
711
+ 7.5,
712
+ 10.0,
713
+ 20.0,
714
+ 40.0,
715
+ 80.0,
716
+ ],
717
+ labelnames=labelnames,
718
+ )
719
+ self.histogram_time_per_output_token = make_per_engine(
720
+ histogram_time_per_output_token, engine_indexes, model_name
721
+ )
722
723
histogram_inter_token_latency = self._histogram_cls(
724
name="vllm:inter_token_latency_seconds",
@@ -966,20 +917,8 @@ class PrometheusStatLogger(AggregateStatLoggerBase):
917
self.gauge_scheduler_waiting[engine_idx].set(
918
scheduler_stats.num_waiting_reqs
919
)
969
- if self.show_hidden_metrics:
970
- self.gauge_gpu_cache_usage[engine_idx].set(
971
- scheduler_stats.kv_cache_usage
972
- )
920
self.gauge_kv_cache_usage[engine_idx].set(scheduler_stats.kv_cache_usage)
921
975
- if self.show_hidden_metrics:
976
- self.counter_gpu_prefix_cache_queries[engine_idx].inc(
977
- scheduler_stats.prefix_cache_stats.queries
978
- )
979
- self.counter_gpu_prefix_cache_hits[engine_idx].inc(
980
- scheduler_stats.prefix_cache_stats.hits
981
- )
982
-
922
self.counter_prefix_cache_queries[engine_idx].inc(
923
scheduler_stats.prefix_cache_stats.queries
924
)
@@ -1050,7 +989,8 @@ class PrometheusStatLogger(AggregateStatLoggerBase):
989
self.histogram_time_to_first_token[engine_idx].observe(ttft)
990
for itl in iteration_stats.inter_token_latencies_iter:
991
self.histogram_inter_token_latency[engine_idx].observe(itl)
1053
- self.histogram_time_per_output_token[engine_idx].observe(itl)
992
+ if self.show_hidden_metrics:
993
+ self.histogram_time_per_output_token[engine_idx].observe(itl)
994
995
for finished_request in iteration_stats.finished_requests:
996
self.counter_request_success[finished_request.finish_reason][