This is an automated email from the ASF dual-hosted git repository.

wusheng 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 360384ee10 BanyanDB: fix log query missing order by condition, and fix 
missing service id condition when query by instance id or endpoint id. (#13508)
360384ee10 is described below

commit 360384ee102495d3cace9df4da53f7b291ad47f8
Author: Wan Kai <[email protected]>
AuthorDate: Mon Sep 22 21:02:38 2025 +0800

    BanyanDB: fix log query missing order by condition, and fix missing service 
id condition when query by instance id or endpoint id. (#13508)
---
 docs/en/changes/changes.md                             |  1 +
 .../plugin/banyandb/stream/BanyanDBLogQueryDAO.java    | 18 ++++++++++++++++++
 .../plugin/banyandb/trace/BanyanDBTraceQueryDAO.java   | 10 ++++++++++
 3 files changed, 29 insertions(+)

diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index bca1a0ef15..16f5850045 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -99,6 +99,7 @@
 * Open `health-checker` module by default due to latest UI changes. Change the 
default check period to 30s.
 * Refactor Kubernetes coordinator to be more accurate about node readiness.
 * Bump up netty to 4.2.5.Final.
+* BanyanDB: fix log query missing order by condition, and fix missing service 
id condition when query by instance id or endpoint id.
 
 #### UI
 
diff --git 
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBLogQueryDAO.java
 
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBLogQueryDAO.java
index 7a4cfbfc49..7721f25265 100644
--- 
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBLogQueryDAO.java
+++ 
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBLogQueryDAO.java
@@ -19,6 +19,7 @@
 package org.apache.skywalking.oap.server.storage.plugin.banyandb.stream;
 
 import com.google.common.collect.ImmutableSet;
+import org.apache.skywalking.banyandb.v1.client.AbstractQuery;
 import org.apache.skywalking.banyandb.v1.client.RowEntity;
 import org.apache.skywalking.banyandb.v1.client.StreamQuery;
 import org.apache.skywalking.banyandb.v1.client.StreamQueryResponse;
@@ -76,9 +77,19 @@ public class BanyanDBLogQueryDAO extends AbstractBanyanDBDAO 
implements ILogQuer
                 }
 
                 if (StringUtil.isNotEmpty(serviceInstanceId)) {
+                    if (StringUtil.isEmpty(serviceId)) {
+                        IDManager.ServiceInstanceID.InstanceIDDefinition 
instanceIDDefinition = IDManager.ServiceInstanceID.analysisId(
+                            serviceInstanceId);
+                        query.and(eq(AbstractLogRecord.SERVICE_ID, 
instanceIDDefinition.getServiceId()));
+                    }
                     query.and(eq(AbstractLogRecord.SERVICE_INSTANCE_ID, 
serviceInstanceId));
                 }
                 if (StringUtil.isNotEmpty(endpointId)) {
+                    if (StringUtil.isEmpty(serviceId)) {
+                        IDManager.EndpointID.EndpointIDDefinition 
endpointIDDefinition = IDManager.EndpointID.analysisId(
+                            endpointId);
+                        query.and(eq(AbstractLogRecord.SERVICE_ID, 
endpointIDDefinition.getServiceId()));
+                    }
                     query.and(eq(AbstractLogRecord.ENDPOINT_ID, endpointId));
                 }
                 if (Objects.nonNull(relatedTrace)) {
@@ -100,6 +111,13 @@ public class BanyanDBLogQueryDAO extends 
AbstractBanyanDBDAO implements ILogQuer
                     }
                     query.and(having(LogRecord.TAGS, tagsConditions));
                 }
+                if (queryOrder == Order.ASC) {
+                    query.setOrderBy(
+                        new AbstractQuery.OrderBy(AbstractQuery.Sort.ASC));
+                } else {
+                    query.setOrderBy(
+                        new AbstractQuery.OrderBy(AbstractQuery.Sort.DESC));
+                }
             }
         };
 
diff --git 
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/trace/BanyanDBTraceQueryDAO.java
 
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/trace/BanyanDBTraceQueryDAO.java
index 36c4fef53a..c54e26594e 100644
--- 
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/trace/BanyanDBTraceQueryDAO.java
+++ 
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/trace/BanyanDBTraceQueryDAO.java
@@ -162,10 +162,20 @@ public class BanyanDBTraceQueryDAO extends 
AbstractBanyanDBDAO implements ITrace
                     }
 
                     if 
(StringUtil.isNotEmpty(condition.getServiceInstanceId())) {
+                        if (StringUtil.isEmpty(condition.getServiceId())) {
+                            IDManager.ServiceInstanceID.InstanceIDDefinition 
instanceIDDefinition = IDManager.ServiceInstanceID.analysisId(
+                                condition.getServiceInstanceId());
+                            query.and(eq(SegmentRecord.SERVICE_ID, 
instanceIDDefinition.getServiceId()));
+                        }
                         query.and(eq(SegmentRecord.SERVICE_INSTANCE_ID, 
condition.getServiceInstanceId()));
                     }
 
                     if (StringUtil.isNotEmpty(condition.getEndpointId())) {
+                        if (StringUtil.isEmpty(condition.getServiceId())) {
+                            IDManager.EndpointID.EndpointIDDefinition 
endpointIDDefinition = IDManager.EndpointID.analysisId(
+                                condition.getEndpointId());
+                            query.and(eq(SegmentRecord.SERVICE_ID, 
endpointIDDefinition.getServiceId()));
+                        }
                         query.and(eq(SegmentRecord.ENDPOINT_ID, 
condition.getEndpointId()));
                     }
 

Reply via email to