From 00e607111a550264b23505e82b56a05abaf6a0c0 Mon Sep 17 00:00:00 2001 From: Yineng Zhang Date: Tue, 30 Dec 2025 09:09:41 -1000 Subject: [PATCH] [Auto Sync] Update request_metrics_exporter.py (20251230) (#16183) Co-authored-by: github-actions[bot] Co-authored-by: Scott Lee --- python/sglang/srt/managers/request_metrics_exporter.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/python/sglang/srt/managers/request_metrics_exporter.py b/python/sglang/srt/managers/request_metrics_exporter.py index 95f1fda8f..2ecc655b7 100644 --- a/python/sglang/srt/managers/request_metrics_exporter.py +++ b/python/sglang/srt/managers/request_metrics_exporter.py @@ -12,6 +12,10 @@ from sglang.srt.server_args import ServerArgs logger = logging.getLogger(__name__) +# Fields that should always be excluded from request parameters +# because they contain non-JSON-serializable objects (e.g., ImageData, tensors) +ALWAYS_EXCLUDE_FIELDS = {"image_data", "video_data", "audio_data", "input_embeds"} + class RequestMetricsExporter(ABC): """Abstract base class for exporting request-level performance metrics to a data destination.""" @@ -35,7 +39,11 @@ class RequestMetricsExporter(ABC): request_params = {} for field in dataclasses.fields(obj): field_name = field.name - if field_name not in self.obj_skip_names: + # Skip fields in obj_skip_names or fields that are always excluded (not JSON serializable) + if ( + field_name not in self.obj_skip_names + and field_name not in ALWAYS_EXCLUDE_FIELDS + ): value = getattr(obj, field_name) # Convert to serializable format if value is not None: