# vLLM exports the same measurements through native vllm:* and Ray ray_vllm_*
# transports. This profile removes Ray's unsuffixed compatibility gauges, then
# normalizes its remaining names into the canonical native namespace.
#
# vLLM also emits generated *_created gauges as Unix epoch timestamps. This
# profile removes its generated epochs because the chart schema cannot turn raw
# epochs into ages; the shared process-runtime profile owns
# process_start_time_seconds. Current CPU offloading also emits deprecated aliases
# from the same observations, so profile relabeling removes those aliases to
# prevent double counting.
# Known generated timestamps and deprecated duplicate aliases are excluded exactly;
# unknown future vLLM families remain eligible for generic fallback.
# Information families remain writer-ineligible. Exact source-proven duplicate
# components retain their samples but do not receive generic fallback charts.

match: 'vllm:* ray_vllm_*'
app: vllm
autogen:
  selector:
    deny:
      - 'vllm:e2e_request_latency_seconds'
      - 'vllm:kv_block_idle_before_evict_seconds'
      - 'vllm:kv_offload_load_size'
      - 'vllm:kv_offload_store_size'
      - 'vllm:mooncake_store_operation_time_seconds'
      - 'vllm:nixl_bytes_transferred'
      - 'vllm:nixl_num_descriptors'
      - 'vllm:nixl_post_time_seconds'
      - 'vllm:num_requests_waiting'
      - 'vllm:prompt_tokens_cached_total'
      - 'vllm:prompt_tokens_total'
      - 'vllm:request_decode_time_seconds'
      - 'vllm:request_generation_tokens'
      - 'vllm:request_inference_time_seconds'
      - 'vllm:request_max_num_generation_tokens'
      - 'vllm:request_prefill_kv_computed_tokens'
      - 'vllm:request_prefill_time_seconds'
      - 'vllm:request_prompt_tokens'
      - 'vllm:request_queue_time_seconds'
      - 'vllm:request_time_per_output_token_seconds'
relabeling:
  - match: >-
      ray_vllm_corrupted_requests
      ray_vllm_diffusion_num_canvas_positions
      ray_vllm_diffusion_num_committed_tokens
      ray_vllm_diffusion_num_denoising_steps
      ray_vllm_external_prefix_cache_hits
      ray_vllm_external_prefix_cache_queries
      ray_vllm_generation_tokens
      ray_vllm_hf3fs_num_failed_load
      ray_vllm_hf3fs_num_failed_save
      ray_vllm_kv_offload_allocation_failure
      ray_vllm_kv_offload_load_bytes
      ray_vllm_kv_offload_load_time
      ray_vllm_kv_offload_store_bytes
      ray_vllm_kv_offload_store_time
      ray_vllm_kv_offload_stores_skipped
      ray_vllm_kv_offload_total_bytes
      ray_vllm_kv_offload_total_time
      ray_vllm_mm_cache_hits
      ray_vllm_mm_cache_queries
      ray_vllm_nixl_num_failed_notifications
      ray_vllm_nixl_num_failed_transfers
      ray_vllm_nixl_num_kv_expired_reqs
      ray_vllm_num_preemptions
      ray_vllm_prefix_cache_hits
      ray_vllm_prefix_cache_queries
      ray_vllm_prompt_tokens
      ray_vllm_prompt_tokens_by_source
      ray_vllm_prompt_tokens_cached
      ray_vllm_request_success
      ray_vllm_spec_decode_num_accepted_tokens
      ray_vllm_spec_decode_num_accepted_tokens_per_pos
      ray_vllm_spec_decode_num_draft_tokens
      ray_vllm_spec_decode_num_drafts
    metric_relabel_configs:
      - action: drop
  - match: 'ray_vllm_*'
    metric_relabel_configs:
      - source_labels: [__name__]
        regex: 'ray_vllm_(.*)'
        target_label: __name__
        replacement: 'vllm:${1}'
  - match: >-
      vllm:corrupted_requests_created
      vllm:diffusion_num_canvas_positions_created
      vllm:diffusion_num_committed_tokens_created
      vllm:diffusion_num_denoising_steps_created
      vllm:e2e_request_latency_seconds_created
      vllm:estimated_flops_per_gpu_created
      vllm:estimated_read_bytes_per_gpu_created
      vllm:estimated_write_bytes_per_gpu_created
      vllm:external_prefix_cache_hits_created
      vllm:external_prefix_cache_queries_created
      vllm:generation_tokens_created
      vllm:hf3fs_load_duration_seconds_created
      vllm:hf3fs_num_failed_load_created
      vllm:hf3fs_num_failed_save_created
      vllm:hf3fs_save_duration_seconds_created
      vllm:inter_token_latency_seconds_created
      vllm:iteration_tokens_total_created
      vllm:kv_block_idle_before_evict_seconds_created
      vllm:kv_block_lifetime_seconds_created
      vllm:kv_block_reuse_gap_seconds_created
      vllm:kv_offload_allocation_failure_created
      vllm:kv_offload_cpu_allocation_size_created
      vllm:kv_offload_load_bytes_created
      vllm:kv_offload_load_size_created
      vllm:kv_offload_load_time_created
      vllm:kv_offload_lookup_async_delay_seconds_created
      vllm:kv_offload_lookup_sync_delay_seconds_created
      vllm:kv_offload_size_created
      vllm:kv_offload_store_bytes_created
      vllm:kv_offload_store_size_created
      vllm:kv_offload_store_time_created
      vllm:kv_offload_stores_skipped_created
      vllm:kv_offload_tiering_lookup_async_delay_seconds_created
      vllm:kv_offload_tiering_lookup_sync_delay_seconds_created
      vllm:kv_offload_total_bytes_created
      vllm:kv_offload_total_time_created
      vllm:mm_cache_hits_created
      vllm:mm_cache_queries_created
      vllm:mooncake_store_operation_bytes_created
      vllm:mooncake_store_operation_created
      vllm:mooncake_store_operation_failed_keys_created
      vllm:mooncake_store_operation_keys_created
      vllm:mooncake_store_operation_time_seconds_created
      vllm:nixl_bytes_transferred_created
      vllm:nixl_num_descriptors_created
      vllm:nixl_num_failed_notifications_created
      vllm:nixl_num_failed_transfers_created
      vllm:nixl_num_kv_expired_reqs_created
      vllm:nixl_post_time_seconds_created
      vllm:nixl_xfer_time_seconds_created
      vllm:num_preemptions_created
      vllm:prefix_cache_hits_created
      vllm:prefix_cache_queries_created
      vllm:prompt_tokens_by_source_created
      vllm:prompt_tokens_cached_created
      vllm:prompt_tokens_created
      vllm:request_decode_time_seconds_created
      vllm:request_generation_tokens_created
      vllm:request_inference_time_seconds_created
      vllm:request_max_num_generation_tokens_created
      vllm:request_params_max_tokens_created
      vllm:request_params_n_created
      vllm:request_prefill_kv_computed_tokens_created
      vllm:request_prefill_time_seconds_created
      vllm:request_prompt_tokens_created
      vllm:request_queue_time_seconds_created
      vllm:request_success_created
      vllm:request_time_per_output_token_seconds_created
      vllm:spec_decode_num_accepted_tokens_created
      vllm:spec_decode_num_accepted_tokens_per_pos_created
      vllm:spec_decode_num_draft_tokens_created
      vllm:spec_decode_num_drafts_created
      vllm:time_to_first_token_seconds_created
      vllm:tool_call_parser_invocations_created
      vllm:websocket_connection_duration_seconds_created
      vllm:websocket_connections_created
    metric_relabel_configs:
      - action: drop
  - match: >-
      vllm:kv_offload_total_bytes_total
      vllm:kv_offload_total_time_total
    metric_relabel_configs:
      - action: drop
  - match: >-
      vllm:kv_offload_size_bucket
      vllm:kv_offload_size_count
      vllm:kv_offload_size_sum
    metric_relabel_configs:
      - action: drop
