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,