|
|
|
use subbeat::datasources::grafana;
|
|
|
|
|
|
|
|
mod cli;
|
|
|
|
mod types;
|
|
|
|
|
|
|
|
#[tokio::main]
|
|
|
|
async fn main() -> types::Result<()> {
|
|
|
|
let cli = cli::CLI::new();
|
|
|
|
|
|
|
|
let gs = grafana::Grafana::new(
|
|
|
|
cli.query_config.url.to_string(),
|
|
|
|
cli.query_config.key.to_string(),
|
|
|
|
);
|
|
|
|
|
|
|
|
// gs.test_connection().await?;
|
|
|
|
// gs.get_datasources().await?;
|
|
|
|
// "http://localhost:3000/d/YeBxHjzWz/starter-app-stats?editPanel=2&orgId=1"
|
|
|
|
let r = gs
|
|
|
|
.extract_metrics(
|
|
|
|
&cli.query_config.datasource_url,
|
|
|
|
&cli.query_config.query,
|
|
|
|
cli.query_config.from,
|
|
|
|
cli.query_config.to,
|
|
|
|
cli.query_config.step,
|
|
|
|
)
|
|
|
|
.await?;
|
|
|
|
|
|
|
|
let key = r.data.keys().nth(0).unwrap();
|
|
|
|
println!("{}", key);
|
|
|
|
|
|
|
|
let vs = &r.data[key];
|
|
|
|
for (t, v) in vs.iter() {
|
|
|
|
println!("{}\t{}", t, v);
|
|
|
|
}
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
}
|