diff --git a/Cargo.lock b/Cargo.lock index 1f46eda..9f6caf9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -81,6 +81,19 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "chrono" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +dependencies = [ + "libc", + "num-integer", + "num-traits", + "time", + "winapi", +] + [[package]] name = "clap" version = "2.33.3" @@ -421,6 +434,25 @@ dependencies = [ "winapi", ] +[[package]] +name = "num-integer" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +dependencies = [ + "autocfg", +] + [[package]] name = "num_cpus" version = "1.13.0" @@ -735,6 +767,7 @@ dependencies = [ "anyhow", "async-trait", "bytes", + "chrono", "clap", "csv", "hyper", @@ -800,6 +833,17 @@ dependencies = [ "syn", ] +[[package]] +name = "time" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +dependencies = [ + "libc", + "wasi", + "winapi", +] + [[package]] name = "tokio" version = "1.12.0" @@ -923,9 +967,9 @@ dependencies = [ [[package]] name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" +version = "0.10.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "winapi" diff --git a/Cargo.toml b/Cargo.toml index a090ffa..1e14df0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,3 +23,4 @@ serde_qs = "0.8.5" async-trait = "0.1.51" anyhow = "1.0.13" csv = "1.1" +chrono = "0.4.19" diff --git a/src/datasources/influx.rs b/src/datasources/influx.rs index aa19ae3..0c89ff2 100644 --- a/src/datasources/influx.rs +++ b/src/datasources/influx.rs @@ -37,12 +37,25 @@ impl Influx { pub fn parse_result(reader: Reader) -> types::Result { let mut rdr = csv::Reader::from_reader(reader); + // for h in rdr.headers() { + // println!("{:?}", h); + // } + // println!("len: {:?}", rdr.headers().unwrap().get(9)); + let measurement = rdr.headers().unwrap().get(9).unwrap().to_owned(); + // println!("_measurement {}", measurement); + + let mut ts = Vec::new(); for result in rdr.records() { let record = result?; - println!("{:?}", record); + let t = chrono::DateTime:: parse_from_rfc3339(record.get(5).unwrap()).unwrap().timestamp() as u64; + let v = record.get(6).unwrap().parse::().unwrap(); + ts.push((t,v)); + // println!("{:?} > {:?}", t, v); + // println!("{:?}", record); } let mut result: MetricResult = Default::default(); + result.data.insert(measurement, ts); // result.data.insert(metric_name, values.to_owned()); Ok(result)