From 529688f2b63ec98e4e78bf071f8d1b4fbde96eb5 Mon Sep 17 00:00:00 2001 From: Yang Song Date: Wed, 13 Jun 2018 11:27:12 -0700 Subject: Stackdriver Stats Exporter: don't set StartTime for Gauge values. (#1253) --- .../exporter/stats/stackdriver/StackdriverExportUtils.java | 9 ++++++--- .../stats/stackdriver/StackdriverExportUtilsTest.java | 13 ++++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) (limited to 'exporters/stats/stackdriver') diff --git a/exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtils.java b/exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtils.java index 799231ff..e87170b7 100644 --- a/exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtils.java +++ b/exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtils.java @@ -271,21 +271,24 @@ final class StackdriverExportUtils { ViewData.AggregationWindowData windowData, Aggregation aggregation) { Point.Builder builder = Point.newBuilder(); - builder.setInterval(createTimeInterval(windowData)); + builder.setInterval(createTimeInterval(windowData, aggregation)); builder.setValue(createTypedValue(aggregation, aggregationData)); return builder.build(); } // Convert AggregationWindowData to TimeInterval, currently only support CumulativeData. @VisibleForTesting - static TimeInterval createTimeInterval(ViewData.AggregationWindowData windowData) { + static TimeInterval createTimeInterval( + ViewData.AggregationWindowData windowData, final Aggregation aggregation) { final TimeInterval.Builder builder = TimeInterval.newBuilder(); windowData.match( new Function() { @Override public Void apply(ViewData.AggregationWindowData.CumulativeData arg) { - builder.setStartTime(convertTimestamp(arg.getStart())); builder.setEndTime(convertTimestamp(arg.getEnd())); + if (!(aggregation instanceof LastValue)) { + builder.setStartTime(convertTimestamp(arg.getStart())); + } return null; } }, diff --git a/exporters/stats/stackdriver/src/test/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtilsTest.java b/exporters/stats/stackdriver/src/test/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtilsTest.java index b99193e2..1adf652b 100644 --- a/exporters/stats/stackdriver/src/test/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtilsTest.java +++ b/exporters/stats/stackdriver/src/test/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtilsTest.java @@ -240,12 +240,19 @@ public class StackdriverExportUtilsTest { Timestamp censusTimestamp2 = Timestamp.create(200, 0); assertThat( StackdriverExportUtils.createTimeInterval( - CumulativeData.create(censusTimestamp1, censusTimestamp2))) + CumulativeData.create(censusTimestamp1, censusTimestamp2), DISTRIBUTION)) .isEqualTo( TimeInterval.newBuilder() .setStartTime(StackdriverExportUtils.convertTimestamp(censusTimestamp1)) .setEndTime(StackdriverExportUtils.convertTimestamp(censusTimestamp2)) .build()); + assertThat( + StackdriverExportUtils.createTimeInterval( + CumulativeData.create(censusTimestamp1, censusTimestamp2), LAST_VALUE)) + .isEqualTo( + TimeInterval.newBuilder() + .setEndTime(StackdriverExportUtils.convertTimestamp(censusTimestamp2)) + .build()); } @Test @@ -253,7 +260,7 @@ public class StackdriverExportUtilsTest { IntervalData intervalData = IntervalData.create(Timestamp.create(200, 0)); // Only Cumulative view will supported in this version. thrown.expect(IllegalArgumentException.class); - StackdriverExportUtils.createTimeInterval(intervalData); + StackdriverExportUtils.createTimeInterval(intervalData, SUM); } @Test @@ -318,7 +325,7 @@ public class StackdriverExportUtilsTest { assertThat(StackdriverExportUtils.createPoint(sumDataDouble, cumulativeData, SUM)) .isEqualTo( Point.newBuilder() - .setInterval(StackdriverExportUtils.createTimeInterval(cumulativeData)) + .setInterval(StackdriverExportUtils.createTimeInterval(cumulativeData, SUM)) .setValue(StackdriverExportUtils.createTypedValue(SUM, sumDataDouble)) .build()); } -- cgit v1.2.3