This is an automated email from the ASF dual-hosted git repository. wankai pushed a commit to branch sw-traceql in repository https://gitbox.apache.org/repos/asf/skywalking.git
commit c3333f05d4fe6fbb5ac430555cfa6748871cbefd Author: wankai123 <[email protected]> AuthorDate: Thu Mar 26 10:31:51 2026 +0800 add head --- .../traceql/handler/SkyWalkingTraceQLApiHandler.java | 11 +++++++---- .../oap/query/traceql/handler/TraceQLApiHandler.java | 3 ++- .../query/traceql/handler/ZipkinTraceQLApiHandler.java | 9 +++++---- .../oap/query/zipkin/ZipkinQueryService.java | 18 ++++++++++++++++++ 4 files changed, 32 insertions(+), 9 deletions(-) diff --git a/oap-server/server-query-plugin/traceql-plugin/src/main/java/org/apache/skywalking/oap/query/traceql/handler/SkyWalkingTraceQLApiHandler.java b/oap-server/server-query-plugin/traceql-plugin/src/main/java/org/apache/skywalking/oap/query/traceql/handler/SkyWalkingTraceQLApiHandler.java index 26cf06ad36..95dc78e5fa 100644 --- a/oap-server/server-query-plugin/traceql-plugin/src/main/java/org/apache/skywalking/oap/query/traceql/handler/SkyWalkingTraceQLApiHandler.java +++ b/oap-server/server-query-plugin/traceql-plugin/src/main/java/org/apache/skywalking/oap/query/traceql/handler/SkyWalkingTraceQLApiHandler.java @@ -30,6 +30,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; +import java.util.stream.Collectors; import org.apache.commons.codec.DecoderException; import org.apache.skywalking.oap.query.traceql.TraceQLConfig; import org.apache.skywalking.oap.query.traceql.converter.OTLPConverter; @@ -43,6 +44,7 @@ import org.apache.skywalking.oap.query.traceql.exception.IllegalExpressionExcept import org.apache.skywalking.oap.query.traceql.rt.TraceQLParseResult; import org.apache.skywalking.oap.query.traceql.rt.TraceQLQueryParams; import org.apache.skywalking.oap.query.traceql.rt.TraceQLQueryParser; +import org.apache.skywalking.oap.server.core.Const; import org.apache.skywalking.oap.server.core.CoreModule; import org.apache.skywalking.oap.server.core.analysis.IDManager; import org.apache.skywalking.oap.server.core.analysis.Layer; @@ -84,9 +86,9 @@ public class SkyWalkingTraceQLApiHandler extends TraceQLApiHandler { .provider() .getService(MetadataQueryService.class); this.traceQLConfig = config; - this.allowedTags = new HashSet<>(Arrays.asList( - config.getSkywalkingTracesListResultTags().split(",") - )); + this.allowedTags = Arrays.stream(config.getSkywalkingTracesListResultTags().trim().split(Const.COMMA)) + .map(String::trim) + .collect(Collectors.toSet()); // Add fixed tags this.allowedTags.add(SPAN_KIND); this.allowedTags.add(SERVICE_NAME); @@ -262,6 +264,7 @@ public class SkyWalkingTraceQLApiHandler extends TraceQLApiHandler { // Handle special tags: resource.service.name or resource.service if (tagName.equals(RESOURCE_SERVICE_NAME) || tagName.equals(RESOURCE_SERVICE)) { // Query service names from MetadataQueryService with Layer.GENERAL filter + // The MESH trace could use zipkin reciver and query List<org.apache.skywalking.oap.server.core.query.type.Service> services = metadataQueryService.listServices(Layer.GENERAL.name(), null); @@ -352,7 +355,7 @@ public class SkyWalkingTraceQLApiHandler extends TraceQLApiHandler { * Convert Protobuf TraceByIDResponse to JSON and build HTTP response. */ private HttpResponse buildJsonHttpResponseFromProtobuf(TraceByIDResponse protoResponse) throws JsonProcessingException { - OtlpTraceResponse jsonResponse = OTLPConverter.convertProtobufToJson(protoResponse, OTLPConverter.TraceType.SkyWalking); + OtlpTraceResponse jsonResponse = OTLPConverter.convertProtobufToJson(protoResponse, OTLPConverter.TraceType.SKYWALKING); return successResponse(jsonResponse); } diff --git a/oap-server/server-query-plugin/traceql-plugin/src/main/java/org/apache/skywalking/oap/query/traceql/handler/TraceQLApiHandler.java b/oap-server/server-query-plugin/traceql-plugin/src/main/java/org/apache/skywalking/oap/query/traceql/handler/TraceQLApiHandler.java index 1887e283e3..3b3a3d075f 100644 --- a/oap-server/server-query-plugin/traceql-plugin/src/main/java/org/apache/skywalking/oap/query/traceql/handler/TraceQLApiHandler.java +++ b/oap-server/server-query-plugin/traceql-plugin/src/main/java/org/apache/skywalking/oap/query/traceql/handler/TraceQLApiHandler.java @@ -128,7 +128,8 @@ public abstract class TraceQLApiHandler { * Query trace by trace ID. * GET /api/v2/traces/{traceId} * - * @param traceId The trace ID + * @param traceId The trace ID, for SkyWalking native traces, the original traceId have to encode to the UTF-8 + * you can get the encoded traceId from traces list query API `/api/search`. * @param accept Accept header for response format * @return Trace data in OTLP format */ diff --git a/oap-server/server-query-plugin/traceql-plugin/src/main/java/org/apache/skywalking/oap/query/traceql/handler/ZipkinTraceQLApiHandler.java b/oap-server/server-query-plugin/traceql-plugin/src/main/java/org/apache/skywalking/oap/query/traceql/handler/ZipkinTraceQLApiHandler.java index 857731b18f..8e547c5c85 100644 --- a/oap-server/server-query-plugin/traceql-plugin/src/main/java/org/apache/skywalking/oap/query/traceql/handler/ZipkinTraceQLApiHandler.java +++ b/oap-server/server-query-plugin/traceql-plugin/src/main/java/org/apache/skywalking/oap/query/traceql/handler/ZipkinTraceQLApiHandler.java @@ -29,6 +29,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; +import java.util.stream.Collectors; import org.apache.commons.codec.DecoderException; import org.apache.skywalking.oap.query.traceql.TraceQLConfig; import org.apache.skywalking.oap.query.traceql.converter.OTLPConverter; @@ -71,9 +72,9 @@ public class ZipkinTraceQLApiHandler extends TraceQLApiHandler { .getService(TagAutoCompleteQueryService.class); this.zipkinQueryService = new ZipkinQueryService(moduleManager); this.traceQLConfig = config; - this.allowedTags = new HashSet<>(Arrays.asList( - config.getZipkinTracesListResultTags().split(Const.COMMA) - )); + this.allowedTags = Arrays.stream(config.getZipkinTracesListResultTags().trim().split(Const.COMMA)) + .map(String::trim) + .collect(Collectors.toSet()); // Add fixed tags this.allowedTags.add(SPAN_KIND); this.allowedTags.add(SERVICE_NAME); @@ -306,7 +307,7 @@ public class ZipkinTraceQLApiHandler extends TraceQLApiHandler { */ private HttpResponse buildJsonHttpResponseFromProtobuf(TraceByIDResponse protoResponse) throws JsonProcessingException { - OtlpTraceResponse jsonResponse = OTLPConverter.convertProtobufToJson(protoResponse, OTLPConverter.TraceType.Zipkin); + OtlpTraceResponse jsonResponse = OTLPConverter.convertProtobufToJson(protoResponse, OTLPConverter.TraceType.ZIPKIN); return successResponse(jsonResponse); } diff --git a/oap-server/server-query-plugin/zipkin-query-plugin/src/main/java/org/apache/skywalking/oap/query/zipkin/ZipkinQueryService.java b/oap-server/server-query-plugin/zipkin-query-plugin/src/main/java/org/apache/skywalking/oap/query/zipkin/ZipkinQueryService.java index 9feb215473..e93d123581 100644 --- a/oap-server/server-query-plugin/zipkin-query-plugin/src/main/java/org/apache/skywalking/oap/query/zipkin/ZipkinQueryService.java +++ b/oap-server/server-query-plugin/zipkin-query-plugin/src/main/java/org/apache/skywalking/oap/query/zipkin/ZipkinQueryService.java @@ -1,3 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + package org.apache.skywalking.oap.query.zipkin; import com.google.protobuf.InvalidProtocolBufferException;
