diff --git a/pom.xml b/pom.xml index 19af0619..f0e77942 100644 --- a/pom.xml +++ b/pom.xml @@ -136,7 +136,7 @@ 0.13.0 0.13.1 0.13.1 - 1.1.0 + 1.2.1 5.13.0 4.0.56.Final 4.0.21.Final diff --git a/src/main/java/com/arpnetworking/clusteraggregator/models/CombinedMetricData.java b/src/main/java/com/arpnetworking/clusteraggregator/models/CombinedMetricData.java index eb912e65..b40f9893 100644 --- a/src/main/java/com/arpnetworking/clusteraggregator/models/CombinedMetricData.java +++ b/src/main/java/com/arpnetworking/clusteraggregator/models/CombinedMetricData.java @@ -303,7 +303,13 @@ public static Builder fromStatisticSetRecord(final Messages.StatisticSetRecord r if (statistic instanceof HistogramStatistic) { final Messages.SparseHistogramSupportingData supportingData = deserialzeSupportingData(statisticRecord); - final HistogramStatistic.Histogram histogram = new HistogramStatistic.Histogram(); + final HistogramStatistic.Histogram histogram; + if (supportingData.getPrecision() == 0) { + histogram = new HistogramStatistic.Histogram(); + } else { + // Subtract 1 from the precision to get the actual precision since 0 means default precision + histogram = new HistogramStatistic.Histogram(supportingData.getPrecision() - 1); + } for (final Messages.SparseHistogramEntry entry : supportingData.getEntriesList()) { final double bucket = entry.getBucket(); final long count = entry.getCount(); diff --git a/src/main/java/com/arpnetworking/tsdcore/sinks/KairosDbSink.java b/src/main/java/com/arpnetworking/tsdcore/sinks/KairosDbSink.java index 60c85626..d113cce0 100644 --- a/src/main/java/com/arpnetworking/tsdcore/sinks/KairosDbSink.java +++ b/src/main/java/com/arpnetworking/tsdcore/sinks/KairosDbSink.java @@ -314,16 +314,17 @@ public void serializeDatum( } } - public void serializeHistogram( - final List completeChunks, - final ByteBuffer currentChunk, - final ByteArrayOutputStream chunkStream, - final AggregatedData data, - final KairosHistogramAdditionalData additionalData, - final LongAdder currentChunkPopulationSize) { - final FQDSN fqdsn = data.getFQDSN(); - - try { + // CHECKSTYLE.OFF: ExecutableStatementCount - There are a lot of fields, we just need to serialize them + public void serializeHistogram( + final List completeChunks, + final ByteBuffer currentChunk, + final ByteArrayOutputStream chunkStream, + final AggregatedData data, + final KairosHistogramAdditionalData additionalData, + final LongAdder currentChunkPopulationSize) { + final FQDSN fqdsn = data.getFQDSN(); + + try { final HistogramStatistic.HistogramSnapshot bins = ((HistogramStatistic.HistogramSupportingData) data.getSupportingData()) .getHistogramSnapshot(); final JsonGenerator chunkGenerator = OBJECT_MAPPER.getFactory().createGenerator(chunkStream, JsonEncoding.UTF8); @@ -338,6 +339,7 @@ public void serializeHistogram( chunkGenerator.writeNumberField("max", additionalData.getMax()); chunkGenerator.writeNumberField("mean", additionalData.getMean()); chunkGenerator.writeNumberField("sum", additionalData.getSum()); + chunkGenerator.writeNumberField("precision", bins.getPrecision()); chunkGenerator.writeObjectFieldStart("bins"); for (Double2LongMap.Entry bin : bins.getValues()) { chunkGenerator.writeNumberField(String.valueOf(bin.getDoubleKey()), bin.getLongValue()); @@ -373,6 +375,7 @@ public void serializeHistogram( .log(); } } + // CHECKSTYLE.ON: ExecutableStatementCount public void serializeCondition( final List completeChunks,