From 80da79ebfa9ad3a2de08a79e2832fbbd600b9201 Mon Sep 17 00:00:00 2001 From: Wan Kai Date: Thu, 22 May 2025 20:36:47 +0800 Subject: [PATCH] BanyanDB: add topN cold stage data query. (#13259) --- .github/workflows/skywalking.yaml | 2 +- docs/en/changes/changes.md | 1 + oap-server-bom/pom.xml | 2 +- .../promql/handler/PromQLApiHandler.java | 2 +- .../banyandb/BanyanDBAggregationQueryDAO.java | 1 - .../banyandb/stream/AbstractBanyanDBDAO.java | 24 ++------ skywalking-ui | 2 +- .../cases/storage/banyandb/stages/e2e.yaml | 5 ++ .../expected/cold/dependency-instance.yml | 1 + .../expected/cold/topN-OP-endpoint.yml | 58 +++++++++++++++++++ .../storage/expected/cold/topN-OP-service.yml | 58 +++++++++++++++++++ .../apache/skywalking/mock/AgentDataMock.java | 1 + 12 files changed, 134 insertions(+), 23 deletions(-) create mode 100644 test/e2e-v2/cases/storage/expected/cold/topN-OP-endpoint.yml create mode 100644 test/e2e-v2/cases/storage/expected/cold/topN-OP-service.yml diff --git a/.github/workflows/skywalking.yaml b/.github/workflows/skywalking.yaml index 1bde7c328a..4cc6fc8448 100644 --- a/.github/workflows/skywalking.yaml +++ b/.github/workflows/skywalking.yaml @@ -1021,7 +1021,7 @@ jobs: # check if segment files exist if docker exec $CONTAINER_ID sh -c '[ -n "$(ls /tmp/measure-data/measure/data/day/seg* 2>/dev/null)" ]'; then echo "✅ found segment files" - sleep 30 + sleep 180 # create and copy files docker cp $CONTAINER_ID:/tmp ${BANYANDB_DATA_GENERATE_ROOT} docker cp $CONTAINER_ID:/tmp/measure-data/measure/data/index ${BANYANDB_DATA_GENERATE_ROOT} diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md index 920a7a99e1..09a199d4aa 100644 --- a/docs/en/changes/changes.md +++ b/docs/en/changes/changes.md @@ -26,6 +26,7 @@ * Enhance the trace `List/Tree/Table` graph to support displaying multiple refs of spans and distinguishing different parents. * Fix: correct the same labels for metrics. * Refactor: use the Fetch API to instead of Axios. +* Support cold stage data for metrics, trace and log. #### Documentation diff --git a/oap-server-bom/pom.xml b/oap-server-bom/pom.xml index efb2d8fa2f..fc1ea0f655 100644 --- a/oap-server-bom/pom.xml +++ b/oap-server-bom/pom.xml @@ -72,7 +72,7 @@ 4.4.16 4.1.5 1.21 - 0.9.0-rc0 + 0.9.0-rc2 3.4.0 2.4.6.RELEASE 1.5.3 diff --git a/oap-server/server-query-plugin/promql-plugin/src/main/java/org/apache/skywalking/oap/query/promql/handler/PromQLApiHandler.java b/oap-server/server-query-plugin/promql-plugin/src/main/java/org/apache/skywalking/oap/query/promql/handler/PromQLApiHandler.java index 203ede8105..e97594be03 100644 --- a/oap-server/server-query-plugin/promql-plugin/src/main/java/org/apache/skywalking/oap/query/promql/handler/PromQLApiHandler.java +++ b/oap-server/server-query-plugin/promql-plugin/src/main/java/org/apache/skywalking/oap/query/promql/handler/PromQLApiHandler.java @@ -511,7 +511,7 @@ public class PromQLApiHandler { @Get @Post @Path("/api/v1/format_query") - public HttpResponse query_range(@Param("query") String query) throws IOException { + public HttpResponse format_query(@Param("query") String query) throws IOException { QueryFormatRsp rsp = new QueryFormatRsp(); rsp.setData(query.replaceAll("\\s", "")); return jsonResponse(rsp); 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 008bced45a..0fd25a9fa8 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 @@ -78,7 +78,6 @@ public class BanyanDBAggregationQueryDAO extends AbstractBanyanDBDAO implements return directMetricsTopN(isColdStage, condition, schema, valueColumnName, spec, getTimestampRange(duration), additionalConditions); } - //todo: query cold stage List serverSideTopN(boolean isColdStage, TopNCondition condition, MetadataRegistry.Schema schema, MetadataRegistry.ColumnSpec valueColumnSpec, TimestampRange timestampRange, List additionalConditions) throws IOException { TopNQueryResponse resp = 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 6be527421e..2cdb5b158a 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 @@ -139,22 +139,6 @@ public abstract class AbstractBanyanDBDAO extends AbstractDAO additionalConditions, - List attributes) throws IOException { - return topNQuery(schema, timestampRange, number, AbstractQuery.Sort.DESC, additionalConditions, attributes); - } - - protected TopNQueryResponse bottomN(MetadataRegistry.Schema schema, - TimestampRange timestampRange, - int number, - List additionalConditions, - List attributes) throws IOException { - return topNQuery(schema, timestampRange, number, AbstractQuery.Sort.ASC, additionalConditions, attributes); - } - protected TopNQueryResponse topNQueryDebuggable(boolean isColdStage, MetadataRegistry.Schema schema, TimestampRange timestampRange, @@ -185,7 +169,7 @@ public abstract class AbstractBanyanDBDAO extends AbstractDAO