diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md index f485c8ce593e..c361f813b1e7 100644 --- a/docs/en/changes/changes.md +++ b/docs/en/changes/changes.md @@ -168,6 +168,7 @@ * Update Istio E2E test versions: remove EOL 1.20.0, add 1.25.0–1.29.0 for ALS/Metrics/Ambient tests. Update Rover with Istio Process test from 1.15.0 to 1.28.0 with Kubernetes 1.28. * Support Virtual-GenAI monitoring. * Fix on-demand pod log parsing failure by replacing invalid `DateTimeFormatter` pattern with `ISO_OFFSET_DATE_TIME`. +* Fix Zipkin receiver compatibility with application/x-protobuf Content-Type. #### UI diff --git a/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/handler/ZipkinSpanHTTPHandler.java b/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/handler/ZipkinSpanHTTPHandler.java index 2e811f5c3ea5..fabed97d09e1 100644 --- a/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/handler/ZipkinSpanHTTPHandler.java +++ b/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/handler/ZipkinSpanHTTPHandler.java @@ -22,6 +22,7 @@ import com.linecorp.armeria.common.HttpRequest; import com.linecorp.armeria.common.HttpResponse; import com.linecorp.armeria.common.HttpStatus; +import com.linecorp.armeria.server.annotation.Consumes; import com.linecorp.armeria.server.annotation.ConsumesJson; import com.linecorp.armeria.server.annotation.ConsumesProtobuf; import com.linecorp.armeria.server.annotation.Post; @@ -82,6 +83,12 @@ public HttpResponse collectV2ProtobufSpans(HttpRequest req) { return doCollectSpans(SpanBytesDecoder.PROTO3, req); } + @Post("/api/v2/spans") + @Consumes("application/x-protobuf") + public HttpResponse collectV2XProtobufSpans(HttpRequest req) { + return doCollectSpans(SpanBytesDecoder.PROTO3, req); + } + @Post("/api/v1/spans") public HttpResponse collectV1Spans(HttpRequest req) { return doCollectSpans(SpanBytesDecoder.JSON_V1, req);