diff --git a/implementations/micrometer-registry-stackdriver/src/main/java/io/micrometer/stackdriver/StackdriverDistributionSummary.java b/implementations/micrometer-registry-stackdriver/src/main/java/io/micrometer/stackdriver/StackdriverDistributionSummary.java index 1d62c9fef6..24ce2f2e04 100644 --- a/implementations/micrometer-registry-stackdriver/src/main/java/io/micrometer/stackdriver/StackdriverDistributionSummary.java +++ b/implementations/micrometer-registry-stackdriver/src/main/java/io/micrometer/stackdriver/StackdriverDistributionSummary.java @@ -23,7 +23,7 @@ class StackdriverDistributionSummary extends StepDistributionSummary { - public StackdriverDistributionSummary(Id id, Clock clock, DistributionStatisticConfig distributionStatisticConfig, + StackdriverDistributionSummary(Id id, Clock clock, DistributionStatisticConfig distributionStatisticConfig, double scale, long stepMillis) { super(id, clock, distributionStatisticConfig, scale, stepMillis, stackdriverHistogram(clock, distributionStatisticConfig)); diff --git a/implementations/micrometer-registry-stackdriver/src/main/java/io/micrometer/stackdriver/StackdriverMeterRegistry.java b/implementations/micrometer-registry-stackdriver/src/main/java/io/micrometer/stackdriver/StackdriverMeterRegistry.java index bd3dc62a0c..e20a06abf7 100644 --- a/implementations/micrometer-registry-stackdriver/src/main/java/io/micrometer/stackdriver/StackdriverMeterRegistry.java +++ b/implementations/micrometer-registry-stackdriver/src/main/java/io/micrometer/stackdriver/StackdriverMeterRegistry.java @@ -505,15 +505,17 @@ private TimeInterval interval(MetricDescriptor.MetricKind metricKind) { Distribution distribution(HistogramSnapshot snapshot, boolean timeDomain) { CountAtBucket[] histogram = snapshot.histogramCounts(); - List bucketCounts = Arrays.stream(histogram) - .map(CountAtBucket::count) - .map(Double::longValue) - .collect(toCollection(ArrayList::new)); - long cumulativeCount = Arrays.stream(histogram).mapToLong(c -> (long) c.count()).sum(); + List bucketCounts = new ArrayList<>(); + long cumulativeCount = 0L; + for (CountAtBucket countAtBucket : histogram) { + long count = (long) countAtBucket.count(); + bucketCounts.add(count); + cumulativeCount += count; + } // no-op histogram will have no buckets; other histograms should have at least // the +Inf bucket - if (!bucketCounts.isEmpty() && bucketCounts.size() > 1) { + if (bucketCounts.size() > 1) { // the rightmost bucket should be the infinity bucket; do not trim that int endIndex = bucketCounts.size() - 2; // trim zero-count buckets on the right side of the domain @@ -525,7 +527,7 @@ Distribution distribution(HistogramSnapshot snapshot, boolean timeDomain) { break; } } - long infCount = bucketCounts.get(bucketCounts.size() - 1); + Long infCount = bucketCounts.get(bucketCounts.size() - 1); bucketCounts = bucketCounts.subList(0, lastNonZeroIndex + 1); // infinite bucket count of 0 can be omitted bucketCounts.add(infCount); diff --git a/implementations/micrometer-registry-stackdriver/src/main/java/io/micrometer/stackdriver/StackdriverTimer.java b/implementations/micrometer-registry-stackdriver/src/main/java/io/micrometer/stackdriver/StackdriverTimer.java index eeebadd9bf..a66e84465a 100644 --- a/implementations/micrometer-registry-stackdriver/src/main/java/io/micrometer/stackdriver/StackdriverTimer.java +++ b/implementations/micrometer-registry-stackdriver/src/main/java/io/micrometer/stackdriver/StackdriverTimer.java @@ -26,7 +26,7 @@ class StackdriverTimer extends StepTimer { - public StackdriverTimer(Id id, Clock clock, DistributionStatisticConfig distributionStatisticConfig, + StackdriverTimer(Id id, Clock clock, DistributionStatisticConfig distributionStatisticConfig, PauseDetector pauseDetector, TimeUnit baseTimeUnit, long stepDurationMillis) { super(id, clock, distributionStatisticConfig, pauseDetector, baseTimeUnit, stepDurationMillis, stackdriverHistogram(clock, distributionStatisticConfig));