You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by lu...@apache.org on 2023/10/04 12:33:40 UTC
[skywalking] branch update-banyandb-client updated: fix ID query
This is an automated email from the ASF dual-hosted git repository.
lujiajing pushed a commit to branch update-banyandb-client
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/update-banyandb-client by this push:
new 3fa797f61b fix ID query
3fa797f61b is described below
commit 3fa797f61b4d7116ff414fe176d8a529b7f9aa5c
Author: Megrez Lu <lu...@gmail.com>
AuthorDate: Wed Oct 4 20:33:28 2023 +0800
fix ID query
---
.../banyandb/measure/BanyanDBMetadataQueryDAO.java | 39 +++++++++++++---------
1 file changed, 23 insertions(+), 16 deletions(-)
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetadataQueryDAO.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetadataQueryDAO.java
index 21aede89a8..ff8df6cd30 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetadataQueryDAO.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetadataQueryDAO.java
@@ -19,10 +19,12 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.measure;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Lists;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import org.apache.commons.lang3.StringUtils;
+import org.apache.skywalking.banyandb.v1.client.AbstractCriteria;
import org.apache.skywalking.banyandb.v1.client.DataPoint;
import org.apache.skywalking.banyandb.v1.client.MeasureQuery;
import org.apache.skywalking.banyandb.v1.client.MeasureQueryResponse;
@@ -92,12 +94,12 @@ public class BanyanDBMetadataQueryDAO extends AbstractBanyanDBDAO implements IMe
@Override
public List<Service> listServices() throws IOException {
MeasureQueryResponse resp = query(ServiceTraffic.INDEX_NAME,
- SERVICE_TRAFFIC_TAGS,
- Collections.emptySet(), new QueryBuilder<MeasureQuery>() {
- @Override
- protected void apply(MeasureQuery query) {
- }
- });
+ SERVICE_TRAFFIC_TAGS,
+ Collections.emptySet(), new QueryBuilder<MeasureQuery>() {
+ @Override
+ protected void apply(MeasureQuery query) {
+ }
+ });
final List<Service> services = new ArrayList<>();
MetadataRegistry.Schema schema = MetadataRegistry.INSTANCE.findMetadata(ServiceTraffic.INDEX_NAME, DownSampling.Minute);
@@ -144,8 +146,8 @@ public class BanyanDBMetadataQueryDAO extends AbstractBanyanDBDAO implements IMe
new QueryBuilder<MeasureQuery>() {
@Override
protected void apply(MeasureQuery query) {
- query.and(eq(InstanceTraffic.SERVICE_ID, id.getServiceId()))
- .and(eq(InstanceTraffic.NAME, id.getName()));
+ query.and(eq(InstanceTraffic.SERVICE_ID, id.getServiceId()))
+ .and(eq(InstanceTraffic.NAME, id.getName()));
}
});
MetadataRegistry.Schema schema = MetadataRegistry.INSTANCE.findMetadata(InstanceTraffic.INDEX_NAME, DownSampling.Minute);
@@ -155,14 +157,19 @@ public class BanyanDBMetadataQueryDAO extends AbstractBanyanDBDAO implements IMe
@Override
public List<ServiceInstance> getInstances(List<String> instanceIds) throws IOException {
MeasureQueryResponse resp = query(InstanceTraffic.INDEX_NAME,
- INSTANCE_TRAFFIC_TAGS,
- Collections.emptySet(),
- new QueryBuilder<MeasureQuery>() {
- @Override
- protected void apply(MeasureQuery query) {
- query.and(in(InstanceTraffic.ID, instanceIds));
- }
- });
+ INSTANCE_TRAFFIC_TAGS,
+ Collections.emptySet(),
+ new QueryBuilder<MeasureQuery>() {
+ @Override
+ protected void apply(MeasureQuery query) {
+ List<AbstractCriteria> instanceRelationsQueryConditions = new ArrayList<>(instanceIds.size());
+ for (final String instanceId : instanceIds) {
+ final IDManager.ServiceInstanceID.InstanceIDDefinition def = IDManager.ServiceInstanceID.analysisId(instanceId);
+ and(Lists.newArrayList(eq(InstanceTraffic.SERVICE_ID, def.getServiceId()), eq(InstanceTraffic.NAME, def.getName())));
+ }
+ query.criteria(or(instanceRelationsQueryConditions));
+ }
+ });
MetadataRegistry.Schema schema = MetadataRegistry.INSTANCE.findMetadata(InstanceTraffic.INDEX_NAME, DownSampling.Minute);
return resp.getDataPoints().stream().map(e -> buildInstance(e, schema)).collect(Collectors.toList());
}