Crate kairosdb [−] [src]
A Client
for KairosBD REST API
The Client itself is used as the central access point, from which numerous operations are defined implementing each of the specific KairosDB APIs.
use kairosdb::Client; let client = Client::new("localhost", 8080);
A main job of a time series database is collecting and querying data.
To add data to KairosDB we have to create a Datapoints
struct and add
the data to the object.
use kairosdb::datapoints::Datapoints; let mut datapoints = Datapoints::new("myMetric", 0); datapoints.add_ms(1000, 11.0); datapoints.add_ms(2000, 12.0); datapoints.add_ms(3000, 13.0); datapoints.add_tag("test", "first"); let result = client.add(&datapoints); assert!(result.is_ok());
To query data we have to create a Query
Object with the start and end
of the query. The start and the end can be a relative time. Check the
'Time' structure for more information.
use std::collections::HashMap; use kairosdb::query::{Query, Time, Metric, TimeUnit}; let mut query = Query::new( Time::Nanoseconds(1000), Time::Nanoseconds(2000)); let mut tags: HashMap<String, Vec<String>> = HashMap::new(); let metric = Metric::new("myMetric", tags, vec![]); query.add(metric); let result = client.query(&query).unwrap(); assert!(result.contains_key("myMetric")); assert_eq!(result["myMetric"].len(), 2); assert_eq!(result["myMetric"][0].time, 1000); assert_eq!(result["myMetric"][0].value, 11.0); assert_eq!(result["myMetric"][1].time, 2000); assert_eq!(result["myMetric"][1].value, 12.0);
Deleting data is like querying data.
use std::collections::HashMap; use kairosdb::query::{Query, Time, TimeUnit, Metric}; let mut query = Query::new( Time::Nanoseconds(1000), Time::Nanoseconds(3000)); let mut tags: HashMap<String, Vec<String>> = HashMap::new(); tags.insert("test".to_string(), vec!["first".to_string()]); let metric = Metric::new("myMetric", tags, vec![]); query.add(metric); let result = client.delete(&query); assert!(result.is_ok());
Modules
datapoints | |
query | |
result |
Structs
Client |