Commit Graph

21 Commits

Author SHA1 Message Date
Daniel Nelson 2c29f8f84a Fix dropwizard parsing error for metrics that need escaped (#4142)
If the dropwizard parser cannot convert the metric name into a valid
line protocol series then we will accept the name as is.
2018-05-14 11:00:03 -07:00
Daniel Nelson d3d1bc72ca Fix duplicate tags when overriding tag (#4056) 2018-04-20 18:39:31 -07:00
Daniel Nelson 8c35451400 Fix HashID conflicts in pathological cases
Use "\n" as delimiter as it cannot occur in the series name.
2018-04-12 18:09:31 -07:00
Daniel Nelson 717347fce2 Allow empty string field values 2018-03-30 16:57:35 -07:00
Daniel Nelson 2fe2622327 Add influx uint support as a runtime option (#3948) 2018-03-29 13:31:43 -07:00
Matt 006ccbf05b Add line protocol uint64 support (#3946) 2018-03-28 16:43:25 -07:00
Daniel Nelson 222a68d72e Add new line protocol parser and serializer, influxdb output (#3924) 2018-03-27 17:30:51 -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 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
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 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