diff --git a/runners/core-java/src/test/java/org/apache/beam/runners/core/metrics/MetricsContainerStepMapTest.java b/runners/core-java/src/test/java/org/apache/beam/runners/core/metrics/MetricsContainerStepMapTest.java index d0fc61b1eecc..f5f7cafedbeb 100644 --- a/runners/core-java/src/test/java/org/apache/beam/runners/core/metrics/MetricsContainerStepMapTest.java +++ b/runners/core-java/src/test/java/org/apache/beam/runners/core/metrics/MetricsContainerStepMapTest.java @@ -154,7 +154,8 @@ public void testDistributionCommittedUnsupportedInAttemptedAccumulatedMetricResu thrown.expect(UnsupportedOperationException.class); thrown.expectMessage("This runner does not currently support committed metrics results."); - assertDistribution(DISTRIBUTION_NAME, step1res, STEP1, DistributionResult.ZERO, true); + assertDistribution( + DISTRIBUTION_NAME, step1res, STEP1, DistributionResult.IDENTITY_ELEMENT, true); } @Test diff --git a/runners/direct-java/src/test/java/org/apache/beam/runners/direct/DirectMetricsTest.java b/runners/direct-java/src/test/java/org/apache/beam/runners/direct/DirectMetricsTest.java index c23b0f03778b..f34bb0c34b68 100644 --- a/runners/direct-java/src/test/java/org/apache/beam/runners/direct/DirectMetricsTest.java +++ b/runners/direct-java/src/test/java/org/apache/beam/runners/direct/DirectMetricsTest.java @@ -101,7 +101,7 @@ public void testApplyCommittedNoFilter() { committedMetricsResult("ns1", "name2", "step1", 12L), committedMetricsResult("ns1", "name1", "step2", 7L))); assertThat(results.distributions(), contains( - attemptedMetricsResult("ns1", "name1", "step1", DistributionResult.ZERO))); + attemptedMetricsResult("ns1", "name1", "step1", DistributionResult.IDENTITY_ELEMENT))); assertThat(results.distributions(), contains( committedMetricsResult("ns1", "name1", "step1", DistributionResult.create(12, 3, 3, 5)))); assertThat(results.gauges(), contains( diff --git a/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/DataflowMetrics.java b/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/DataflowMetrics.java index b5ad6b396cb6..0983674b9831 100644 --- a/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/DataflowMetrics.java +++ b/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/DataflowMetrics.java @@ -191,7 +191,7 @@ private Long getCounterValue(com.google.api.services.dataflow.model.MetricUpdate private DistributionResult getDistributionValue( com.google.api.services.dataflow.model.MetricUpdate metricUpdate) { if (metricUpdate.getDistribution() == null) { - return DistributionResult.ZERO; + return DistributionResult.IDENTITY_ELEMENT; } ArrayMap distributionMap = (ArrayMap) metricUpdate.getDistribution(); Long count = ((Number) distributionMap.get("count")).longValue(); diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/DistributionResult.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/DistributionResult.java index b01ae4646b35..6da721068fb7 100644 --- a/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/DistributionResult.java +++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/DistributionResult.java @@ -37,7 +37,9 @@ public double mean() { return (1.0 * sum()) / count(); } - public static final DistributionResult ZERO = create(0, 0, Long.MAX_VALUE, Long.MIN_VALUE); + /** The IDENTITY_ELEMENT is used to start accumulating distributions. */ + public static final DistributionResult IDENTITY_ELEMENT = + create(0, 0, Long.MAX_VALUE, Long.MIN_VALUE); public static DistributionResult create(long sum, long count, long min, long max) { return new AutoValue_DistributionResult(sum, count, min, max);