diff options
author | Yang Song <songy23@users.noreply.github.com> | 2018-04-27 14:47:12 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-27 14:47:12 -0700 |
commit | dec25072b4b7671a8ff35f0a121b41eddff5f66f (patch) | |
tree | f395d21ddce7c2889c987cd46c0bbdcdc469b089 /api/src/test/java/io | |
parent | 4e62aac18595243b9ed4c98137c24e7413c1dc48 (diff) | |
download | opencensus-java-dec25072b4b7671a8ff35f0a121b41eddff5f66f.tar.gz |
Add Aggregation.LastValue and AggregationData.LastValueData to support Gauge (#1055)
* Add LastValue and LastValueData
* Support LastValue and LastValueData in impl
* Use Utils instead of Precondition
* Add LastValue and remove Mean from match() method.
* Support LastValue and LastValueData in exporters and zpages.
* Update MutableLastValue, add comments on why Mean is still supported.
Diffstat (limited to 'api/src/test/java/io')
3 files changed, 52 insertions, 37 deletions
diff --git a/api/src/test/java/io/opencensus/stats/AggregationDataTest.java b/api/src/test/java/io/opencensus/stats/AggregationDataTest.java index 3431d043..9f2aa589 100644 --- a/api/src/test/java/io/opencensus/stats/AggregationDataTest.java +++ b/api/src/test/java/io/opencensus/stats/AggregationDataTest.java @@ -23,6 +23,8 @@ import io.opencensus.common.Function; import io.opencensus.common.Functions; import io.opencensus.stats.AggregationData.CountData; import io.opencensus.stats.AggregationData.DistributionData; +import io.opencensus.stats.AggregationData.LastValueDataDouble; +import io.opencensus.stats.AggregationData.LastValueDataLong; import io.opencensus.stats.AggregationData.MeanData; import io.opencensus.stats.AggregationData.SumDataDouble; import io.opencensus.stats.AggregationData.SumDataLong; @@ -95,6 +97,8 @@ public class AggregationDataTest { .addEqualityGroup(DistributionData.create(10, 10, 1, 1, 55.5, Arrays.asList(0L, 10L, 0L))) .addEqualityGroup(MeanData.create(5.0, 1), MeanData.create(5.0, 1)) .addEqualityGroup(MeanData.create(-5.0, 1), MeanData.create(-5.0, 1)) + .addEqualityGroup(LastValueDataDouble.create(20.0), LastValueDataDouble.create(20.0)) + .addEqualityGroup(LastValueDataLong.create(20), LastValueDataLong.create(20)) .testEquals(); } @@ -105,8 +109,9 @@ public class AggregationDataTest { SumDataDouble.create(10.0), SumDataLong.create(100000000), CountData.create(40), - MeanData.create(5.0, 1), - DistributionData.create(1, 1, 1, 1, 0, Arrays.asList(0L, 10L, 0L))); + DistributionData.create(1, 1, 1, 1, 0, Arrays.asList(0L, 10L, 0L)), + LastValueDataDouble.create(20.0), + LastValueDataLong.create(200000000L)); final List<Object> actual = new ArrayList<Object>(); for (AggregationData aggregation : aggregations) { @@ -132,17 +137,24 @@ public class AggregationDataTest { return null; } }, - new Function<MeanData, Void>() { + new Function<DistributionData, Void>() { @Override - public Void apply(MeanData arg) { - actual.add(arg.getMean()); + public Void apply(DistributionData arg) { + actual.add(arg.getBucketCounts()); return null; } }, - new Function<DistributionData, Void>() { + new Function<LastValueDataDouble, Void>() { @Override - public Void apply(DistributionData arg) { - actual.add(arg.getBucketCounts()); + public Void apply(LastValueDataDouble arg) { + actual.add(arg.getLastValue()); + return null; + } + }, + new Function<LastValueDataLong, Void>() { + @Override + public Void apply(LastValueDataLong arg) { + actual.add(arg.getLastValue()); return null; } }, @@ -150,6 +162,7 @@ public class AggregationDataTest { } assertThat(actual) - .isEqualTo(Arrays.asList(10.0, 100000000L, 40L, 5.0, Arrays.asList(0L, 10L, 0L))); + .containsExactly(10.0, 100000000L, 40L, Arrays.asList(0L, 10L, 0L), 20.0, 200000000L) + .inOrder(); } } diff --git a/api/src/test/java/io/opencensus/stats/AggregationTest.java b/api/src/test/java/io/opencensus/stats/AggregationTest.java index 3ef131b8..c2e6a716 100644 --- a/api/src/test/java/io/opencensus/stats/AggregationTest.java +++ b/api/src/test/java/io/opencensus/stats/AggregationTest.java @@ -19,10 +19,10 @@ package io.opencensus.stats; import static com.google.common.truth.Truth.assertThat; import com.google.common.testing.EqualsTester; -import io.opencensus.common.Function; import io.opencensus.common.Functions; import io.opencensus.stats.Aggregation.Count; import io.opencensus.stats.Aggregation.Distribution; +import io.opencensus.stats.Aggregation.LastValue; import io.opencensus.stats.Aggregation.Mean; import io.opencensus.stats.Aggregation.Sum; import java.util.ArrayList; @@ -66,6 +66,7 @@ public class AggregationTest { Distribution.create(BucketBoundaries.create(Arrays.asList(0.0, 1.0, 5.0))), Distribution.create(BucketBoundaries.create(Arrays.asList(0.0, 1.0, 5.0)))) .addEqualityGroup(Mean.create(), Mean.create()) + .addEqualityGroup(LastValue.create(), LastValue.create()) .testEquals(); } @@ -76,39 +77,21 @@ public class AggregationTest { Sum.create(), Count.create(), Mean.create(), - Distribution.create(BucketBoundaries.create(Arrays.asList(-10.0, 1.0, 5.0)))); + Distribution.create(BucketBoundaries.create(Arrays.asList(-10.0, 1.0, 5.0))), + LastValue.create()); List<String> actual = new ArrayList<String>(); for (Aggregation aggregation : aggregations) { actual.add( aggregation.match( - new Function<Sum, String>() { - @Override - public String apply(Sum arg) { - return "SUM"; - } - }, - new Function<Count, String>() { - @Override - public String apply(Count arg) { - return "COUNT"; - } - }, - new Function<Mean, String>() { - @Override - public String apply(Mean arg) { - return "MEAN"; - } - }, - new Function<Distribution, String>() { - @Override - public String apply(Distribution arg) { - return "DISTRIBUTION"; - } - }, - Functions.<String>throwIllegalArgumentException())); + Functions.returnConstant("SUM"), + Functions.returnConstant("COUNT"), + Functions.returnConstant("DISTRIBUTION"), + Functions.returnConstant("LASTVALUE"), + Functions.returnConstant("UNKNOWN"))); } - assertThat(actual).isEqualTo(Arrays.asList("SUM", "COUNT", "MEAN", "DISTRIBUTION")); + assertThat(actual) + .isEqualTo(Arrays.asList("SUM", "COUNT", "UNKNOWN", "DISTRIBUTION", "LASTVALUE")); } } diff --git a/api/src/test/java/io/opencensus/stats/ViewDataTest.java b/api/src/test/java/io/opencensus/stats/ViewDataTest.java index 0dc78e33..89009f34 100644 --- a/api/src/test/java/io/opencensus/stats/ViewDataTest.java +++ b/api/src/test/java/io/opencensus/stats/ViewDataTest.java @@ -27,10 +27,13 @@ import io.opencensus.common.Functions; import io.opencensus.common.Timestamp; import io.opencensus.stats.Aggregation.Count; import io.opencensus.stats.Aggregation.Distribution; +import io.opencensus.stats.Aggregation.LastValue; import io.opencensus.stats.Aggregation.Mean; import io.opencensus.stats.Aggregation.Sum; import io.opencensus.stats.AggregationData.CountData; import io.opencensus.stats.AggregationData.DistributionData; +import io.opencensus.stats.AggregationData.LastValueDataDouble; +import io.opencensus.stats.AggregationData.LastValueDataLong; import io.opencensus.stats.AggregationData.SumDataDouble; import io.opencensus.stats.AggregationData.SumDataLong; import io.opencensus.stats.View.AggregationWindow; @@ -218,6 +221,22 @@ public final class ViewDataTest { CountData.create(100))); } + @Test + public void preventAggregationAndAggregationDataMismatch_LastValueDouble_LastValueLong() { + aggregationAndAggregationDataMismatch( + createView(LastValue.create(), MEASURE_DOUBLE), + ImmutableMap.<List<TagValue>, AggregationData>of( + Arrays.asList(V1, V2), LastValueDataLong.create(100))); + } + + @Test + public void preventAggregationAndAggregationDataMismatch_LastValueLong_LastValueDouble() { + aggregationAndAggregationDataMismatch( + createView(LastValue.create(), MEASURE_LONG), + ImmutableMap.<List<TagValue>, AggregationData>of( + Arrays.asList(V1, V2), LastValueDataDouble.create(100))); + } + private static View createView(Aggregation aggregation) { return createView(aggregation, MEASURE_DOUBLE); } |