From 449b249559516cb88dc2797e98cd08dd594157f2 Mon Sep 17 00:00:00 2001 From: mrproliu <741550557@qq.com> Date: Fri, 23 Dec 2022 17:54:49 +0800 Subject: [PATCH] Fix meter value not correct in some MAL function (#10197) --- docs/en/changes/changes.md | 1 + .../function/sum/SumHistogramPercentileFunction.java | 12 ++++++------ .../function/sumpermin/SumPerMinLabeledFunction.java | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) 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; }