Commit Graph

24 Commits

Author SHA1 Message Date
Daniel Nelson 222a68d72e Add new line protocol parser and serializer, influxdb output (#3924) 2018-03-27 17:30:51 -07:00
Daniel Nelson e57cf8c9df Fix typo in error message 2017-11-13 15:07:54 -08:00
faye-sama ccd21755d5 Fail metrics parsing on unescaped quotes (#3409)
Before this change Fields() method on a metric parsed from a line with
unescaped quotes could panic. This change makes such line unparseable.

Fixes #3326
2017-11-13 15:06:47 -08:00
Maximilien Richer c569863119 Fix typos in comments (#3415) 2017-10-31 17:00:06 -07:00
Daniel Nelson e4f429572d Fix unittest for golang 1.9 2017-09-22 17:35:58 -07:00
Daniel Nelson bdf5e4534d Fix panic when handling string fields with escapes (#3188) 2017-08-30 21:16:37 -07:00
Daniel Nelson 6caa896cb1 Escape backslash within string fields (#3161) 2017-08-23 15:17:26 -07:00
Daniel Nelson b086ecee0c Do not allow metrics with trailing slashes (#3007)
It is not possible to encode a measurement, tag, or field whose last
character is a backslash due to it being an unescapable character.
Because the tight coupling between line protocol and the internal metric
model, prevent metrics like this from being created.

Measurements with a trailing slash are not allowed and the point will be
dropped.  Tags and fields with a trailing a slash will be dropped from
the point.
2017-07-11 15:54:38 -07:00
Daniel Nelson 4780073ba1 Fix handling of escapes within fieldset (#3003)
Line protocol does not require or allow escaping of backslash, the only
requirement for a byte to be escaped is if it is an escapable char and
preceeded immediately by a slash.
2017-07-10 19:05:18 -07:00
Daniel Nelson 87f2b44566 Fix bug parsing default timestamps with modified precision (#2949) 2017-06-23 10:59:04 -07:00
Daniel Nelson f0c10b4012 Fix metric splitting edge cases (#2896)
Metrics needing one extra byte to fit the output buffer would not be split, so we would emit lines without a line ending. Metrics which overflowed by exactly one field length would be split one field too late, causing truncated fields.
2017-06-07 13:37:54 -07:00
Daniel Nelson c1da0002c0 Fix udp metric splitting (#2880) 2017-06-05 12:44:29 -07:00
Daniel Nelson 147200f675 Add support for precision in http_listener (#2644) 2017-04-10 16:39:40 -07:00
jeremydenoun 068611263a Remove warning if parse empty content (#2500)
closes #2448
2017-03-08 14:08:55 -08:00
Leandro Piccilli df402e885d Check if tag value is empty before allocation
closes #2390
closes #2404
2017-02-16 23:07:27 +00:00
Cameron Sparr f6e1409c9a Remove metric.Point from metric interface 2017-02-03 16:53:07 +00:00
Cameron Sparr 7bd6dc3d7f Godeps update
closes #2356
2017-02-02 09:52:06 +00:00
Cameron Sparr cd5bef3e14 metric: Fix negative number handling
closes #2324
2017-02-01 10:07:31 +00:00
Cameron Sparr f5d892d7d3 Improve the InfluxDB through-put performance
This changes the current use of the InfluxDB client to instead use a
baked-in client that uses the fasthttp library.

This allows for significantly smaller allocations, the re-use of http
body buffers, and the re-use of the actual bytes of the line-protocol
metric representations.
2017-01-25 11:54:16 -08:00
Cameron Sparr 6b0e863556 Support a telegraf.Metric.Split function 2016-12-07 15:18:47 +00:00
Cameron Sparr af6e7b9531 More unit tests for new metric 2016-12-01 19:07:14 +00:00
Cameron Sparr 6fd7361364 allocation & perf improvements 2016-12-01 18:17:02 +00:00
Cameron Sparr e5c7a71d8e Fix unit tests for new metric implementation 2016-12-01 18:17:02 +00:00
Cameron Sparr db7a4b24b6 Implement telegraf's own full metric type
main reasons behind this:
- make adding/removing tags cheap
- make adding/removing fields cheap
- make parsing cheaper
- make parse -> decorate -> write out bytes metric flow much faster

Refactor serializer to use byte buffer
2016-12-01 18:17:02 +00:00