diff options
author | Mayur Kale <mayurkale@google.com> | 2018-10-13 12:14:59 -0700 |
---|---|---|
committer | Bogdan Drutu <bdrutu@google.com> | 2018-10-13 12:14:59 -0700 |
commit | 4aa3f0c4a17a183c43b793eb5e946c34fdefd4bf (patch) | |
tree | 72e9571174f7aba8af3b0c4f8e15e4ea0405a534 /impl_core | |
parent | 809ed22dfe50a21426e0db20c85a28daa8ad028b (diff) | |
download | opencensus-java-4aa3f0c4a17a183c43b793eb5e946c34fdefd4bf.tar.gz |
Add BucketOptions for DistributionValue (#1484)
* Add BucketOptions for DistributionValue
* Fix reviews
Diffstat (limited to 'impl_core')
-rw-r--r-- | impl_core/src/main/java/io/opencensus/implcore/stats/MutableAggregation.java | 12 | ||||
-rw-r--r-- | impl_core/src/test/java/io/opencensus/implcore/stats/MutableAggregationTest.java | 10 |
2 files changed, 12 insertions, 10 deletions
diff --git a/impl_core/src/main/java/io/opencensus/implcore/stats/MutableAggregation.java b/impl_core/src/main/java/io/opencensus/implcore/stats/MutableAggregation.java index 83beaea7..6e2bff1c 100644 --- a/impl_core/src/main/java/io/opencensus/implcore/stats/MutableAggregation.java +++ b/impl_core/src/main/java/io/opencensus/implcore/stats/MutableAggregation.java @@ -22,6 +22,7 @@ import static com.google.common.base.Preconditions.checkNotNull; import com.google.common.annotations.VisibleForTesting; import io.opencensus.common.Timestamp; import io.opencensus.metrics.export.Distribution; +import io.opencensus.metrics.export.Distribution.BucketOptions; import io.opencensus.metrics.export.Point; import io.opencensus.metrics.export.Value; import io.opencensus.stats.Aggregation; @@ -427,14 +428,15 @@ abstract class MutableAggregation { } buckets.add(metricBucket); } + + // TODO(mayurkale): Drop the first bucket when converting to metrics. + // Reason: In Stats API, bucket bounds begin with -infinity (first bucket is (-infinity, 0)). + BucketOptions bucketOptions = BucketOptions.explicitOptions(bucketBoundaries.getBoundaries()); + return Point.create( Value.distributionValue( Distribution.create( - count, - mean * count, - sumOfSquaredDeviations, - bucketBoundaries.getBoundaries(), - buckets)), + count, mean * count, sumOfSquaredDeviations, bucketOptions, buckets)), timestamp); } diff --git a/impl_core/src/test/java/io/opencensus/implcore/stats/MutableAggregationTest.java b/impl_core/src/test/java/io/opencensus/implcore/stats/MutableAggregationTest.java index fced533f..bf76b8fb 100644 --- a/impl_core/src/test/java/io/opencensus/implcore/stats/MutableAggregationTest.java +++ b/impl_core/src/test/java/io/opencensus/implcore/stats/MutableAggregationTest.java @@ -30,6 +30,7 @@ import io.opencensus.implcore.stats.MutableAggregation.MutableSumDouble; import io.opencensus.implcore.stats.MutableAggregation.MutableSumLong; import io.opencensus.metrics.export.Distribution; import io.opencensus.metrics.export.Distribution.Bucket; +import io.opencensus.metrics.export.Distribution.BucketOptions; import io.opencensus.metrics.export.Point; import io.opencensus.metrics.export.Value; import io.opencensus.stats.AggregationData; @@ -297,6 +298,9 @@ public class MutableAggregationTest { .isEqualTo(Point.create(Value.longValue(0), TIMESTAMP)); assertThat(MutableMean.create().toPoint(TIMESTAMP)) .isEqualTo(Point.create(Value.doubleValue(0), TIMESTAMP)); + + thrown.expect(IllegalArgumentException.class); + thrown.expectMessage("bucket boundaries should be > 0"); assertThat(MutableDistribution.create(BUCKET_BOUNDARIES).toPoint(TIMESTAMP)) .isEqualTo( Point.create( @@ -305,17 +309,13 @@ public class MutableAggregationTest { 0, 0, 0, - BUCKET_BOUNDARIES.getBoundaries(), + BucketOptions.explicitOptions(BUCKET_BOUNDARIES.getBoundaries()), Arrays.asList( Bucket.create(0), Bucket.create(0), Bucket.create(0), Bucket.create(0)))), TIMESTAMP)); - assertThat(MutableLastValueDouble.create().toPoint(TIMESTAMP)) - .isEqualTo(Point.create(Value.doubleValue(Double.NaN), TIMESTAMP)); - assertThat(MutableLastValueLong.create().toPoint(TIMESTAMP)) - .isEqualTo(Point.create(Value.longValue(0), TIMESTAMP)); } private static void verifyMutableDistribution( |