You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ha...@apache.org on 2025/09/09 12:46:01 UTC
(skywalking-banyandb-java-client) branch feat/trace-response created (now 8488614)
This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a change to branch feat/trace-response
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git
at 8488614 Restore changes
This branch includes the following new commits:
new 6595b49 Add trace model
new 83ae5c0 Update proto to use new trace response
new 34e72b6 Fix the failure of parsing the status code
new 560fc48 Restore stream functions
new 8488614 Restore changes
The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(skywalking-banyandb-java-client) 04/05: Restore stream functions
Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a commit to branch feat/trace-response
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git
commit 560fc48b8241bf0e880ed9844d241c3a324d835e
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Tue Sep 9 20:37:10 2025 +0800
Restore stream functions
Signed-off-by: Gao Hongtao <ha...@gmail.com>
---
.../banyandb/v1/client/BanyanDBClient.java | 29 ++++++++++++++++------
.../skywalking/banyandb/v1/client/StreamWrite.java | 10 ++++++++
.../v1/client/ITBanyanDBStreamQueryTests.java | 3 +--
3 files changed, 33 insertions(+), 9 deletions(-)
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
index bcae829..0cd45bb 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
@@ -400,15 +400,30 @@ public class BanyanDBClient implements Closeable {
}
/**
- * Build a trace bulk write processor.
+ * Build a StreamWrite request.
*
- * @param maxBulkSize the max size of each flush. The actual size is determined by the length of byte array.
- * @param flushInterval if given maxBulkSize is not reached in this period, the flush would be trigger
- * automatically. Unit is second.
- * @param concurrency the number of concurrency would run for the flush max.
- * @param timeout network timeout threshold in seconds.
- * @return trace bulk write processor
+ * @param group the group of the stream
+ * @param name the name of the stream
+ * @param elementId the primary key of the stream
+ * @param timestamp the timestamp of the stream
+ * @return the request to be built
*/
+ public StreamWrite createStreamWrite(String group, String name, final String elementId, long timestamp) throws BanyanDBException {
+ Preconditions.checkArgument(!Strings.isNullOrEmpty(group));
+ Preconditions.checkArgument(!Strings.isNullOrEmpty(name));
+ return new StreamWrite(this.metadataCache.findStreamMetadata(group, name), elementId, timestamp);
+ }
+
+ /**
+ * Build a trace bulk write processor.
+ *
+ * @param maxBulkSize the max size of each flush. The actual size is determined by the length of byte array.
+ * @param flushInterval if given maxBulkSize is not reached in this period, the flush would be trigger
+ * automatically. Unit is second.
+ * @param concurrency the number of concurrency would run for the flush max.
+ * @param timeout network timeout threshold in seconds.
+ * @return trace bulk write processor
+ */
public TraceBulkWriteProcessor buildTraceWriteProcessor(int maxBulkSize, int flushInterval, int concurrency, int timeout) {
checkState(this.traceServiceStub != null, "trace service is null");
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java
index c10d70d..ad84b3e 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java
@@ -50,6 +50,16 @@ public class StreamWrite extends AbstractWrite<BanyandbStream.WriteRequest> {
this.elementId = elementId;
}
+ /**
+ * Create a StreamWrite with initial timestamp.
+ *
+ * @param timestamp in milliseconds
+ */
+ public StreamWrite(MetadataCache.EntityMetadata streamMetadata, String elementId, long timestamp) {
+ this(streamMetadata, elementId);
+ this.timestamp = Optional.of(timestamp);
+ }
+
@Override
public StreamWrite tag(String tagName, Serializable<BanyandbModel.TagValue> tagValue) throws BanyanDBException {
return (StreamWrite) super.tag(tagName, tagValue);
diff --git a/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBStreamQueryTests.java b/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBStreamQueryTests.java
index c394138..c4f2573 100644
--- a/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBStreamQueryTests.java
+++ b/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBStreamQueryTests.java
@@ -94,7 +94,7 @@ public class ITBanyanDBStreamQueryTests extends BanyanDBClientTestCI {
String dbType = "SQL";
String dbInstance = "127.0.0.1:3306";
- StreamWrite streamWrite = client.createStreamWrite("sw_record", "trace", segmentId)
+ StreamWrite streamWrite = client.createStreamWrite("sw_record", "trace", segmentId, now.toEpochMilli())
.tag("data_binary", Value.binaryTagValue(byteData))
.tag("trace_id", Value.stringTagValue(traceId)) // 0
.tag("state", Value.longTagValue(state)) // 1
@@ -109,7 +109,6 @@ public class ITBanyanDBStreamQueryTests extends BanyanDBClientTestCI {
.tag("mq.broker", Value.stringTagValue(broker)) // 10
.tag("mq.topic", Value.stringTagValue(topic)) // 11
.tag("mq.queue", Value.stringTagValue(queue)); // 12
- streamWrite.setTimestamp(now.toEpochMilli());
CompletableFuture<Void> f = processor.add(streamWrite);
f.exceptionally(exp -> {
(skywalking-banyandb-java-client) 01/05: Add trace model
Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a commit to branch feat/trace-response
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git
commit 6595b49203a46b54957a14a3771d7365acbce115
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Mon Sep 1 16:14:27 2025 +0800
Add trace model
---
.../banyandb/v1/client/BanyanDBClient.java | 43 ++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
index bcae829..777aaf1 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
@@ -428,6 +428,49 @@ public class BanyanDBClient implements Closeable {
return new TraceWrite(this.metadataCache.findTraceMetadata(group, name));
}
+ /**
+ * Build a trace bulk write processor.
+ *
+ * @param maxBulkSize the max size of each flush. The actual size is determined by the length of byte array.
+ * @param flushInterval if given maxBulkSize is not reached in this period, the flush would be trigger
+ * automatically. Unit is second.
+ * @param concurrency the number of concurrency would run for the flush max.
+ * @param timeout network timeout threshold in seconds.
+ * @return trace bulk write processor
+ */
+ public TraceBulkWriteProcessor buildTraceWriteProcessor(int maxBulkSize, int flushInterval, int concurrency, int timeout) {
+ checkState(this.traceServiceStub != null, "trace service is null");
+
+ return new TraceBulkWriteProcessor(this, maxBulkSize, flushInterval, concurrency, timeout, WRITE_HISTOGRAM, options);
+ }
+
+ /**
+ * Build a TraceWrite request.
+ *
+ * @param group the group of the trace
+ * @param name the name of the trace
+ * @param timestamp the timestamp of the trace
+ * @return the request to be built
+ */
+ public TraceWrite createTraceWrite(String group, String name, long timestamp) throws BanyanDBException {
+ Preconditions.checkArgument(!Strings.isNullOrEmpty(group));
+ Preconditions.checkArgument(!Strings.isNullOrEmpty(name));
+ return new TraceWrite(this.metadataCache.findTraceMetadata(group, name), timestamp);
+ }
+
+ /**
+ * Build a TraceWrite request without initial timestamp.
+ *
+ * @param group the group of the trace
+ * @param name the name of the trace
+ * @return the request to be built
+ */
+ public TraceWrite createTraceWrite(String group, String name) throws BanyanDBException {
+ Preconditions.checkArgument(!Strings.isNullOrEmpty(group));
+ Preconditions.checkArgument(!Strings.isNullOrEmpty(name));
+ return new TraceWrite(this.metadataCache.findTraceMetadata(group, name));
+ }
+
/**
* Query streams according to given conditions
*
(skywalking-banyandb-java-client) 03/05: Fix the failure of parsing the status code
Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a commit to branch feat/trace-response
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git
commit 34e72b61dde61e8dac6908003f563a49a61259b3
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Tue Sep 9 20:19:03 2025 +0800
Fix the failure of parsing the status code
Signed-off-by: Gao Hongtao <ha...@gmail.com>
---
.../v1/client/TraceBulkWriteProcessor.java | 36 ++++++++++++----------
1 file changed, 20 insertions(+), 16 deletions(-)
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/TraceBulkWriteProcessor.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/TraceBulkWriteProcessor.java
index 3d46e08..96fdc4d 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/TraceBulkWriteProcessor.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/TraceBulkWriteProcessor.java
@@ -25,9 +25,11 @@ import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.apache.skywalking.banyandb.common.v1.BanyandbCommon;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.trace.v1.TraceServiceGrpc;
import org.apache.skywalking.banyandb.trace.v1.BanyandbTrace;
import org.apache.skywalking.banyandb.v1.client.grpc.exception.BanyanDBException;
+import org.apache.skywalking.banyandb.v1.client.util.StatusUtil;
import javax.annotation.concurrent.ThreadSafe;
@@ -78,23 +80,25 @@ public class TraceBulkWriteProcessor extends AbstractBulkWriteProcessor<Banyandb
@Override
public void onNext(BanyandbTrace.WriteResponse writeResponse) {
- String status = writeResponse.getStatus();
- if ("succeed".equals(status)) {
- // Success case - do nothing
- } else if ("expired_schema".equals(status)) {
- BanyandbCommon.Metadata metadata = writeResponse.getMetadata();
- String schemaKey = metadata.getGroup() + "." + metadata.getName();
- if (!schemaExpired.contains(schemaKey)) {
- log.warn("The trace schema {} is expired, trying update the schema...", schemaKey);
- try {
- client.updateTraceMetadataCacheFromServer(metadata.getGroup(), metadata.getName());
- schemaExpired.add(schemaKey);
- } catch (BanyanDBException e) {
- log.error(e.getMessage(), e);
+ BanyandbModel.Status status = StatusUtil.convertStringToStatus(writeResponse.getStatus());
+ switch (status) {
+ case STATUS_SUCCEED:
+ break;
+ case STATUS_EXPIRED_SCHEMA:
+ BanyandbCommon.Metadata metadata = writeResponse.getMetadata();
+ String schemaKey = metadata.getGroup() + "." + metadata.getName();
+ if (!schemaExpired.contains(schemaKey)) {
+ log.warn("The trace schema {} is expired, trying update the schema...", schemaKey);
+ try {
+ client.updateTraceMetadataCacheFromServer(metadata.getGroup(), metadata.getName());
+ schemaExpired.add(schemaKey);
+ } catch (BanyanDBException e) {
+ log.error(e.getMessage(), e);
+ }
}
- }
- } else {
- log.warn("Write trace failed with status: {}", status);
+ break;
+ default:
+ log.warn("Write trace failed with status: {}", status);
}
}
(skywalking-banyandb-java-client) 05/05: Restore changes
Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a commit to branch feat/trace-response
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git
commit 8488614a5923f1a543d325f4acc3fbf6a1c24fbf
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Tue Sep 9 20:42:03 2025 +0800
Restore changes
Signed-off-by: Gao Hongtao <ha...@gmail.com>
---
.../banyandb/v1/client/BanyanDBClient.java | 29 ++++++----------------
.../skywalking/banyandb/v1/client/StreamWrite.java | 10 --------
.../v1/client/ITBanyanDBStreamQueryTests.java | 3 ++-
3 files changed, 9 insertions(+), 33 deletions(-)
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
index 0cd45bb..bcae829 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
@@ -400,30 +400,15 @@ public class BanyanDBClient implements Closeable {
}
/**
- * Build a StreamWrite request.
+ * Build a trace bulk write processor.
*
- * @param group the group of the stream
- * @param name the name of the stream
- * @param elementId the primary key of the stream
- * @param timestamp the timestamp of the stream
- * @return the request to be built
+ * @param maxBulkSize the max size of each flush. The actual size is determined by the length of byte array.
+ * @param flushInterval if given maxBulkSize is not reached in this period, the flush would be trigger
+ * automatically. Unit is second.
+ * @param concurrency the number of concurrency would run for the flush max.
+ * @param timeout network timeout threshold in seconds.
+ * @return trace bulk write processor
*/
- public StreamWrite createStreamWrite(String group, String name, final String elementId, long timestamp) throws BanyanDBException {
- Preconditions.checkArgument(!Strings.isNullOrEmpty(group));
- Preconditions.checkArgument(!Strings.isNullOrEmpty(name));
- return new StreamWrite(this.metadataCache.findStreamMetadata(group, name), elementId, timestamp);
- }
-
- /**
- * Build a trace bulk write processor.
- *
- * @param maxBulkSize the max size of each flush. The actual size is determined by the length of byte array.
- * @param flushInterval if given maxBulkSize is not reached in this period, the flush would be trigger
- * automatically. Unit is second.
- * @param concurrency the number of concurrency would run for the flush max.
- * @param timeout network timeout threshold in seconds.
- * @return trace bulk write processor
- */
public TraceBulkWriteProcessor buildTraceWriteProcessor(int maxBulkSize, int flushInterval, int concurrency, int timeout) {
checkState(this.traceServiceStub != null, "trace service is null");
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java
index ad84b3e..c10d70d 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java
@@ -50,16 +50,6 @@ public class StreamWrite extends AbstractWrite<BanyandbStream.WriteRequest> {
this.elementId = elementId;
}
- /**
- * Create a StreamWrite with initial timestamp.
- *
- * @param timestamp in milliseconds
- */
- public StreamWrite(MetadataCache.EntityMetadata streamMetadata, String elementId, long timestamp) {
- this(streamMetadata, elementId);
- this.timestamp = Optional.of(timestamp);
- }
-
@Override
public StreamWrite tag(String tagName, Serializable<BanyandbModel.TagValue> tagValue) throws BanyanDBException {
return (StreamWrite) super.tag(tagName, tagValue);
diff --git a/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBStreamQueryTests.java b/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBStreamQueryTests.java
index c4f2573..c394138 100644
--- a/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBStreamQueryTests.java
+++ b/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBStreamQueryTests.java
@@ -94,7 +94,7 @@ public class ITBanyanDBStreamQueryTests extends BanyanDBClientTestCI {
String dbType = "SQL";
String dbInstance = "127.0.0.1:3306";
- StreamWrite streamWrite = client.createStreamWrite("sw_record", "trace", segmentId, now.toEpochMilli())
+ StreamWrite streamWrite = client.createStreamWrite("sw_record", "trace", segmentId)
.tag("data_binary", Value.binaryTagValue(byteData))
.tag("trace_id", Value.stringTagValue(traceId)) // 0
.tag("state", Value.longTagValue(state)) // 1
@@ -109,6 +109,7 @@ public class ITBanyanDBStreamQueryTests extends BanyanDBClientTestCI {
.tag("mq.broker", Value.stringTagValue(broker)) // 10
.tag("mq.topic", Value.stringTagValue(topic)) // 11
.tag("mq.queue", Value.stringTagValue(queue)); // 12
+ streamWrite.setTimestamp(now.toEpochMilli());
CompletableFuture<Void> f = processor.add(streamWrite);
f.exceptionally(exp -> {
(skywalking-banyandb-java-client) 02/05: Update proto to use new trace response
Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a commit to branch feat/trace-response
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git
commit 83ae5c05007bb3910d31d9f2f4a6f57d9b8de6ac
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Tue Sep 9 19:45:59 2025 +0800
Update proto to use new trace response
Signed-off-by: Gao Hongtao <ha...@gmail.com>
---
.../banyandb/v1/client/BanyanDBClient.java | 43 ----------------------
.../banyandb/v1/client/TraceQueryResponse.java | 16 ++++----
src/main/proto/banyandb/v1/banyandb-trace.proto | 14 +++----
.../banyandb/v1/client/BanyanDBClientTestCI.java | 2 +-
.../skywalking/banyandb/v1/client/ITTraceTest.java | 37 ++++++++++++-------
5 files changed, 39 insertions(+), 73 deletions(-)
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
index 777aaf1..bcae829 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
@@ -428,49 +428,6 @@ public class BanyanDBClient implements Closeable {
return new TraceWrite(this.metadataCache.findTraceMetadata(group, name));
}
- /**
- * Build a trace bulk write processor.
- *
- * @param maxBulkSize the max size of each flush. The actual size is determined by the length of byte array.
- * @param flushInterval if given maxBulkSize is not reached in this period, the flush would be trigger
- * automatically. Unit is second.
- * @param concurrency the number of concurrency would run for the flush max.
- * @param timeout network timeout threshold in seconds.
- * @return trace bulk write processor
- */
- public TraceBulkWriteProcessor buildTraceWriteProcessor(int maxBulkSize, int flushInterval, int concurrency, int timeout) {
- checkState(this.traceServiceStub != null, "trace service is null");
-
- return new TraceBulkWriteProcessor(this, maxBulkSize, flushInterval, concurrency, timeout, WRITE_HISTOGRAM, options);
- }
-
- /**
- * Build a TraceWrite request.
- *
- * @param group the group of the trace
- * @param name the name of the trace
- * @param timestamp the timestamp of the trace
- * @return the request to be built
- */
- public TraceWrite createTraceWrite(String group, String name, long timestamp) throws BanyanDBException {
- Preconditions.checkArgument(!Strings.isNullOrEmpty(group));
- Preconditions.checkArgument(!Strings.isNullOrEmpty(name));
- return new TraceWrite(this.metadataCache.findTraceMetadata(group, name), timestamp);
- }
-
- /**
- * Build a TraceWrite request without initial timestamp.
- *
- * @param group the group of the trace
- * @param name the name of the trace
- * @return the request to be built
- */
- public TraceWrite createTraceWrite(String group, String name) throws BanyanDBException {
- Preconditions.checkArgument(!Strings.isNullOrEmpty(group));
- Preconditions.checkArgument(!Strings.isNullOrEmpty(name));
- return new TraceWrite(this.metadataCache.findTraceMetadata(group, name));
- }
-
/**
* Query streams according to given conditions
*
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/TraceQueryResponse.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/TraceQueryResponse.java
index a1dc368..4fdd714 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/TraceQueryResponse.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/TraceQueryResponse.java
@@ -33,12 +33,12 @@ public class TraceQueryResponse {
}
/**
- * Get the list of spans returned by the query.
+ * Get the list of traces returned by the query.
*
- * @return list of spans
+ * @return list of traces, each containing spans grouped by trace ID
*/
- public List<BanyandbTrace.Span> getSpans() {
- return response.getSpansList();
+ public List<BanyandbTrace.Trace> getTraces() {
+ return response.getTracesList();
}
/**
@@ -54,18 +54,18 @@ public class TraceQueryResponse {
}
/**
- * Get the total number of spans returned.
+ * Get the total number of traces returned.
*
- * @return span count
+ * @return trace count
*/
public int size() {
- return response.getSpansCount();
+ return response.getTracesCount();
}
/**
* Check if the response is empty.
*
- * @return true if no spans were returned
+ * @return true if no traces were returned
*/
public boolean isEmpty() {
return size() == 0;
diff --git a/src/main/proto/banyandb/v1/banyandb-trace.proto b/src/main/proto/banyandb/v1/banyandb-trace.proto
index 5fa8401..d58c969 100644
--- a/src/main/proto/banyandb/v1/banyandb-trace.proto
+++ b/src/main/proto/banyandb/v1/banyandb-trace.proto
@@ -21,7 +21,6 @@ package banyandb.trace.v1;
import "banyandb/v1/banyandb-common.proto";
import "banyandb/v1/banyandb-model.proto";
-import "google/api/annotations.proto";
option go_package = "github.com/apache/skywalking-banyandb/api/proto/banyandb/trace/v1";
option java_package = "org.apache.skywalking.banyandb.trace.v1";
@@ -51,8 +50,12 @@ message Span {
bytes span = 2;
}
-message QueryResponse {
+message Trace {
repeated Span spans = 1;
+}
+
+message QueryResponse {
+ repeated Trace traces = 1;
common.v1.Trace trace_query_result = 2;
}
@@ -71,12 +74,7 @@ message QueryRequest {
// RPC service
service TraceService {
- rpc Query(QueryRequest) returns (QueryResponse) {
- option (google.api.http) = {
- post: "/v1/trace/data"
- body: "*"
- };
- }
+ rpc Query(QueryRequest) returns (QueryResponse);
rpc Write(stream WriteRequest) returns (stream WriteResponse);
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java b/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java
index eec6b3b..9e3b64b 100644
--- a/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java
+++ b/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java
@@ -31,7 +31,7 @@ import java.io.IOException;
public class BanyanDBClientTestCI {
private static final String REGISTRY = "ghcr.io";
private static final String IMAGE_NAME = "apache/skywalking-banyandb";
- private static final String TAG = "65504b5d925a15cc0ab1004f6e7cbceb65b20f83";
+ private static final String TAG = "a287c38c758b11ea2d83014875af2e72acfaa017";
private static final String IMAGE = REGISTRY + "/" + IMAGE_NAME + ":" + TAG;
diff --git a/src/test/java/org/apache/skywalking/banyandb/v1/client/ITTraceTest.java b/src/test/java/org/apache/skywalking/banyandb/v1/client/ITTraceTest.java
index 76eb168..15a16df 100644
--- a/src/test/java/org/apache/skywalking/banyandb/v1/client/ITTraceTest.java
+++ b/src/test/java/org/apache/skywalking/banyandb/v1/client/ITTraceTest.java
@@ -158,14 +158,19 @@ public class ITTraceTest extends BanyanDBClientTestCI {
TraceQueryResponse response = client.query(query);
Assert.assertNotNull("Query response should not be null", response);
Assert.assertFalse("Should have at least one result", response.isEmpty());
- Assert.assertEquals("Should have exactly one span", 1, response.size());
+ Assert.assertEquals("Should have exactly one trace", 1, response.size());
- // Verify we can access span data
- Assert.assertNotNull("Spans list should not be null", response.getSpans());
- Assert.assertEquals("Should have one span in list", 1, response.getSpans().size());
+ // Verify we can access trace data
+ Assert.assertNotNull("Traces list should not be null", response.getTraces());
+ Assert.assertEquals("Should have one trace in list", 1, response.getTraces().size());
- // Get the first span and verify its contents
- org.apache.skywalking.banyandb.trace.v1.BanyandbTrace.Span span = response.getSpans().get(0);
+ // Get the first trace and verify its contents
+ org.apache.skywalking.banyandb.trace.v1.BanyandbTrace.Trace trace = response.getTraces().get(0);
+ Assert.assertNotNull("Trace should not be null", trace);
+ Assert.assertEquals("Trace should have exactly one span", 1, trace.getSpansCount());
+
+ // Get the span from the trace and verify its contents
+ org.apache.skywalking.banyandb.trace.v1.BanyandbTrace.Span span = trace.getSpans(0);
Assert.assertNotNull("Span should not be null", span);
// Verify span data (binary content) - this is the main content returned
@@ -228,15 +233,21 @@ public class ITTraceTest extends BanyanDBClientTestCI {
TraceQueryResponse response = client.query(query);
Assert.assertNotNull("Query response should not be null", response);
Assert.assertFalse("Should have at least one result", response.isEmpty());
- Assert.assertTrue("Should have exactly 2 spans", response.size() == 2);
+ Assert.assertTrue("Should have exactly 2 traces", response.size() == 2);
+
+ // Verify we can access trace data
+ Assert.assertNotNull("Traces list should not be null", response.getTraces());
+ Assert.assertTrue("Should have exactly 2 traces in list", response.getTraces().size() == 2);
+
+ // Get spans from each trace and verify that span content matches expected data
+ org.apache.skywalking.banyandb.trace.v1.BanyandbTrace.Trace firstTrace = response.getTraces().get(0);
+ org.apache.skywalking.banyandb.trace.v1.BanyandbTrace.Trace secondTrace = response.getTraces().get(1);
- // Verify we can access span data
- Assert.assertNotNull("Spans list should not be null", response.getSpans());
- Assert.assertTrue("Should have exactly 2 spans in list", response.getSpans().size() == 2);
+ Assert.assertEquals("First trace should have exactly one span", 1, firstTrace.getSpansCount());
+ Assert.assertEquals("Second trace should have exactly one span", 1, secondTrace.getSpansCount());
- // Verify that span content matches expected data
- String firstSpanContent = new String(response.getSpans().get(0).getSpan().toByteArray());
- String secondSpanContent = new String(response.getSpans().get(1).getSpan().toByteArray());
+ String firstSpanContent = new String(firstTrace.getSpans(0).getSpan().toByteArray());
+ String secondSpanContent = new String(secondTrace.getSpans(0).getSpan().toByteArray());
// Since we're ordering by start_time DESC, span-data-2 should come before span-data-1
// (baseTime+60 > baseTime)