[Bugfix] Remove unsupported comma-separated detailed trace values (#55702)

Signed-off-by: git-jxj <65210887+git-jxj@users.noreply.github.com> Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com> Co-authored-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>

jxj committed Sep 17, 2026 at 02:44 UTC 6b6bf6b3c35ac72e4876a6fe0925608abcf8316f
2 files changed +1 -20
vllm/config/observability.py
+1 -12
@@ -2,7 +2,7 @@
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4 from functools import cached_property
5 -from typing import Any, Literal, cast
5 +from typing import Any, Literal
6
7 from packaging.version import parse
8 from pydantic import Field, field_validator, model_validator
@@ -150,17 +150,6 @@ class ObservabilityConfig:
150 )
151 return value
152
153 - @field_validator("collect_detailed_traces")
154 - @classmethod
155 - def _validate_collect_detailed_traces(
156 - cls, value: list[DetailedTraceModules] | None
157 - ) -> list[DetailedTraceModules] | None:
158 - """Handle the legacy case where users might provide a comma-separated
159 - string instead of a list of strings."""
160 - if value is not None and len(value) == 1 and "," in value[0]:
161 - value = cast(list[DetailedTraceModules], value[0].split(","))
162 - return value
163 -
153 @model_validator(mode="after")
154 def _validate_tracing_config(self):
155 if self.collect_detailed_traces and not self.otlp_traces_endpoint:
vllm/engine/arg_utils.py
-8
@@ -10,7 +10,6 @@ import os
10 import sys
11 from collections.abc import Callable
12 from dataclasses import MISSING, asdict, dataclass, fields, is_dataclass
13 -from itertools import permutations
13 from types import UnionType
14 from typing import (
15 TYPE_CHECKING,
@@ -1523,13 +1522,6 @@ class EngineArgs:
1522 observability_group.add_argument(
1523 "--otlp-traces-endpoint", **observability_kwargs["otlp_traces_endpoint"]
1524 )
1526 - # TODO: generalise this special case
1527 - choices = observability_kwargs["collect_detailed_traces"]["choices"]
1528 - metavar = f"{{{','.join(str(c) for c in choices)}}}"
1529 - observability_kwargs["collect_detailed_traces"]["metavar"] = metavar
1530 - observability_kwargs["collect_detailed_traces"]["choices"] += [
1531 - ",".join(p) for p in permutations(get_args(DetailedTraceModules), r=2)
1532 - ]
1525 observability_group.add_argument(
1526 "--collect-detailed-traces",
1527 **observability_kwargs["collect_detailed_traces"],