aboutsummaryrefslogtreecommitdiff
path: root/impl_core
diff options
context:
space:
mode:
authorMayur Kale <mayurkale@google.com>2018-10-13 12:14:59 -0700
committerBogdan Drutu <bdrutu@google.com>2018-10-13 12:14:59 -0700
commit4aa3f0c4a17a183c43b793eb5e946c34fdefd4bf (patch)
tree72e9571174f7aba8af3b0c4f8e15e4ea0405a534 /impl_core
parent809ed22dfe50a21426e0db20c85a28daa8ad028b (diff)
downloadopencensus-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.java12
-rw-r--r--impl_core/src/test/java/io/opencensus/implcore/stats/MutableAggregationTest.java10
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(