Skip to content

Commit 360384e

Browse files
authored
BanyanDB: fix log query missing order by condition, and fix missing service id condition when query by instance id or endpoint id. (#13508)
1 parent 88aa16f commit 360384e

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

docs/en/changes/changes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
* Open `health-checker` module by default due to latest UI changes. Change the default check period to 30s.
100100
* Refactor Kubernetes coordinator to be more accurate about node readiness.
101101
* Bump up netty to 4.2.5.Final.
102+
* BanyanDB: fix log query missing order by condition, and fix missing service id condition when query by instance id or endpoint id.
102103

103104
#### UI
104105

oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBLogQueryDAO.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package org.apache.skywalking.oap.server.storage.plugin.banyandb.stream;
2020

2121
import com.google.common.collect.ImmutableSet;
22+
import org.apache.skywalking.banyandb.v1.client.AbstractQuery;
2223
import org.apache.skywalking.banyandb.v1.client.RowEntity;
2324
import org.apache.skywalking.banyandb.v1.client.StreamQuery;
2425
import org.apache.skywalking.banyandb.v1.client.StreamQueryResponse;
@@ -76,9 +77,19 @@ public void apply(StreamQuery query) {
7677
}
7778

7879
if (StringUtil.isNotEmpty(serviceInstanceId)) {
80+
if (StringUtil.isEmpty(serviceId)) {
81+
IDManager.ServiceInstanceID.InstanceIDDefinition instanceIDDefinition = IDManager.ServiceInstanceID.analysisId(
82+
serviceInstanceId);
83+
query.and(eq(AbstractLogRecord.SERVICE_ID, instanceIDDefinition.getServiceId()));
84+
}
7985
query.and(eq(AbstractLogRecord.SERVICE_INSTANCE_ID, serviceInstanceId));
8086
}
8187
if (StringUtil.isNotEmpty(endpointId)) {
88+
if (StringUtil.isEmpty(serviceId)) {
89+
IDManager.EndpointID.EndpointIDDefinition endpointIDDefinition = IDManager.EndpointID.analysisId(
90+
endpointId);
91+
query.and(eq(AbstractLogRecord.SERVICE_ID, endpointIDDefinition.getServiceId()));
92+
}
8293
query.and(eq(AbstractLogRecord.ENDPOINT_ID, endpointId));
8394
}
8495
if (Objects.nonNull(relatedTrace)) {
@@ -100,6 +111,13 @@ public void apply(StreamQuery query) {
100111
}
101112
query.and(having(LogRecord.TAGS, tagsConditions));
102113
}
114+
if (queryOrder == Order.ASC) {
115+
query.setOrderBy(
116+
new AbstractQuery.OrderBy(AbstractQuery.Sort.ASC));
117+
} else {
118+
query.setOrderBy(
119+
new AbstractQuery.OrderBy(AbstractQuery.Sort.DESC));
120+
}
103121
}
104122
};
105123

oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/trace/BanyanDBTraceQueryDAO.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,20 @@ public void apply(TraceQuery query) {
162162
}
163163

164164
if (StringUtil.isNotEmpty(condition.getServiceInstanceId())) {
165+
if (StringUtil.isEmpty(condition.getServiceId())) {
166+
IDManager.ServiceInstanceID.InstanceIDDefinition instanceIDDefinition = IDManager.ServiceInstanceID.analysisId(
167+
condition.getServiceInstanceId());
168+
query.and(eq(SegmentRecord.SERVICE_ID, instanceIDDefinition.getServiceId()));
169+
}
165170
query.and(eq(SegmentRecord.SERVICE_INSTANCE_ID, condition.getServiceInstanceId()));
166171
}
167172

168173
if (StringUtil.isNotEmpty(condition.getEndpointId())) {
174+
if (StringUtil.isEmpty(condition.getServiceId())) {
175+
IDManager.EndpointID.EndpointIDDefinition endpointIDDefinition = IDManager.EndpointID.analysisId(
176+
condition.getEndpointId());
177+
query.and(eq(SegmentRecord.SERVICE_ID, endpointIDDefinition.getServiceId()));
178+
}
169179
query.and(eq(SegmentRecord.ENDPOINT_ID, condition.getEndpointId()));
170180
}
171181

0 commit comments

Comments
 (0)