Hastic standalone https://hastic.io
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

37 lines
1.1 KiB

mod api;
use hastic::services::{analytic_service, analytic_unit_service, metric_service, segments_service, data_service};
use anyhow;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let config = hastic::config::Config::new()?;
let cfg_clone = config.clone();
let data_service = data_service::DataService::new()?;
let analytic_unit_service = analytic_unit_service::AnalyticUnitService::new(&data_service)?;
let metric_service = metric_service::MetricService::new(&config.datasource_config);
let segments_service = segments_service::SegmentsService::new(&data_service)?;
let mut analytic_service = analytic_service::AnalyticService::new(
analytic_unit_service.clone(),
metric_service.clone(),
segments_service.clone(),
config.alerting,
);
let api = api::API::new(
&cfg_clone,
metric_service.clone(),
segments_service.clone(),
analytic_service.get_client(),
);
let s1 = analytic_service.serve();
let s2 = api.serve();
futures::future::join(s1, s2).await;
Ok(())
}