This is an automated email from the ASF dual-hosted git repository.
wankai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 3acad529f5 fix BanyanDB debugging trace (#12418)
3acad529f5 is described below
commit 3acad529f5cdbb44060bc0ef3d49fe7bc080cbe8
Author: Wan Kai <[email protected]>
AuthorDate: Mon Jul 8 12:27:28 2024 +0800
fix BanyanDB debugging trace (#12418)
---
.../query/type/debugging/DebuggingTraceContext.java | 21 +++++++++++++++++++--
.../plugin/banyandb/stream/AbstractBanyanDBDAO.java | 2 +-
2 files changed, 20 insertions(+), 3 deletions(-)
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/type/debugging/DebuggingTraceContext.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/type/debugging/DebuggingTraceContext.java
index 704fc5dfc2..0c2d5b9726 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/type/debugging/DebuggingTraceContext.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/type/debugging/DebuggingTraceContext.java
@@ -36,14 +36,17 @@ public class DebuggingTraceContext {
this.dumpStorageRsp = dumpStorageRsp;
}
+ /**
+ * Create a new span for OAP internal debugging trace and start.
+ * @param operation operation
+ * @return DebuggingSpan
+ */
public DebuggingSpan createSpan(String operation) {
DebuggingSpan span = new DebuggingSpan(spanIdGenerator++, operation);
if (debug) {
- //default start time, could be overwritten by setStartTime
(BanyanDB Trace)
span.setStartTime(System.nanoTime());
DebuggingSpan parentSpan = spanStack.isEmpty() ? null :
spanStack.peek();
if (parentSpan != null) {
- //default parent span id, could be overwritten by
setParentSpanId (BanyanDB Trace)
span.setParentSpanId(parentSpan.getSpanId());
} else {
span.setParentSpanId(-1);
@@ -54,6 +57,20 @@ public class DebuggingTraceContext {
return span;
}
+ /**
+ * Use for transform the other Span to DebuggingSpan, such as BanyanDB
trace span.
+ * The start time , end time, duration, parent span id should be set
manually.
+ * @param operation operation
+ * @return DebuggingSpan
+ */
+ public DebuggingSpan createSpanForTransform(String operation) {
+ DebuggingSpan span = new DebuggingSpan(spanIdGenerator++, operation);
+ if (debug) {
+ execTrace.addSpan(span);
+ }
+ return span;
+ }
+
public DebuggingSpan getParentSpan() {
if (spanStack.isEmpty()) {
return null;
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/AbstractBanyanDBDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/AbstractBanyanDBDAO.java
index aa510226ca..4c49edf944 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/AbstractBanyanDBDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/AbstractBanyanDBDAO.java
@@ -242,7 +242,7 @@ public abstract class AbstractBanyanDBDAO extends
AbstractDAO<BanyanDBStorageCli
}
private void addDBSpan2DebuggingTrace(Span span, DebuggingTraceContext
traceContext, DebuggingSpan parentSpan) {
- DebuggingSpan debuggingSpan = traceContext.createSpan("BanyanDB: " +
span.getMessage());
+ DebuggingSpan debuggingSpan =
traceContext.createSpanForTransform("BanyanDB: " + span.getMessage());
debuggingSpan.setStartTime(span.getStartTime().getSeconds() *
1000_000_000 + span.getStartTime().getNanos());
debuggingSpan.setEndTime(span.getEndTime().getSeconds() * 1000_000_000
+ span.getEndTime().getNanos());
debuggingSpan.setDuration(span.getDuration());