Crate influxc[−][src]
InfluxDB Client Library
About this crate
What this crate provides
- Support for InfluxDB 2.x.
- Backlog storage of Record’s on failure to commit due to connectivity or configuration issues.
- Build-in compression of requests.
What it does not provide
- Support for InfluxDB 1.x
What is on the roadmap
- Support for async/await as a feature. #3
- Reduction of dependencies by switching the underlying reqwest library with hyper. #4
- Support for sending, processing responses to queries. #5
- Support for mapping native types to query response data like sqlx. #6
Basic Usage
use influxc::Client; use influxc::FileBacklog; use influxc::Record; use influxc::Precision; use influxc::Credentials; use influxc::InfluxError; use std::time::Duration; use std::thread::sleep; fn main() -> Result<(), InfluxError> { let creds = Credentials::from_basic("testuser", "testpasswd"); let backlog = FileBacklog::new("./ignore/backlog")?; let mut client = Client::build("http://127.0.0.1:8086".into(), creds) .backlog(backlog) .finish()?; let mut rec = Record::new("org", "bucket") .precision(Precision::Milliseconds); loop { rec.measurement("sensor1") .tag("floor", "second") .tag("exposure", "west") .field("temp", 123) .field("brightness", 500); rec.measurement("sensor2") .tag("floor", "second") .tag("exposure", "east") .field("temp", 321) .field("brightness", 999); if let Err(e) = client.write(&rec) { eprintln!("{}", e); } sleep(Duration::from_secs(1)); } }
Structs
Client | The basic unit of interactino with the InfluxDB API. |
ClientBuilder | Builder to piece by piece assemble a Client instance |
FileBacklog | Backlog for the Client to persist Record`s that could not be submitted to the InfluxDB due to conectivity or configuration errors. |
Measurement | The smallest unit of recording. Multiple of these Measurements are fit in a Record, which in turn is submitted to InfluxDB. |
NoopBacklog | Backlog that does nothing |
Record | Coarse unit of recording. It keeps track of the organization, bucket and precision which are inherent to the concept of “schema” in SQL lingo. It gets filled with measurements that provide the “table name” (measurement) as well as “indexed columns” (tags) and values. |
Enums
Credentials | Credentials used to authenticate at the InfluxDB server |
InfluxError | Chaining Support |
Precision | The time resolution the bucket is to keep its measurements |
Value | Type primitives as supported by InfluxDB and their conversions from/to Rust primitives |
Traits
Backlog | API definition that any backlog service needs to abide by so the Client can use it. |