Non-scalar span attribute makes the server reject the whole event batch
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 68/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- python
- Lĩnh vực
- observability-sre
Hướng nghiên cứu
Start with SpanContextManager.set_attributes() in wildedge/client.py:223 and the span constructor, then run the provided reproduction to confirm the 422 and dropped batch. Decide how non-scalar values should be handled, including whether to warn or coerce them, and update the relevant tests if present. Done means a non-scalar attribute no longer causes unrelated events in the batch to be rejected.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
What happens
SpanContextManager.set_attributes() (wildedge/client.py:223) accepts any value. If one value is a list, e.g. span.set_attributes(rejections=["English", "too long"]), ingest answers 422 (span attributes['rejections'] must be a scalar) and every event in that batch is dropped: model loads, inferences and spans that had nothing to do with the bad attribute.
Found while integrating a llama.cpp + Whisper app; a whole run's telemetry disappeared because of one attribute.
Expected
One bad value should never cost unrelated events. Options, roughly in order of preference:
- Validate in
set_attributes()/ span constructor: drop (orstr()) non-scalar values and log a warning once. - Coerce lists of scalars to a joined string (plus a
<key>_count?) — that's what we did app-side as a workaround. - On a 422 that names a field, retry the batch without the offending event instead of dropping all of it.
Repro
client = wildedge.init()
with client.trace(run_id="r"):
with client.span(kind="custom", name="s") as span:
span.set_attributes(tags=["a", "b"])
client.close(timeout=5) # batch rejected with 422, nothing ingested
SDK 0.2.2.
🤖 Generated with Claude Code
- Ngôn ngữ chính
- Python
- Star
- 17
- Fork
- 1
- Merge trung bình
- 23 phút
- Pull request đã merge (30 ngày)
- 7
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của wild-edge/wildedge-python
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
wild-edge/wildedge-python#63 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
wild-edge/wildedge-python#62 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 72/100
wild-edge/wildedge-python#65 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 72/100
wild-edge/wildedge-python#64 ·
-
vLLM integrationCó thể làm lại được @piotrekno1 đã nhận 119 ngày trước và không có pull request nào đang mở. Đang mở
wild-edge/wildedge-python#38 · 1 người được giao ·
Tất cả issue của wild-edge/wildedge-python
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 79/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
mohitmishra786/readprism#322 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
API-key credentials accept a blank key: empty via the API, spaces-only via the builder's Add API key dialogCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
Significant-Gravitas/AutoGPT#15727 ·
Maintainer thường phản hồi trong vòng 1 ngày