From a81b9920cde18a999bd4c374bedc004a1cfd199c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E5=8B=87=E5=8D=87=20pengys?= <8082209@qq.com> Date: Fri, 12 Oct 2018 12:29:22 +0800 Subject: [PATCH] Set the function attribute for indicator and use AVG function to be the default value. (#1757) --- .../server/core/analysis/indicator/CPMIndicator.java | 10 ++++------ .../server/core/analysis/indicator/CountIndicator.java | 3 ++- .../core/analysis/indicator/DoubleAvgIndicator.java | 3 ++- .../core/analysis/indicator/PercentIndicator.java | 3 ++- .../server/core/analysis/indicator/PxxIndicator.java | 3 ++- .../server/core/analysis/indicator/SumIndicator.java | 10 ++++------ .../plugin/elasticsearch/query/MetricQueryEsDAO.java | 7 +++++++ 7 files changed, 23 insertions(+), 16 deletions(-) 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 5767232302..9f956b8bb0 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 d9aa44a901..53db0af431 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 341029badc..0f32d9899a 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 4000cc3261..1a049a333e 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 7dab015956..48b7145103 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 9f062f0b86..39fbe39ee2 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 de5048608e..f460f2ff02 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; } } -- GitLab