diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/CPMIndicator.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/CPMIndicator.java index 576723230256968266c6f44058da9b9c83d1502e..9f956b8bb004b7bed81af94e28c0b493052d196b 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/CPMIndicator.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/CPMIndicator.java @@ -18,11 +18,9 @@ package org.apache.skywalking.oap.server.core.analysis.indicator; -import lombok.Getter; -import lombok.Setter; -import org.apache.skywalking.oap.server.core.analysis.indicator.annotation.ConstOne; -import org.apache.skywalking.oap.server.core.analysis.indicator.annotation.Entrance; -import org.apache.skywalking.oap.server.core.analysis.indicator.annotation.IndicatorOperator; +import lombok.*; +import org.apache.skywalking.oap.server.core.analysis.indicator.annotation.*; +import org.apache.skywalking.oap.server.core.query.sql.Function; import org.apache.skywalking.oap.server.core.storage.annotation.Column; /** @@ -34,7 +32,7 @@ public abstract class CPMIndicator extends Indicator implements LongValueHolder protected static final String VALUE = "value"; protected static final String TOTAL = "total"; - @Getter @Setter @Column(columnName = VALUE, isValue = true) private long value; + @Getter @Setter @Column(columnName = VALUE, isValue = true, function = Function.Avg) private long value; @Getter @Setter @Column(columnName = TOTAL) private long total; @Entrance diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/CountIndicator.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/CountIndicator.java index d9aa44a901145e0e032f747f716f85b58319e300..53db0af43180e34c8ccb6a4e2a9f9429701e262f 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/CountIndicator.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/CountIndicator.java @@ -20,6 +20,7 @@ package org.apache.skywalking.oap.server.core.analysis.indicator; import lombok.*; import org.apache.skywalking.oap.server.core.analysis.indicator.annotation.*; +import org.apache.skywalking.oap.server.core.query.sql.Function; import org.apache.skywalking.oap.server.core.storage.annotation.Column; /** @@ -30,7 +31,7 @@ public abstract class CountIndicator extends Indicator implements LongValueHolde protected static final String VALUE = "value"; - @Getter @Setter @Column(columnName = VALUE) private long value; + @Getter @Setter @Column(columnName = VALUE, isValue = true, function = Function.Sum) private long value; @Entrance public final void combine(@ConstOne long count) { diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/DoubleAvgIndicator.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/DoubleAvgIndicator.java index 341029badc18482c0eaf3f85b2b401cd49c52d2c..0f32d9899a1c33efa751ebff93b23a117149e171 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/DoubleAvgIndicator.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/DoubleAvgIndicator.java @@ -20,6 +20,7 @@ package org.apache.skywalking.oap.server.core.analysis.indicator; import lombok.*; import org.apache.skywalking.oap.server.core.analysis.indicator.annotation.*; +import org.apache.skywalking.oap.server.core.query.sql.Function; import org.apache.skywalking.oap.server.core.storage.annotation.Column; /** @@ -34,7 +35,7 @@ public abstract class DoubleAvgIndicator extends Indicator implements DoubleValu @Getter @Setter @Column(columnName = SUMMATION) private double summation; @Getter @Setter @Column(columnName = COUNT) private int count; - @Getter @Setter @Column(columnName = VALUE) private double value; + @Getter @Setter @Column(columnName = VALUE, isValue = true, function = Function.Avg) private double value; @Entrance public final void combine(@SourceFrom double summation, @ConstOne int count) { diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/PercentIndicator.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/PercentIndicator.java index 4000cc3261021fcd12324b99c56989e78909f235..1a049a333e244bc3d95115785fa95e22451400e3 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/PercentIndicator.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/PercentIndicator.java @@ -21,6 +21,7 @@ package org.apache.skywalking.oap.server.core.analysis.indicator; import lombok.*; import org.apache.skywalking.oap.server.core.analysis.indicator.annotation.*; import org.apache.skywalking.oap.server.core.analysis.indicator.expression.EqualMatch; +import org.apache.skywalking.oap.server.core.query.sql.Function; import org.apache.skywalking.oap.server.core.storage.annotation.Column; /** @@ -33,7 +34,7 @@ public abstract class PercentIndicator extends Indicator implements IntValueHold protected static final String PERCENTAGE = "percentage"; @Getter @Setter @Column(columnName = TOTAL) private long total; - @Getter @Setter @Column(columnName = PERCENTAGE, isValue = true) private int percentage; + @Getter @Setter @Column(columnName = PERCENTAGE, isValue = true, function = Function.Avg) private int percentage; @Getter @Setter @Column(columnName = MATCH) private long match; @Entrance diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/PxxIndicator.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/PxxIndicator.java index 7dab015956a103f161dd139cc80f08f83c9cc6d5..48b71451035b7e00c96ae2957a916469e1436705 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/PxxIndicator.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/PxxIndicator.java @@ -21,6 +21,7 @@ package org.apache.skywalking.oap.server.core.analysis.indicator; import java.util.*; import lombok.*; import org.apache.skywalking.oap.server.core.analysis.indicator.annotation.*; +import org.apache.skywalking.oap.server.core.query.sql.Function; import org.apache.skywalking.oap.server.core.storage.annotation.Column; /** @@ -38,7 +39,7 @@ public abstract class PxxIndicator extends Indicator implements IntValueHolder { protected static final String VALUE = "value"; protected static final String PRECISION = "precision"; - @Getter @Setter @Column(columnName = VALUE, isValue = true) private int value; + @Getter @Setter @Column(columnName = VALUE, isValue = true, function = Function.Avg) private int value; @Getter @Setter @Column(columnName = PRECISION) private int precision; @Getter @Setter @Column(columnName = DETAIL_GROUP) private IntKeyLongValueArray detailGroup; diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/SumIndicator.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/SumIndicator.java index 9f062f0b863ee40f3354e42a199f51ec83a27817..39fbe39ee2d50552651bcb40a24d627f4e48f6f5 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/SumIndicator.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/SumIndicator.java @@ -18,11 +18,9 @@ package org.apache.skywalking.oap.server.core.analysis.indicator; -import lombok.Getter; -import lombok.Setter; -import org.apache.skywalking.oap.server.core.analysis.indicator.annotation.Entrance; -import org.apache.skywalking.oap.server.core.analysis.indicator.annotation.IndicatorOperator; -import org.apache.skywalking.oap.server.core.analysis.indicator.annotation.SourceFrom; +import lombok.*; +import org.apache.skywalking.oap.server.core.analysis.indicator.annotation.*; +import org.apache.skywalking.oap.server.core.query.sql.Function; import org.apache.skywalking.oap.server.core.storage.annotation.Column; /** @@ -33,7 +31,7 @@ public abstract class SumIndicator extends Indicator implements LongValueHolder protected static final String VALUE = "value"; - @Getter @Setter @Column(columnName = VALUE) private long value; + @Getter @Setter @Column(columnName = VALUE, isValue = true, function = Function.Sum) private long value; @Entrance public final void combine(@SourceFrom long count) { diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetricQueryEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetricQueryEsDAO.java index de5048608e8dc678007604fa859614dc07d36074..f460f2ff02c6e40fa047260dfab9188520247ea8 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetricQueryEsDAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetricQueryEsDAO.java @@ -71,6 +71,10 @@ public class MetricQueryEsDAO extends EsDAO implements IMetricQueryDAO { Avg avg = idBucket.getAggregations().get(valueCName); value = (int)avg.getValue(); break; + default: + avg = idBucket.getAggregations().get(valueCName); + value = (int)avg.getValue(); + break; } KVInt kvInt = new KVInt(); @@ -89,6 +93,9 @@ public class MetricQueryEsDAO extends EsDAO implements IMetricQueryDAO { case Sum: parentAggBuilder.subAggregation(AggregationBuilders.sum(valueCName).field(valueCName)); break; + default: + parentAggBuilder.subAggregation(AggregationBuilders.avg(valueCName).field(valueCName)); + break; } }