bc6bf2d8e5
Bumps [smallvec](https://github.com/servo/rust-smallvec) from 1.10.0 to 1.11.0. - [Release notes](https://github.com/servo/rust-smallvec/releases) - [Commits](https://github.com/servo/rust-smallvec/compare/v1.10.0...v1.11.0) --- updated-dependencies: - dependency-name: smallvec dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
README.md | ||
RELEASE.md |
README.md
influxdb_line_protocol
This crate contains pure Rust implementations of
-
A parser for InfluxDB Line Protocol developed as part of the InfluxDB IOx project. This implementation is intended to be compatible with the Go implementation, however, this implementation uses a nom combinator-based parser rather than attempting to port the imperative Go logic so there are likely some small diferences.
-
A builder to contruct valid InfluxDB Line Protocol
Example
Here is an example of how to parse the following line
protocol data into a ParsedLine
:
cpu,host=A,region=west usage_system=64.2 1590488773254420000
use influxdb_line_protocol::{ParsedLine, FieldValue};
let mut parsed_lines =
influxdb_line_protocol::parse_lines(
"cpu,host=A,region=west usage_system=64i 1590488773254420000"
);
let parsed_line = parsed_lines
.next()
.expect("Should have at least one line")
.expect("Should parse successfully");
let ParsedLine {
series,
field_set,
timestamp,
} = parsed_line;
assert_eq!(series.measurement, "cpu");
let tags = series.tag_set.unwrap();
assert_eq!(tags[0].0, "host");
assert_eq!(tags[0].1, "A");
assert_eq!(tags[1].0, "region");
assert_eq!(tags[1].1, "west");
let field = &field_set[0];
assert_eq!(field.0, "usage_system");
assert_eq!(field.1, FieldValue::I64(64));
assert_eq!(timestamp, Some(1590488773254420000));