Andrew, I encourage you to open issues on the influxdb-java API to address the precision concerns. That repo is hosted by InfluxData but the code is maintained by Stefan Majer (majst01).
On Tue, Oct 18, 2016 at 11:38 AM, <[email protected]> wrote: > On Tuesday, October 18, 2016 at 1:17:22 PM UTC-4, [email protected] > wrote: > > The precision as specified in the query string[1] is treated as truth. > If you provide a timestamp at millisecond resolution, but don't specify the > precision or specify it as nanoseconds, the timestamp will be interpreted > as nanoseconds. (The current unix time in milliseconds, interpreted as > nanoseconds, will be about 24 minutes into Jan 1 1970.) > > > > A couple relevant places in the code are setting the precision of a > point [2] and handling precision and writing points in the HTTP handler [3]. > > > > [1] https://docs.influxdata.com/influxdb/v1.0/tools/api/# > query-string-parameters-1 > > [2] https://github.com/influxdata/influxdb/blob/ > cea7690b728a23a7a196020ea411707d2807d176/models/points.go#L1364-L1378 > > [3] https://github.com/influxdata/influxdb/blob/ > cea7690b728a23a7a196020ea411707d2807d176/services/httpd/ > handler.go#L645-L692 > > > > On Tuesday, October 18, 2016 at 10:02:15 AM UTC-7, [email protected] > wrote: > > > I'm looking to fix the influxdb-java client library as it forces all > point timestamps to nanosecond precision, which is a waste of space and hit > in performance when only captured in millisecond precision. One of the > questions however is understanding what InfluxDB does whenever the > measurement timestamp precision doesn't match what was specified in the > /write. > > > > > > Any clarity and links to code base would be very welcome! > > Thanks for the links and clarification; makes sense. > > Since one of the best practices I've heard regarding InfluxDB is having > lower precision as needed. The two issues I was alluding to were: > > 1) influxdb-java library org.influxdb.dto.Point.formatedTime() converts > all timestamps to nanoseconds > > Source: https://github.com/influxdata/influxdb-java/blob/master/src/ > main/java/org/influxdb/dto/Point.java > > private StringBuilder formatedTime() { > final StringBuilder sb = new StringBuilder(); > if (null == this.time) { > this.time = this.precision.convert(System. > currentTimeMillis(),TimeUnit.MILLISECONDS); > } > sb.append(" ").append(TimeUnit.NANOSECONDS.convert(this.time, > this.precision)); > return sb; > } > > > 2) influxdb-java library org.influxdb.impl.InfluxDBImpl.write() methods > forces nanosecond precision > > Source: https://github.com/influxdata/influxdb-java/blob/master/src/ > main/java/org/influxdb/impl/InfluxDBImpl.java > > execute(this.influxDBService.writePoints( > this.username, > this.password, > batchPoints.getDatabase(), > batchPoints.getRetentionPolicy(), > TimeUtil.toTimePrecision(TimeUnit.NANOSECONDS), > batchPoints.getConsistency().value(), > lineProtocol)); > > > Thanks again Sean / Mark! > > -- > Remember to include the version number! > --- > You received this message because you are subscribed to the Google Groups > "InfluxData" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/influxdb. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/influxdb/7a9587e5-fae9-460f-9a81-8a91632d7ab9%40googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- Sean Beckett Director of Support and Professional Services InfluxDB -- Remember to include the version number! --- You received this message because you are subscribed to the Google Groups "InfluxData" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/influxdb. To view this discussion on the web visit https://groups.google.com/d/msgid/influxdb/CALGqCvOSoEzXLAzbqRR%3DSov%2BESeiFG-UTAodxa3Jr0iEqMs9QQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
