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 2caa01dabe Add log for Endpoint direct topN query. (#13371)
2caa01dabe is described below
commit 2caa01dabed68ce2896cc8ba5d2bb605b63a547f
Author: Wan Kai <[email protected]>
AuthorDate: Thu Jul 17 05:49:54 2025 +0800
Add log for Endpoint direct topN query. (#13371)
---
docs/en/setup/backend/storages/banyandb.md | 4 +++-
.../storage/plugin/banyandb/BanyanDBAggregationQueryDAO.java | 8 ++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/docs/en/setup/backend/storages/banyandb.md
b/docs/en/setup/backend/storages/banyandb.md
index 50afe083f1..45b3968b1f 100644
--- a/docs/en/setup/backend/storages/banyandb.md
+++ b/docs/en/setup/backend/storages/banyandb.md
@@ -64,7 +64,9 @@ global:
asyncProfilerTaskQueryMaxSize:
${SW_STORAGE_BANYANDB_ASYNC_PROFILER_TASK_QUERY_MAX_SIZE:200}
# If the BanyanDB server is configured with TLS, configure the TLS cert file
path and enable TLS connection.
sslTrustCAPath: ${SW_STORAGE_BANYANDB_SSL_TRUST_CA_PATH:""}
-
+ # Cleanup TopN rules in BanyanDB server that are not configured in the
bydb-topn.yml config.
+ cleanupUnusedTopNRules: ${SW_STORAGE_BANYANDB_CLEANUP_UNUSED_TOPN_RULES:true}
+
groups:
# The group settings of record.
# - "ShardNum": Number of shards in the group. Shards are the basic units
of data storage in BanyanDB. Data is distributed across shards based on the
hash value of the series ID.
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBAggregationQueryDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBAggregationQueryDAO.java
index 3a3399297d..004698da67 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBAggregationQueryDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBAggregationQueryDAO.java
@@ -19,6 +19,7 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb;
import com.google.common.collect.ImmutableSet;
+import lombok.extern.slf4j.Slf4j;
import org.apache.skywalking.banyandb.database.v1.BanyandbDatabase;
import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.AbstractQuery;
@@ -29,6 +30,7 @@ import
org.apache.skywalking.banyandb.v1.client.TimestampRange;
import org.apache.skywalking.banyandb.v1.client.TopNQueryResponse;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.query.enumeration.Order;
+import org.apache.skywalking.oap.server.core.query.enumeration.Scope;
import org.apache.skywalking.oap.server.core.query.input.AttrCondition;
import org.apache.skywalking.oap.server.core.query.input.Duration;
import org.apache.skywalking.oap.server.core.query.input.TopNCondition;
@@ -45,6 +47,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Set;
+@Slf4j
public class BanyanDBAggregationQueryDAO extends AbstractBanyanDBDAO
implements IAggregationQueryDAO {
private static final Set<String> TAGS = ImmutableSet.of(Metrics.ENTITY_ID);
@@ -139,6 +142,11 @@ public class BanyanDBAggregationQueryDAO extends
AbstractBanyanDBDAO implements
List<SelectedRecord> directMetricsTopN(boolean isColdStage, TopNCondition
condition, MetadataRegistry.Schema schema, String valueColumnName,
MetadataRegistry.ColumnSpec valueColumnSpec,
TimestampRange timestampRange,
List<KeyValue> additionalConditions) throws IOException {
+ if (log.isDebugEnabled()
+ && condition.getScope().equals(Scope.Endpoint)) {
+ log.debug("Endpoint direct TopN query, TopNCondition: {},
AdditionalConditions: {}, TimestampRange: {}",
+ condition, additionalConditions, timestampRange);
+ }
MeasureQueryResponse resp = queryDebuggable(isColdStage, schema, TAGS,
Collections.singleton(valueColumnName),
timestampRange, new QueryBuilder<MeasureQuery>() {
@Override