template:
  family: vLLM
  context_namespace: vllm
  chart_defaults:
    label_promotion: [Version, SessionName, Component]

  groups:
    - family: Request Lifecycle
      context_namespace: request_lifecycle
      chart_defaults:
        instances:
          by_labels: [model_name, engine]
          optional_by_labels: [ReplicaId, WorkerId]
      metrics:
        - 'vllm:corrupted_requests_total'
        - 'vllm:time_to_first_token_seconds_bucket'
        - 'vllm:time_to_first_token_seconds_count'
        - 'vllm:time_to_first_token_seconds_sum'
        - 'vllm:e2e_request_latency_seconds_bucket'
        - 'vllm:e2e_request_latency_seconds_sum'
        - 'vllm:request_params_n_bucket'
        - 'vllm:request_params_n_count'
        - 'vllm:request_params_n_sum'
        - 'vllm:request_params_max_tokens_bucket'
        - 'vllm:request_params_max_tokens_count'
        - 'vllm:request_params_max_tokens_sum'
        - 'vllm:request_max_num_generation_tokens_bucket'
        - 'vllm:request_max_num_generation_tokens_sum'
      charts:
        - title: Corrupted Requests
          context: corrupted_requests
          units: requests/s
          dimensions:
            - selector: 'vllm:corrupted_requests_total'
              name: corrupted

        - title: Time to First Token
          context: time_to_first_token
          units: observations/s
          dimensions:
            - selector: 'vllm:time_to_first_token_seconds_bucket'

        - title: End-to-End Request Latency
          context: end_to_end_latency
          units: observations/s
          dimensions:
            - selector: 'vllm:e2e_request_latency_seconds_bucket'

        - title: Requests Reaching First Token
          context: first_token_requests
          units: requests/s
          dimensions:
            - selector: 'vllm:time_to_first_token_seconds_count'
              name: requests

        - title: Completed Pre-Response Time
          context: completed_pre_response_time
          units: seconds/s
          dimensions:
            - selector: 'vllm:time_to_first_token_seconds_sum'
              name: time

        - title: Completed End-to-End Request Time
          context: completed_end_to_end_time
          units: seconds/s
          dimensions:
            - selector: 'vllm:e2e_request_latency_seconds_sum'
              name: time

        - title: Requested Sequences
          context: requested_sequences
          units: observations/s
          dimensions:
            - selector: 'vllm:request_params_n_bucket'

        - title: Requested Sequence Volume
          context: requested_sequence_volume
          units: sequences/s
          dimensions:
            - selector: 'vllm:request_params_n_sum'
              name: sequences

        - title: Requested Token Limit
          context: requested_token_limit
          units: observations/s
          dimensions:
            - selector: 'vllm:request_params_max_tokens_bucket'

        - title: Requested Token Limits Sum
          context: requested_token_limits_sum
          units: tokens/s
          dimensions:
            - selector: 'vllm:request_params_max_tokens_sum'
              name: token_limits

        - title: Requests with Explicit Token Limit
          context: requests_with_explicit_token_limit
          units: requests/s
          dimensions:
            - selector: 'vllm:request_params_max_tokens_count'
              name: requests

        - title: Maximum Generated Tokens
          context: maximum_generated_tokens
          units: observations/s
          dimensions:
            - selector: 'vllm:request_max_num_generation_tokens_bucket'

        - title: Maximum Generated Tokens Sum
          context: maximum_generated_tokens_sum
          units: tokens/s
          dimensions:
            - selector: 'vllm:request_max_num_generation_tokens_sum'
              name: maximums

        - title: Parent Requests
          context: parent_requests
          units: requests/s
          dimensions:
            - selector: 'vllm:request_params_n_count'
              name: requests

      groups:
        - family: Outcomes
          chart_defaults:
            instances:
              by_labels: [model_name, engine, finished_reason]
              optional_by_labels: [ReplicaId, WorkerId]
          metrics:
            - 'vllm:request_success_total'
          charts:
            - title: Request Outcomes
              context: outcomes
              units: requests/s
              dimensions:
                - selector: 'vllm:request_success_total'
                  name: requests

    - family: Scheduler
      context_namespace: scheduler
      chart_defaults:
        instances:
          by_labels: [model_name, engine]
          optional_by_labels: [ReplicaId, WorkerId]
      metrics:
        - 'vllm:num_requests_running'
        - 'vllm:num_requests_waiting_by_reason'
        - 'vllm:num_preemptions_total'
        - 'vllm:engine_sleep_state'
        - 'vllm:request_queue_time_seconds_bucket'
        - 'vllm:request_queue_time_seconds_sum'
      charts:
        - title: Request State
          context: request_state
          units: requests
          dimensions:
            - selector: 'vllm:num_requests_running'
              name: running
            - selector: 'vllm:num_requests_waiting_by_reason{reason="capacity"}'
              name: waiting_capacity
            - selector: 'vllm:num_requests_waiting_by_reason{reason="deferred"}'
              name: waiting_deferred

        - title: Request Preemptions
          context: preemptions
          units: preemptions/s
          dimensions:
            - selector: 'vllm:num_preemptions_total'
              name: preemptions

        - title: Engine Sleep State
          context: sleep_state
          units: "{status}"
          dimensions:
            - selector: 'vllm:engine_sleep_state'
              name_from_label: sleep_state

        - title: Request Queue Time
          context: queue_time
          units: observations/s
          dimensions:
            - selector: 'vllm:request_queue_time_seconds_bucket'

        - title: Completed Request Queue Time
          context: completed_queue_time
          units: seconds/s
          dimensions:
            - selector: 'vllm:request_queue_time_seconds_sum'
              name: time

    - family: Prefill
      context_namespace: prefill
      chart_defaults:
        instances:
          by_labels: [model_name, engine]
          optional_by_labels: [ReplicaId, WorkerId]
      metrics:
        - 'vllm:prompt_tokens_by_source_total'
        - 'vllm:request_prompt_tokens_bucket'
        - 'vllm:request_prompt_tokens_sum'
        - 'vllm:request_prefill_time_seconds_bucket'
        - 'vllm:request_prefill_time_seconds_sum'
        - 'vllm:request_prefill_kv_computed_tokens_bucket'
        - 'vllm:request_prefill_kv_computed_tokens_sum'
      charts:
        - title: Prompt Tokens by Source
          context: prompt_tokens_by_source
          units: tokens/s
          dimensions:
            - selector: 'vllm:prompt_tokens_by_source_total'
              name_from_label: source

        - title: Prompt Size
          context: prompt_size
          units: observations/s
          dimensions:
            - selector: 'vllm:request_prompt_tokens_bucket'

        - title: Prefill Time
          context: prefill_time
          units: observations/s
          dimensions:
            - selector: 'vllm:request_prefill_time_seconds_bucket'

        - title: Computed KV Tokens
          context: computed_kv_tokens
          units: observations/s
          dimensions:
            - selector: 'vllm:request_prefill_kv_computed_tokens_bucket'

        - title: Completed Request Prompt Volume
          context: completed_request_prompt_volume
          units: tokens/s
          dimensions:
            - selector: 'vllm:request_prompt_tokens_sum'
              name: prompt_tokens

        - title: Computed KV Token Volume
          context: computed_kv_token_volume
          units: tokens/s
          dimensions:
            - selector: 'vllm:request_prefill_kv_computed_tokens_sum'
              name: computed_tokens

        - title: Completed Request Prefill Time
          context: completed_time
          units: seconds/s
          dimensions:
            - selector: 'vllm:request_prefill_time_seconds_sum'
              name: time

    - family: Decode
      context_namespace: decode
      chart_defaults:
        instances:
          by_labels: [model_name, engine]
          optional_by_labels: [ReplicaId, WorkerId]
      metrics:
        - 'vllm:generation_tokens_total'
        - 'vllm:request_generation_tokens_bucket'
        - 'vllm:request_generation_tokens_sum'
        - 'vllm:request_decode_time_seconds_bucket'
        - 'vllm:request_decode_time_seconds_sum'
        - 'vllm:inter_token_latency_seconds_bucket'
        - 'vllm:inter_token_latency_seconds_count'
        - 'vllm:inter_token_latency_seconds_sum'
        - 'vllm:request_time_per_output_token_seconds_bucket'
        - 'vllm:request_time_per_output_token_seconds_sum'
      charts:
        - title: Generated Tokens
          context: generation_throughput
          units: tokens/s
          dimensions:
            - selector: 'vllm:generation_tokens_total'
              name: generated

        - title: Output Size
          context: output_size
          units: observations/s
          dimensions:
            - selector: 'vllm:request_generation_tokens_bucket'

        - title: Decode Time
          context: decode_time
          units: observations/s
          dimensions:
            - selector: 'vllm:request_decode_time_seconds_bucket'

        - title: Inter-Token Latency
          context: inter_token_latency
          units: observations/s
          dimensions:
            - selector: 'vllm:inter_token_latency_seconds_bucket'

        - title: Mean Output-Token Time
          context: mean_output_token_time
          units: observations/s
          dimensions:
            - selector: 'vllm:request_time_per_output_token_seconds_bucket'

        - title: Output Token Volume
          context: output_token_volume
          units: tokens/s
          dimensions:
            - selector: 'vllm:request_generation_tokens_sum'
              name: output_tokens

        - title: Completed Request Decode Time
          context: completed_time
          units: seconds/s
          dimensions:
            - selector: 'vllm:request_decode_time_seconds_sum'
              name: time

        - title: Inter-Token Intervals
          context: inter_token_intervals
          units: intervals/s
          dimensions:
            - selector: 'vllm:inter_token_latency_seconds_count'
              name: intervals

        - title: Inter-Token Interval Time
          context: inter_token_interval_time
          units: seconds/s
          dimensions:
            - selector: 'vllm:inter_token_latency_seconds_sum'
              name: intervals

        - title: Accumulated Mean Output-Token Time
          context: accumulated_mean_output_token_time
          units: seconds/s
          dimensions:
            - selector: 'vllm:request_time_per_output_token_seconds_sum'
              name: request_means

    - family: Engine Execution
      context_namespace: engine_execution
      chart_defaults:
        instances:
          by_labels: [model_name, engine]
          optional_by_labels: [ReplicaId, WorkerId]
      metrics:
        - 'vllm:request_inference_time_seconds_bucket'
        - 'vllm:request_inference_time_seconds_sum'
        - 'vllm:iteration_tokens_total_bucket'
        - 'vllm:iteration_tokens_total_count'
        - 'vllm:iteration_tokens_total_sum'
        - 'vllm:estimated_flops_per_gpu_total'
        - 'vllm:estimated_read_bytes_per_gpu_total'
        - 'vllm:estimated_write_bytes_per_gpu_total'
      charts:
        - title: Inference Time
          context: inference_time
          units: observations/s
          dimensions:
            - selector: 'vllm:request_inference_time_seconds_bucket'

        - title: Completed Request Inference Time
          context: completed_time
          units: seconds/s
          dimensions:
            - selector: 'vllm:request_inference_time_seconds_sum'
              name: time

        - title: Tokens per Engine Step
          context: tokens_per_step
          units: observations/s
          dimensions:
            - selector: 'vllm:iteration_tokens_total_bucket'

        - title: Engine Steps
          context: engine_steps
          units: steps/s
          dimensions:
            - selector: 'vllm:iteration_tokens_total_count'
              name: steps

        - title: Engine Step Token Volume
          context: step_token_volume
          units: tokens/s
          dimensions:
            - selector: 'vllm:iteration_tokens_total_sum'
              name: tokens

        - title: Estimated Compute per GPU
          context: estimated_compute
          units: GFLOP/s/GPU
          dimensions:
            - selector: 'vllm:estimated_flops_per_gpu_total'
              name: compute
              options:
                divisor: 1000000000

        - title: Estimated Memory Bandwidth per GPU
          context: estimated_memory_bandwidth
          units: GB/s/GPU
          dimensions:
            - selector: 'vllm:estimated_read_bytes_per_gpu_total'
              name: read
              options:
                divisor: 1000000000
            - selector: 'vllm:estimated_write_bytes_per_gpu_total'
              name: write
              options:
                divisor: 1000000000

    - family: KV Cache
      context_namespace: kv_cache
      chart_defaults:
        instances:
          by_labels: [model_name, engine]
          optional_by_labels: [ReplicaId, WorkerId]
      metrics:
        - 'vllm:kv_cache_usage_perc'
        - 'vllm:prefix_cache_queries_total'
        - 'vllm:prefix_cache_hits_total'
        - 'vllm:external_prefix_cache_queries_total'
        - 'vllm:external_prefix_cache_hits_total'
        - 'vllm:mm_cache_queries_total'
        - 'vllm:mm_cache_hits_total'
      charts:
        - title: KV Cache Usage
          context: usage
          units: percentage
          dimensions:
            - selector: 'vllm:kv_cache_usage_perc'
              name: used
              options:
                multiplier: 100

        - title: Local Prefix Cache
          context: local_prefix
          units: tokens/s
          dimensions:
            - selector: 'vllm:prefix_cache_queries_total'
              name: queries
            - selector: 'vllm:prefix_cache_hits_total'
              name: hits

        - title: External Prefix Cache
          context: external_prefix
          units: tokens/s
          dimensions:
            - selector: 'vllm:external_prefix_cache_queries_total'
              name: queries
            - selector: 'vllm:external_prefix_cache_hits_total'
              name: hits

        - title: Multimodal Cache
          context: multimodal
          units: items/s
          dimensions:
            - selector: 'vllm:mm_cache_queries_total'
              name: queries
            - selector: 'vllm:mm_cache_hits_total'
              name: hits

    - family: KV Cache Residency
      context_namespace: kv_cache_residency
      chart_defaults:
        instances:
          by_labels: [model_name, engine]
          optional_by_labels: [ReplicaId, WorkerId]
      metrics:
        - 'vllm:kv_block_lifetime_seconds_bucket'
        - 'vllm:kv_block_lifetime_seconds_count'
        - 'vllm:kv_block_lifetime_seconds_sum'
        - 'vllm:kv_block_idle_before_evict_seconds_bucket'
        - 'vllm:kv_block_idle_before_evict_seconds_sum'
        - 'vllm:kv_block_reuse_gap_seconds_bucket'
        - 'vllm:kv_block_reuse_gap_seconds_count'
        - 'vllm:kv_block_reuse_gap_seconds_sum'
      charts:
        - title: KV Block Lifetime
          context: block_lifetime
          units: observations/s
          dimensions:
            - selector: 'vllm:kv_block_lifetime_seconds_bucket'

        - title: KV Block Idle Time Before Eviction
          context: idle_before_eviction
          units: observations/s
          dimensions:
            - selector: 'vllm:kv_block_idle_before_evict_seconds_bucket'

        - title: KV Block Reuse Gap
          context: reuse_gap
          units: observations/s
          dimensions:
            - selector: 'vllm:kv_block_reuse_gap_seconds_bucket'

        - title: KV Cache Events
          context: events
          units: blocks/s
          dimensions:
            - selector: 'vllm:kv_block_lifetime_seconds_count'
              name: evictions
            - selector: 'vllm:kv_block_reuse_gap_seconds_count'
              name: reuse_gaps

        - title: Accumulated KV Residency Time
          context: accumulated_time
          units: seconds/s
          dimensions:
            - selector: 'vllm:kv_block_lifetime_seconds_sum'
              name: lifetime
            - selector: 'vllm:kv_block_idle_before_evict_seconds_sum'
              name: idle_before_eviction
            - selector: 'vllm:kv_block_reuse_gap_seconds_sum'
              name: reuse_gap

    - family: KV Offloading
      context_namespace: kv_offloading
      chart_defaults:
        instances:
          by_labels: [model_name, engine]
          optional_by_labels: [ReplicaId, WorkerId]
      metrics:
        - 'vllm:kv_offload_load_bytes_total'
        - 'vllm:kv_offload_load_time_total'
        - 'vllm:kv_offload_load_size_bucket'
        - 'vllm:kv_offload_load_size_count'
        - 'vllm:kv_offload_store_bytes_total'
        - 'vllm:kv_offload_store_time_total'
        - 'vllm:kv_offload_store_size_bucket'
        - 'vllm:kv_offload_store_size_count'
        - 'vllm:kv_offload_lookup_sync_delay_seconds_bucket'
        - 'vllm:kv_offload_lookup_sync_delay_seconds_count'
        - 'vllm:kv_offload_lookup_sync_delay_seconds_sum'
        - 'vllm:kv_offload_lookup_async_delay_seconds_bucket'
        - 'vllm:kv_offload_lookup_async_delay_seconds_count'
        - 'vllm:kv_offload_lookup_async_delay_seconds_sum'
        - 'vllm:kv_offload_allocation_failure_total'
        - 'vllm:kv_offload_cpu_cache_usage_perc'
        - 'vllm:kv_offload_cpu_cache_write_usage_perc'
        - 'vllm:kv_offload_cpu_cache_read_usage_perc'
        - 'vllm:kv_offload_cpu_allocation_size_bucket'
        - 'vllm:kv_offload_cpu_allocation_size_count'
        - 'vllm:kv_offload_cpu_allocation_size_sum'
        - 'vllm:kv_offload_stores_skipped_total'
        - 'vllm:kv_offload_tiering_lookup_sync_delay_seconds_bucket'
        - 'vllm:kv_offload_tiering_lookup_sync_delay_seconds_count'
        - 'vllm:kv_offload_tiering_lookup_sync_delay_seconds_sum'
        - 'vllm:kv_offload_tiering_lookup_async_delay_seconds_bucket'
        - 'vllm:kv_offload_tiering_lookup_async_delay_seconds_count'
        - 'vllm:kv_offload_tiering_lookup_async_delay_seconds_sum'
      charts:
        - title: KV Offload Load Size
          context: load_size
          units: observations/s
          dimensions:
            - selector: 'vllm:kv_offload_load_size_bucket'

        - title: KV Offload Store Size
          context: store_size
          units: observations/s
          dimensions:
            - selector: 'vllm:kv_offload_store_size_bucket'

        - title: KV Offload Transfer Operations
          context: transfer_operations
          units: operations/s
          dimensions:
            - selector: 'vllm:kv_offload_load_size_count'
              name: loads
            - selector: 'vllm:kv_offload_store_size_count'
              name: stores

        - title: KV Offload Transfer Throughput
          context: transfer_bytes
          units: bytes/s
          dimensions:
            - selector: 'vllm:kv_offload_load_bytes_total'
              name: loaded
            - selector: 'vllm:kv_offload_store_bytes_total'
              name: stored

        - title: Completed KV Offload Transfer Time
          context: completed_transfer_time
          units: seconds/s
          dimensions:
            - selector: 'vllm:kv_offload_load_time_total'
              name: load
            - selector: 'vllm:kv_offload_store_time_total'
              name: store

        - title: KV Offload Synchronous Lookup Delay
          context: lookup_sync_delay
          units: observations/s
          dimensions:
            - selector: 'vllm:kv_offload_lookup_sync_delay_seconds_bucket'

        - title: KV Offload Asynchronous Lookup Delay
          context: lookup_async_delay
          units: observations/s
          dimensions:
            - selector: 'vllm:kv_offload_lookup_async_delay_seconds_bucket'

        - title: KV Offload Lookup Measurements
          context: lookup_measurements
          units: lookups/s
          dimensions:
            - selector: 'vllm:kv_offload_lookup_sync_delay_seconds_count'
              name: synchronous
            - selector: 'vllm:kv_offload_lookup_async_delay_seconds_count'
              name: asynchronous

        - title: KV Offload Lookup Delay Accumulation
          context: lookup_delay_accumulation
          units: seconds/s
          dimensions:
            - selector: 'vllm:kv_offload_lookup_sync_delay_seconds_sum'
              name: synchronous
            - selector: 'vllm:kv_offload_lookup_async_delay_seconds_sum'
              name: asynchronous

        - title: CPU KV Cache Usage
          context: cpu_cache_usage
          units: percentage
          dimensions:
            - selector: 'vllm:kv_offload_cpu_cache_usage_perc'
              name: total
              options:
                multiplier: 100
            - selector: 'vllm:kv_offload_cpu_cache_write_usage_perc'
              name: writes
              options:
                multiplier: 100
            - selector: 'vllm:kv_offload_cpu_cache_read_usage_perc'
              name: reads
              options:
                multiplier: 100

        - title: CPU KV Allocation Size
          context: cpu_allocation_size
          units: observations/s
          dimensions:
            - selector: 'vllm:kv_offload_cpu_allocation_size_bucket'

        - title: CPU KV Allocation Measurements
          context: cpu_allocation_measurements
          units: allocations/s
          dimensions:
            - selector: 'vllm:kv_offload_cpu_allocation_size_count'
              name: allocations

        - title: CPU KV Allocation Volume
          context: cpu_allocation_volume
          units: blocks/s
          dimensions:
            - selector: 'vllm:kv_offload_cpu_allocation_size_sum'
              name: blocks

        - title: KV Offload Admission Outcomes
          context: admission_outcomes
          units: events/s
          dimensions:
            - selector: 'vllm:kv_offload_allocation_failure_total'
              name: allocation_failures
            - selector: 'vllm:kv_offload_stores_skipped_total'
              name: stores_skipped

        - title: Tiered KV Offload Synchronous Lookup Delay
          context: tiering_lookup_sync_delay
          units: observations/s
          dimensions:
            - selector: 'vllm:kv_offload_tiering_lookup_sync_delay_seconds_bucket'

        - title: Tiered KV Offload Asynchronous Lookup Delay
          context: tiering_lookup_async_delay
          units: observations/s
          dimensions:
            - selector: 'vllm:kv_offload_tiering_lookup_async_delay_seconds_bucket'

        - title: Tiered KV Offload Lookup Measurements
          context: tiering_lookup_measurements
          units: lookups/s
          dimensions:
            - selector: 'vllm:kv_offload_tiering_lookup_sync_delay_seconds_count'
              name: synchronous
            - selector: 'vllm:kv_offload_tiering_lookup_async_delay_seconds_count'
              name: asynchronous

        - title: Tiered KV Offload Lookup Delay Accumulation
          context: tiering_lookup_delay_accumulation
          units: seconds/s
          dimensions:
            - selector: 'vllm:kv_offload_tiering_lookup_sync_delay_seconds_sum'
              name: synchronous
            - selector: 'vllm:kv_offload_tiering_lookup_async_delay_seconds_sum'
              name: asynchronous

    - family: NIXL Connector
      context_namespace: nixl_connector
      chart_defaults:
        instances:
          by_labels: [model_name, engine]
          optional_by_labels: [ReplicaId, WorkerId]
      metrics:
        - 'vllm:nixl_xfer_time_seconds_bucket'
        - 'vllm:nixl_xfer_time_seconds_count'
        - 'vllm:nixl_xfer_time_seconds_sum'
        - 'vllm:nixl_post_time_seconds_bucket'
        - 'vllm:nixl_post_time_seconds_sum'
        - 'vllm:nixl_bytes_transferred_bucket'
        - 'vllm:nixl_bytes_transferred_sum'
        - 'vllm:nixl_num_descriptors_bucket'
        - 'vllm:nixl_num_descriptors_sum'
        - 'vllm:nixl_num_failed_transfers_total'
        - 'vllm:nixl_num_failed_notifications_total'
        - 'vllm:nixl_num_kv_expired_reqs_total'
      charts:
        - title: NIXL Transfer Duration
          context: transfer_duration
          units: observations/s
          dimensions:
            - selector: 'vllm:nixl_xfer_time_seconds_bucket'

        - title: NIXL Transfer Post Time
          context: post_time
          units: observations/s
          dimensions:
            - selector: 'vllm:nixl_post_time_seconds_bucket'

        - title: NIXL Transfer Size
          context: transfer_size
          units: observations/s
          dimensions:
            - selector: 'vllm:nixl_bytes_transferred_bucket'

        - title: NIXL Transfer Descriptors
          context: transfer_descriptors
          units: observations/s
          dimensions:
            - selector: 'vllm:nixl_num_descriptors_bucket'

        - title: Successful NIXL Transfers
          context: successful_transfers
          units: transfers/s
          dimensions:
            - selector: 'vllm:nixl_xfer_time_seconds_count'
              name: transfers

        - title: Completed NIXL Transfer Time
          context: completed_transfer_time
          units: seconds/s
          dimensions:
            - selector: 'vllm:nixl_xfer_time_seconds_sum'
              name: transfer
            - selector: 'vllm:nixl_post_time_seconds_sum'
              name: post

        - title: NIXL Transfer Throughput
          context: transfer_throughput
          units: bytes/s
          dimensions:
            - selector: 'vllm:nixl_bytes_transferred_sum'
              name: transferred

        - title: NIXL Descriptor Throughput
          context: descriptor_throughput
          units: descriptors/s
          dimensions:
            - selector: 'vllm:nixl_num_descriptors_sum'
              name: descriptors

        - title: NIXL Failures
          context: failures
          units: failures/s
          dimensions:
            - selector: 'vllm:nixl_num_failed_transfers_total'
              name: transfers
            - selector: 'vllm:nixl_num_failed_notifications_total'
              name: notifications

        - title: NIXL Requests with Expired KV
          context: expired_requests
          units: requests/s
          dimensions:
            - selector: 'vllm:nixl_num_kv_expired_reqs_total'
              name: expired

    - family: HF3FS Connector
      context_namespace: hf3fs_connector
      chart_defaults:
        instances:
          by_labels: [model_name, engine]
          optional_by_labels: [ReplicaId, WorkerId]
      metrics:
        - 'vllm:hf3fs_save_duration_seconds_bucket'
        - 'vllm:hf3fs_save_duration_seconds_count'
        - 'vllm:hf3fs_save_duration_seconds_sum'
        - 'vllm:hf3fs_load_duration_seconds_bucket'
        - 'vllm:hf3fs_load_duration_seconds_count'
        - 'vllm:hf3fs_load_duration_seconds_sum'
        - 'vllm:hf3fs_num_failed_save_total'
        - 'vllm:hf3fs_num_failed_load_total'
      charts:
        - title: HF3FS Save Duration
          context: save_duration
          units: observations/s
          dimensions:
            - selector: 'vllm:hf3fs_save_duration_seconds_bucket'

        - title: HF3FS Load Duration
          context: load_duration
          units: observations/s
          dimensions:
            - selector: 'vllm:hf3fs_load_duration_seconds_bucket'

        - title: HF3FS Transfer Measurements
          context: transfer_measurements
          units: operations/s
          dimensions:
            - selector: 'vllm:hf3fs_save_duration_seconds_count'
              name: saves
            - selector: 'vllm:hf3fs_load_duration_seconds_count'
              name: loads

        - title: Completed HF3FS Transfer Time
          context: completed_transfer_time
          units: seconds/s
          dimensions:
            - selector: 'vllm:hf3fs_save_duration_seconds_sum'
              name: saves
            - selector: 'vllm:hf3fs_load_duration_seconds_sum'
              name: loads

        - title: HF3FS Transfer Failures
          context: failures
          units: failures/s
          dimensions:
            - selector: 'vllm:hf3fs_num_failed_save_total'
              name: saves
            - selector: 'vllm:hf3fs_num_failed_load_total'
              name: loads

    - family: Mooncake Connector
      context_namespace: mooncake_connector
      groups:
        - family: Operation Timing
          context_namespace: timing
          chart_defaults:
            instances:
              by_labels: [model_name, engine, operation, status]
              optional_by_labels: [ReplicaId, WorkerId]
          metrics:
            - 'vllm:mooncake_store_operation_time_seconds_bucket'
            - 'vllm:mooncake_store_operation_time_seconds_sum'
            - 'vllm:mooncake_store_operation_total'
          charts:
            - title: Mooncake Store Operation Time
              context: duration
              units: observations/s
              dimensions:
                - selector: 'vllm:mooncake_store_operation_time_seconds_bucket'

            - title: Mooncake Store Operations
              context: operations
              units: operations/s
              dimensions:
                - selector: 'vllm:mooncake_store_operation_total'
                  name: operations

            - title: Completed Mooncake Store Operation Time
              context: completed_time
              units: seconds/s
              dimensions:
                - selector: 'vllm:mooncake_store_operation_time_seconds_sum'
                  name: time

        - family: Operation Volume
          context_namespace: volume
          chart_defaults:
            instances:
              by_labels: [model_name, engine, operation, status]
              optional_by_labels: [ReplicaId, WorkerId]
          metrics:
            - 'vllm:mooncake_store_operation_keys_total'
            - 'vllm:mooncake_store_operation_bytes_total'
            - 'vllm:mooncake_store_operation_failed_keys_total'
          charts:
            - title: Mooncake Store Key Throughput
              context: keys
              units: keys/s
              dimensions:
                - selector: 'vllm:mooncake_store_operation_keys_total'
                  name: keys

            - title: Mooncake Store Byte Throughput
              context: bytes
              units: bytes/s
              dimensions:
                - selector: 'vllm:mooncake_store_operation_bytes_total'
                  name: bytes

            - title: Mooncake Store Failed Keys
              context: failed_keys
              units: keys/s
              dimensions:
                - selector: 'vllm:mooncake_store_operation_failed_keys_total'
                  name: failed

    - family: Speculative Decoding
      context_namespace: speculative_decoding
      chart_defaults:
        instances:
          by_labels: [model_name, engine]
          optional_by_labels: [ReplicaId, WorkerId]
      metrics:
        - 'vllm:spec_decode_num_drafts_total'
        - 'vllm:spec_decode_num_draft_tokens_total'
        - 'vllm:spec_decode_num_accepted_tokens_total'
        - 'vllm:spec_decode_num_accepted_tokens_per_pos_total'
      charts:
        - title: Drafts
          context: drafts
          units: drafts/s
          dimensions:
            - selector: 'vllm:spec_decode_num_drafts_total'
              name: drafts

        - title: Draft Token Outcomes
          context: token_outcomes
          units: tokens/s
          dimensions:
            - selector: 'vllm:spec_decode_num_draft_tokens_total'
              name: proposed
            - selector: 'vllm:spec_decode_num_accepted_tokens_total'
              name: accepted

        - title: Accepted Tokens by Position
          context: accepted_by_position
          units: tokens/s
          dimensions:
            - selector: 'vllm:spec_decode_num_accepted_tokens_per_pos_total'
              name_from_label: position

    - family: Diffusion Decoding
      context_namespace: diffusion_decoding
      chart_defaults:
        instances:
          by_labels: [model_name, engine]
          optional_by_labels: [ReplicaId, WorkerId]
      metrics:
        - 'vllm:diffusion_num_denoising_steps_total'
        - 'vllm:diffusion_num_canvas_positions_total'
        - 'vllm:diffusion_num_committed_tokens_total'
      charts:
        - title: Diffusion Denoising Steps
          context: denoising_steps
          units: steps/s
          dimensions:
            - selector: 'vllm:diffusion_num_denoising_steps_total'
              name: steps

        - title: Diffusion Canvas Positions
          context: canvas_positions
          units: positions/s
          dimensions:
            - selector: 'vllm:diffusion_num_canvas_positions_total'
              name: positions

        - title: Diffusion Committed Tokens
          context: committed_tokens
          units: tokens/s
          dimensions:
            - selector: 'vllm:diffusion_num_committed_tokens_total'
              name: committed

    - family: WebSocket Service
      context_namespace: websocket_service
      chart_defaults:
        label_promotion: []
      metrics:
        - 'vllm:websocket_connections_active'
        - 'vllm:websocket_connections_total'
        - 'vllm:websocket_connection_duration_seconds_bucket'
        - 'vllm:websocket_connection_duration_seconds_count'
        - 'vllm:websocket_connection_duration_seconds_sum'
      charts:
        - title: Active WebSocket Connections
          context: active_connections
          units: connections
          dimensions:
            - selector: 'vllm:websocket_connections_active'
              name: active

        - title: WebSocket Connection Lifecycle
          context: connection_lifecycle
          units: connections/s
          dimensions:
            - selector: 'vllm:websocket_connections_total'
              name: opened
            - selector: 'vllm:websocket_connection_duration_seconds_count'
              name: closed

        - title: WebSocket Connection Duration
          context: connection_duration
          units: observations/s
          dimensions:
            - selector: 'vllm:websocket_connection_duration_seconds_bucket'

        - title: Completed WebSocket Connection Time
          context: completed_connection_time
          units: seconds/s
          dimensions:
            - selector: 'vllm:websocket_connection_duration_seconds_sum'
              name: time

    - family: Tool Parsing
      context_namespace: tool_parsing
      chart_defaults:
        label_promotion: []
        instances:
          by_labels: [model_name, request_type, mode]
      metrics:
        - 'vllm:tool_call_parser_invocations_total'
      charts:
        - title: Tool Parser Invocations
          context: invocations
          units: invocations/s
          instances:
            by_labels: [model_name, request_type, mode, outcome]
          dimensions:
            - selector: 'vllm:tool_call_parser_invocations_total'
              name: invocations
