You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ha...@apache.org on 2023/01/04 00:16:58 UTC
[skywalking] branch banyandb updated: Add BanyanDB.MeasureField annotation
This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a commit to branch banyandb
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/banyandb by this push:
new e4bdb6ae48 Add BanyanDB.MeasureField annotation
e4bdb6ae48 is described below
commit e4bdb6ae4821df9e3bed001224f6990f441c211b
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Wed Jan 4 08:16:17 2023 +0800
Add BanyanDB.MeasureField annotation
Signed-off-by: Gao Hongtao <ha...@gmail.com>
---
.../server/core/analysis/meter/function/HistogramFunction.java | 1 +
.../server/core/analysis/meter/function/PercentileFunction.java | 3 +++
.../oap/server/core/analysis/meter/function/avg/AvgFunction.java | 3 +++
.../core/analysis/meter/function/avg/AvgHistogramFunction.java | 3 +++
.../meter/function/avg/AvgHistogramPercentileFunction.java | 4 ++++
.../core/analysis/meter/function/avg/AvgLabeledFunction.java | 3 +++
.../core/analysis/meter/function/latest/LatestFunction.java | 1 +
.../oap/server/core/analysis/meter/function/sum/SumFunction.java | 1 +
.../meter/function/sum/SumHistogramPercentileFunction.java | 3 +++
.../analysis/meter/function/sumpermin/SumPerMinFunction.java | 2 ++
.../meter/function/sumpermin/SumPerMinLabeledFunction.java | 2 ++
.../oap/server/core/analysis/metrics/ApdexMetrics.java | 5 +++++
.../skywalking/oap/server/core/analysis/metrics/CPMMetrics.java | 3 +++
.../oap/server/core/analysis/metrics/CountMetrics.java | 2 ++
.../oap/server/core/analysis/metrics/DoubleAvgMetrics.java | 4 ++++
.../oap/server/core/analysis/metrics/HistogramMetrics.java | 2 ++
.../oap/server/core/analysis/metrics/LongAvgMetrics.java | 4 ++++
.../oap/server/core/analysis/metrics/MaxDoubleMetrics.java | 2 ++
.../oap/server/core/analysis/metrics/MaxLongMetrics.java | 2 ++
.../oap/server/core/analysis/metrics/MinDoubleMetrics.java | 2 ++
.../oap/server/core/analysis/metrics/MinLongMetrics.java | 2 ++
.../oap/server/core/analysis/metrics/PercentMetrics.java | 5 ++++-
.../oap/server/core/analysis/metrics/PercentileMetrics.java | 4 ++++
.../skywalking/oap/server/core/analysis/metrics/RateMetrics.java | 4 ++++
.../skywalking/oap/server/core/analysis/metrics/SumMetrics.java | 2 ++
.../skywalking/oap/server/core/storage/annotation/BanyanDB.java | 9 +++++++++
.../oap/server/core/storage/model/BanyanDBExtension.java | 6 ++++++
.../skywalking/oap/server/core/storage/model/StorageModels.java | 7 +++++--
.../oap/server/storage/plugin/banyandb/MetadataRegistry.java | 2 +-
.../storage/plugin/banyandb/measure/BanyanDBMetricsQueryDAO.java | 2 +-
30 files changed, 90 insertions(+), 5 deletions(-)
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/HistogramFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/HistogramFunction.java
index 6f01b1e628..cb90a6cb40 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/HistogramFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/HistogramFunction.java
@@ -55,6 +55,7 @@ public abstract class HistogramFunction extends Meter implements AcceptableValue
@Getter
@Setter
@Column(columnName = DATASET, dataType = Column.ValueDataType.HISTOGRAM, storageOnly = true, defaultValue = 0)
+ @BanyanDB.MeasureField
private DataTable dataset = new DataTable(30);
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/PercentileFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/PercentileFunction.java
index c8961eac1b..3279c55791 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/PercentileFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/PercentileFunction.java
@@ -64,10 +64,12 @@ public abstract class PercentileFunction extends Meter implements AcceptableValu
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.LABELED_VALUE, storageOnly = true)
@ElasticSearch.Column(columnAlias = "datatable_value")
+ @BanyanDB.MeasureField
private DataTable percentileValues = new DataTable(10);
@Getter
@Setter
@Column(columnName = DATASET, storageOnly = true)
+ @BanyanDB.MeasureField
private DataTable dataset = new DataTable(30);
/**
* Rank
@@ -75,6 +77,7 @@ public abstract class PercentileFunction extends Meter implements AcceptableValu
@Getter
@Setter
@Column(columnName = RANKS, storageOnly = true)
+ @BanyanDB.MeasureField
private IntList ranks = new IntList(10);
private boolean isCalculated = false;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java
index f01ff10ac2..d7aed9e3c4 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java
@@ -66,14 +66,17 @@ public abstract class AvgFunction extends Meter implements AcceptableValue<Long>
@Getter
@Setter
@Column(columnName = SUMMATION, storageOnly = true)
+ @BanyanDB.MeasureField
protected long summation;
@Getter
@Setter
@Column(columnName = COUNT, storageOnly = true)
+ @BanyanDB.MeasureField
protected long count;
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.COMMON_VALUE, function = Function.Avg)
+ @BanyanDB.MeasureField
private long value;
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramFunction.java
index 46289e676d..96a6bc47d2 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramFunction.java
@@ -68,15 +68,18 @@ public abstract class AvgHistogramFunction extends Meter implements AcceptableVa
@Setter
@Column(columnName = SUMMATION, storageOnly = true)
@ElasticSearch.Column(columnAlias = "datatable_summation")
+ @BanyanDB.MeasureField
protected DataTable summation = new DataTable(30);
@Getter
@Setter
@Column(columnName = COUNT, storageOnly = true)
@ElasticSearch.Column(columnAlias = "datatable_count")
+ @BanyanDB.MeasureField
protected DataTable count = new DataTable(30);
@Getter
@Setter
@Column(columnName = DATASET, dataType = Column.ValueDataType.HISTOGRAM, storageOnly = true, defaultValue = 0)
+ @BanyanDB.MeasureField
private DataTable dataset = new DataTable(30);
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramPercentileFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramPercentileFunction.java
index 186e047b02..1c3d12068d 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramPercentileFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramPercentileFunction.java
@@ -83,20 +83,24 @@ public abstract class AvgHistogramPercentileFunction extends Meter implements Ac
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.LABELED_VALUE, storageOnly = true)
@ElasticSearch.Column(columnAlias = "datatable_value")
+ @BanyanDB.MeasureField
private DataTable percentileValues = new DataTable(10);
@Getter
@Setter
@Column(columnName = SUMMATION, storageOnly = true)
@ElasticSearch.Column(columnAlias = "datatable_summation")
+ @BanyanDB.MeasureField
protected DataTable summation = new DataTable(30);
@Getter
@Setter
@Column(columnName = COUNT, storageOnly = true)
@ElasticSearch.Column(columnAlias = "datatable_count")
+ @BanyanDB.MeasureField
protected DataTable count = new DataTable(30);
@Getter
@Setter
@Column(columnName = DATASET, storageOnly = true)
+ @BanyanDB.MeasureField
private DataTable dataset = new DataTable(30);
/**
* Rank
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java
index 9e78a41da8..c7c46f4e6f 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java
@@ -66,16 +66,19 @@ public abstract class AvgLabeledFunction extends Meter implements AcceptableValu
@Setter
@Column(columnName = SUMMATION, storageOnly = true)
@ElasticSearch.Column(columnAlias = "datatable_summation")
+ @BanyanDB.MeasureField
protected DataTable summation = new DataTable(30);
@Getter
@Setter
@Column(columnName = COUNT, storageOnly = true)
@ElasticSearch.Column(columnAlias = "datatable_count")
+ @BanyanDB.MeasureField
protected DataTable count = new DataTable(30);
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.LABELED_VALUE, storageOnly = true)
@ElasticSearch.Column(columnAlias = "datatable_value")
+ @BanyanDB.MeasureField
private DataTable value = new DataTable(30);
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java
index 800320048c..c5145212b6 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java
@@ -63,6 +63,7 @@ public abstract class LatestFunction extends Meter implements AcceptableValue<Lo
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.COMMON_VALUE, function = Function.Latest)
+ @BanyanDB.MeasureField
private long value;
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java
index 43c3012ab1..e973b07313 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java
@@ -60,6 +60,7 @@ public abstract class SumFunction extends Meter implements AcceptableValue<Long>
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.COMMON_VALUE, function = Function.Sum)
+ @BanyanDB.MeasureField
private long value;
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumHistogramPercentileFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumHistogramPercentileFunction.java
index 305a7e3d70..11d8379603 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumHistogramPercentileFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumHistogramPercentileFunction.java
@@ -73,11 +73,13 @@ public abstract class SumHistogramPercentileFunction extends Meter implements Ac
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.LABELED_VALUE, storageOnly = true)
@ElasticSearch.Column(columnAlias = "datatable_value")
+ @BanyanDB.MeasureField
private DataTable percentileValues = new DataTable(10);
@Getter
@Setter
@Column(columnName = SUMMATION, storageOnly = true)
@ElasticSearch.Column(columnAlias = "datatable_summation")
+ @BanyanDB.MeasureField
protected DataTable summation = new DataTable(30);
/**
* Rank
@@ -85,6 +87,7 @@ public abstract class SumHistogramPercentileFunction extends Meter implements Ac
@Getter
@Setter
@Column(columnName = RANKS, storageOnly = true)
+ @BanyanDB.MeasureField
private IntList ranks = new IntList(10);
private boolean isCalculated = false;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinFunction.java
index 3e53c18c73..77b439476b 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinFunction.java
@@ -61,11 +61,13 @@ public abstract class SumPerMinFunction extends Meter implements AcceptableValue
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.COMMON_VALUE, function = Function.Avg)
+ @BanyanDB.MeasureField
private long value;
@Getter
@Setter
@Column(columnName = TOTAL, storageOnly = true)
+ @BanyanDB.MeasureField
private long total;
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinLabeledFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinLabeledFunction.java
index 50919f43d3..7acfd06c66 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinLabeledFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinLabeledFunction.java
@@ -60,11 +60,13 @@ public abstract class SumPerMinLabeledFunction extends Meter implements Acceptab
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.LABELED_VALUE, storageOnly = true)
+ @BanyanDB.MeasureField
private DataTable value = new DataTable(30);
@Getter
@Setter
@Column(columnName = TOTAL, storageOnly = true)
+ @BanyanDB.MeasureField
private DataTable total = new DataTable(30);
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/ApdexMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/ApdexMetrics.java
index 873a153def..a821d6574b 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/ApdexMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/ApdexMetrics.java
@@ -26,6 +26,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entranc
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.MetricsFunction;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
import org.apache.skywalking.oap.server.core.query.sql.Function;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
@@ -50,18 +51,22 @@ public abstract class ApdexMetrics extends Metrics implements IntValueHolder {
@Getter
@Setter
@Column(columnName = TOTAL_NUM, storageOnly = true)
+ @BanyanDB.MeasureField
private long totalNum;
@Getter
@Setter
@Column(columnName = S_NUM, storageOnly = true)
+ @BanyanDB.MeasureField
private long sNum;
@Getter
@Setter
@Column(columnName = T_NUM, storageOnly = true)
+ @BanyanDB.MeasureField
private long tNum;
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.COMMON_VALUE, function = Function.Avg)
+ @BanyanDB.MeasureField
@ElasticSearch.Column(columnAlias = "int_value")
private int value;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/CPMMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/CPMMetrics.java
index bc0f02f01f..5428a344eb 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/CPMMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/CPMMetrics.java
@@ -24,6 +24,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.ConstOn
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entrance;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.MetricsFunction;
import org.apache.skywalking.oap.server.core.query.sql.Function;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
@MetricsFunction(functionName = "cpm")
@@ -35,10 +36,12 @@ public abstract class CPMMetrics extends Metrics implements LongValueHolder {
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.COMMON_VALUE, function = Function.Avg)
+ @BanyanDB.MeasureField
private long value;
@Getter
@Setter
@Column(columnName = TOTAL, storageOnly = true)
+ @BanyanDB.MeasureField
private long total;
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/CountMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/CountMetrics.java
index 9a223147f3..a044837717 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/CountMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/CountMetrics.java
@@ -24,6 +24,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.ConstOn
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entrance;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.MetricsFunction;
import org.apache.skywalking.oap.server.core.query.sql.Function;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
@MetricsFunction(functionName = "count")
@@ -34,6 +35,7 @@ public abstract class CountMetrics extends Metrics implements LongValueHolder {
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.COMMON_VALUE, function = Function.Sum)
+ @BanyanDB.MeasureField
private long value;
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/DoubleAvgMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/DoubleAvgMetrics.java
index 1e9d7b742a..bce29c98bf 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/DoubleAvgMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/DoubleAvgMetrics.java
@@ -25,6 +25,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entranc
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.MetricsFunction;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
import org.apache.skywalking.oap.server.core.query.sql.Function;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
@@ -39,15 +40,18 @@ public abstract class DoubleAvgMetrics extends Metrics implements DoubleValueHol
@Setter
@Column(columnName = SUMMATION, storageOnly = true)
@ElasticSearch.Column(columnAlias = "double_summation")
+ @BanyanDB.MeasureField
private double summation;
@Getter
@Setter
@Column(columnName = COUNT, storageOnly = true)
+ @BanyanDB.MeasureField
private long count;
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.COMMON_VALUE, function = Function.Avg)
@ElasticSearch.Column(columnAlias = "double_value")
+ @BanyanDB.MeasureField
private double value;
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/HistogramMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/HistogramMetrics.java
index dbb4870857..9e6fa6f01c 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/HistogramMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/HistogramMetrics.java
@@ -24,6 +24,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Arg;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entrance;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.MetricsFunction;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
/**
@@ -42,6 +43,7 @@ public abstract class HistogramMetrics extends Metrics {
@Getter
@Setter
@Column(columnName = DATASET, dataType = Column.ValueDataType.HISTOGRAM, storageOnly = true, defaultValue = 0)
+ @BanyanDB.MeasureField
private DataTable dataset = new DataTable(30);
/**
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/LongAvgMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/LongAvgMetrics.java
index 661281c770..dd9bb25d95 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/LongAvgMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/LongAvgMetrics.java
@@ -25,6 +25,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entranc
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.MetricsFunction;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
import org.apache.skywalking.oap.server.core.query.sql.Function;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
@MetricsFunction(functionName = "longAvg")
@@ -37,14 +38,17 @@ public abstract class LongAvgMetrics extends Metrics implements LongValueHolder
@Getter
@Setter
@Column(columnName = SUMMATION, storageOnly = true)
+ @BanyanDB.MeasureField
protected long summation;
@Getter
@Setter
@Column(columnName = COUNT, storageOnly = true)
+ @BanyanDB.MeasureField
protected long count;
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.COMMON_VALUE, function = Function.Avg)
+ @BanyanDB.MeasureField
private long value;
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxDoubleMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxDoubleMetrics.java
index 5dcef2369c..8929e67dfd 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxDoubleMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxDoubleMetrics.java
@@ -23,6 +23,7 @@ import lombok.Setter;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entrance;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.MetricsFunction;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
@MetricsFunction(functionName = "maxDouble")
@@ -33,6 +34,7 @@ public abstract class MaxDoubleMetrics extends Metrics implements DoubleValueHol
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.COMMON_VALUE)
+ @BanyanDB.MeasureField
private double value;
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxLongMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxLongMetrics.java
index 0d3043faca..5785e72d51 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxLongMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxLongMetrics.java
@@ -23,6 +23,7 @@ import lombok.Setter;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entrance;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.MetricsFunction;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
@MetricsFunction(functionName = "max")
@@ -33,6 +34,7 @@ public abstract class MaxLongMetrics extends Metrics implements LongValueHolder
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.COMMON_VALUE)
+ @BanyanDB.MeasureField
private long value;
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinDoubleMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinDoubleMetrics.java
index bdc45e63e8..005e972f8d 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinDoubleMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinDoubleMetrics.java
@@ -23,6 +23,7 @@ import lombok.Setter;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entrance;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.MetricsFunction;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
@MetricsFunction(functionName = "minDouble")
@@ -33,6 +34,7 @@ public abstract class MinDoubleMetrics extends Metrics implements DoubleValueHol
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.COMMON_VALUE)
+ @BanyanDB.MeasureField
private double value = Double.MAX_VALUE;
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinLongMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinLongMetrics.java
index 88f7fab2c5..61b8ef587f 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinLongMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinLongMetrics.java
@@ -23,6 +23,7 @@ import lombok.Setter;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entrance;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.MetricsFunction;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
@MetricsFunction(functionName = "min")
@@ -33,6 +34,7 @@ public abstract class MinLongMetrics extends Metrics implements LongValueHolder
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.COMMON_VALUE)
+ @BanyanDB.MeasureField
private long value = Long.MAX_VALUE;
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentMetrics.java
index 9a09a46a97..64ec315f65 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentMetrics.java
@@ -24,6 +24,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entranc
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Expression;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.MetricsFunction;
import org.apache.skywalking.oap.server.core.query.sql.Function;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
@MetricsFunction(functionName = "percent")
@@ -35,14 +36,16 @@ public abstract class PercentMetrics extends Metrics implements IntValueHolder {
@Getter
@Setter
@Column(columnName = TOTAL, storageOnly = true)
+ @BanyanDB.MeasureField
private long total;
@Getter
@Setter
@Column(columnName = PERCENTAGE, dataType = Column.ValueDataType.COMMON_VALUE, function = Function.Avg)
+ @BanyanDB.MeasureField
private int percentage;
@Getter
@Setter
- @Column(columnName = MATCH, storageOnly = true)
+ @Column(columnName = MATCH)
private long match;
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentileMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentileMetrics.java
index 24aa7b71f5..b58d490fa5 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentileMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentileMetrics.java
@@ -27,6 +27,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Arg;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entrance;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.MetricsFunction;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
@@ -54,14 +55,17 @@ public abstract class PercentileMetrics extends Metrics implements MultiIntValue
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.LABELED_VALUE, storageOnly = true)
@ElasticSearch.Column(columnAlias = "datatable_value")
+ @BanyanDB.MeasureField
private DataTable percentileValues;
@Getter
@Setter
@Column(columnName = PRECISION, storageOnly = true)
+ @BanyanDB.MeasureField
private int precision;
@Getter
@Setter
@Column(columnName = DATASET, storageOnly = true)
+ @BanyanDB.MeasureField
private DataTable dataset;
private boolean isCalculated;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/RateMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/RateMetrics.java
index 830f1d7c5e..f107a78f3c 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/RateMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/RateMetrics.java
@@ -23,6 +23,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entranc
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Expression;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.MetricsFunction;
import org.apache.skywalking.oap.server.core.query.sql.Function;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
@MetricsFunction(functionName = "rate")
@@ -34,14 +35,17 @@ public abstract class RateMetrics extends Metrics implements IntValueHolder {
@Getter
@Setter
@Column(columnName = DENOMINATOR)
+ @BanyanDB.MeasureField
private long denominator;
@Getter
@Setter
@Column(columnName = PERCENTAGE, dataType = Column.ValueDataType.COMMON_VALUE, function = Function.Avg)
+ @BanyanDB.MeasureField
private int percentage;
@Getter
@Setter
@Column(columnName = NUMERATOR)
+ @BanyanDB.MeasureField
private long numerator;
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/SumMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/SumMetrics.java
index a2f3d61fb9..7b1cb47bee 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/SumMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/SumMetrics.java
@@ -24,6 +24,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entranc
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.MetricsFunction;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
import org.apache.skywalking.oap.server.core.query.sql.Function;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
@MetricsFunction(functionName = "sum")
@@ -34,6 +35,7 @@ public abstract class SumMetrics extends Metrics implements LongValueHolder {
@Getter
@Setter
@Column(columnName = VALUE, dataType = Column.ValueDataType.COMMON_VALUE, function = Function.Sum)
+ @BanyanDB.MeasureField
private long value;
@Entrance
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/annotation/BanyanDB.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/annotation/BanyanDB.java
index d3cd601081..b2878ba665 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/annotation/BanyanDB.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/annotation/BanyanDB.java
@@ -131,4 +131,13 @@ public @interface BanyanDB {
@interface TimestampColumn {
String value();
}
+
+ /**
+ * MeasureField defines a column as a measure's field.
+ * @since 9.4.0
+ */
+ @Target({ElementType.FIELD})
+ @Retention(RetentionPolicy.RUNTIME)
+ @interface MeasureField {
+ }
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/BanyanDBExtension.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/BanyanDBExtension.java
index 5c2ab25438..0c0ed11cdb 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/BanyanDBExtension.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/BanyanDBExtension.java
@@ -63,6 +63,12 @@ public class BanyanDBExtension {
@Getter
private final BanyanDB.IndexRule.IndexType indexType;
+ /**
+ * A column belong to a measure's field.
+ */
+ @Getter
+ private final boolean isMeasureField;
+
/**
* @return true if this column is a part of sharding key
*/
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/StorageModels.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/StorageModels.java
index f196f8aa5b..2d600b422c 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/StorageModels.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/StorageModels.java
@@ -190,7 +190,7 @@ public class StorageModels implements IModelManager, ModelCreator, ModelManipula
ElasticSearchExtension elasticSearchExtension = new ElasticSearchExtension(
elasticSearchAnalyzer == null ? null : elasticSearchAnalyzer.analyzer(),
elasticSearchColumn == null ? null : elasticSearchColumn.columnAlias(),
- keywordColumn == null ? false : true
+ keywordColumn != null
);
// BanyanDB extension
@@ -202,11 +202,14 @@ public class StorageModels implements IModelManager, ModelCreator, ModelManipula
BanyanDB.NoIndexing.class);
final BanyanDB.IndexRule banyanDBIndexRule = field.getAnnotation(
BanyanDB.IndexRule.class);
+ final BanyanDB.MeasureField banyanDBMeasureField = field.getAnnotation(
+ BanyanDB.MeasureField.class);
BanyanDBExtension banyanDBExtension = new BanyanDBExtension(
banyanDBSeriesID == null ? -1 : banyanDBSeriesID.index(),
banyanDBGlobalIndex != null,
banyanDBNoIndex == null && column.storageOnly(),
- banyanDBIndexRule == null ? BanyanDB.IndexRule.IndexType.INVERTED : banyanDBIndexRule.indexType()
+ banyanDBIndexRule == null ? BanyanDB.IndexRule.IndexType.INVERTED : banyanDBIndexRule.indexType(),
+ banyanDBMeasureField != null
);
final ModelColumn modelColumn = new ModelColumn(
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
index 4222af0b6a..00f1d7d995 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
@@ -339,7 +339,7 @@ public enum MetadataRegistry {
if (columnStorageName.equals(Metrics.TIME_BUCKET)) {
continue;
}
- if (col.isStorageOnly() || valueColumnOpt.isPresent() && valueColumnOpt.get().getValueCName().equals(columnStorageName)) {
+ if (col.getBanyanDBExtension().isMeasureField()) {
builder.spec(columnStorageName, new ColumnSpec(ColumnType.FIELD, col.getType()));
result.field(parseFieldSpec(col));
continue;
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsQueryDAO.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsQueryDAO.java
index ee306052c8..6741c517ff 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsQueryDAO.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsQueryDAO.java
@@ -223,7 +223,7 @@ public class BanyanDBMetricsQueryDAO extends AbstractBanyanDBDAO implements IMet
TimestampRange timestampRange = new TimestampRange(duration.getStartTimestamp(), duration.getEndTimestamp());
Map<String, DataPoint> map = new HashMap<>();
- MeasureQueryResponse resp = query(schema, Collections.emptySet(), ImmutableSet.of(valueColumnName), timestampRange, new QueryBuilder<MeasureQuery>() {
+ MeasureQueryResponse resp = query(schema, ImmutableSet.of(Metrics.ENTITY_ID), ImmutableSet.of(valueColumnName), timestampRange, new QueryBuilder<MeasureQuery>() {
@Override
protected void apply(MeasureQuery query) {
query.and(eq(Metrics.ENTITY_ID, entityID));