/** * Converts the given iterator of our point class to protocol buffers and compresses (gzip) it. * * @param metricDataPoints - the list with points * @return the serialized points as byte[] */ public static byte[] to(Iterator<Point> metricDataPoints) { return to(metricDataPoints, 0); }
@Override public byte[] dataAsBlob() { byte[] data = ProtoBufMetricTimeSeriesSerializer.to(timeSeries.points().iterator()); //compress data return Compression.compress(data); }
@Override public BinaryTimeSeries to(MetricTimeSeries timeSeries) { LOGGER.debug("Converting {} to BinaryTimeSeries", timeSeries); BinaryTimeSeries.Builder builder = new BinaryTimeSeries.Builder(); //serialize byte[] serializedPoints = ProtoBufMetricTimeSeriesSerializer.to(timeSeries.points().iterator()); byte[] compressedPoints = Compression.compress(serializedPoints); //Add the minimum required fields builder.start(timeSeries.getStart()) .end(timeSeries.getEnd()) .data(compressedPoints); //Currently we only have a metric builder.field(MetricTSSchema.METRIC, timeSeries.getMetric()); //Add a list of user defined attributes timeSeries.attributes().forEach(builder::field); return builder.build(); } }