diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md index 44f70e0363..08cdb62ca6 100644 --- a/docs/en/changes/changes.md +++ b/docs/en/changes/changes.md @@ -60,6 +60,7 @@ * Fix ServiceMeshServiceDispatcher overwrite ServiceDispatcher debug file when open SW_OAL_ENGINE_DEBUG. * Use `groupBy` and `in` operators to optimize topology query for BanyanDB storage plugin. * Support server status watcher for `MetricsPersistentWorker` to check the metrics whether required initialization. +* Fix the meter value are not correct when using `sumPerMinLabeld` or `sumHistogramPercentile` MAL function. #### UI 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 c50a8723ac..305a7e3d70 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 @@ -233,9 +233,9 @@ public abstract class SumHistogramPercentileFunction extends Meter implements Ac SumHistogramPercentileFunction metrics = (SumHistogramPercentileFunction) createNew(); metrics.setEntityId(getEntityId()); metrics.setTimeBucket(toTimeBucketInHour()); - metrics.setSummation(getSummation()); - metrics.setRanks(getRanks()); - metrics.setPercentileValues(getPercentileValues()); + metrics.getSummation().copyFrom(getSummation()); + metrics.getRanks().copyFrom(getRanks()); + metrics.getPercentileValues().copyFrom(getPercentileValues()); return metrics; } @@ -244,9 +244,9 @@ public abstract class SumHistogramPercentileFunction extends Meter implements Ac SumHistogramPercentileFunction metrics = (SumHistogramPercentileFunction) createNew(); metrics.setEntityId(getEntityId()); metrics.setTimeBucket(toTimeBucketInDay()); - metrics.setSummation(getSummation()); - metrics.setRanks(getRanks()); - metrics.setPercentileValues(getPercentileValues()); + metrics.getSummation().copyFrom(getSummation()); + metrics.getRanks().copyFrom(getRanks()); + metrics.getPercentileValues().copyFrom(getPercentileValues()); return metrics; } 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 0dbae94e73..50919f43d3 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 @@ -108,7 +108,7 @@ public abstract class SumPerMinLabeledFunction extends Meter implements Acceptab metrics.setEntityId(getEntityId()); metrics.setTimeBucket(toTimeBucketInHour()); metrics.setServiceId(getServiceId()); - metrics.setTotal(getTotal()); + metrics.getTotal().copyFrom(getTotal()); return metrics; } @@ -118,7 +118,7 @@ public abstract class SumPerMinLabeledFunction extends Meter implements Acceptab metrics.setEntityId(getEntityId()); metrics.setTimeBucket(toTimeBucketInDay()); metrics.setServiceId(getServiceId()); - metrics.setTotal(getTotal()); + metrics.getTotal().copyFrom(getTotal()); return metrics; }