|
|
@@ -22,6 +22,13 @@ pub mod tracker_manager; |
|
|
|
pub mod helpers; |
|
|
|
pub mod metrics; |
|
|
|
|
|
|
|
fn push_process_metrics_job(url: String) { |
|
|
|
let mfs = prometheus::gather(); |
|
|
|
if let Err(e) = push_metrics("tracker-redis-exporter", HashMap::from([("instance".to_string(), "process".to_string())]), &url, mfs, None) { |
|
|
|
warn!("Unable to push process metrics: {e}") |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
fn metric_refresh_job<T: MetricsProvider>(client_mgr: Arc<ClientManager>, project_mgr: Arc<TrackerInfoManager>, url: String, provider: Arc<T>) { |
|
|
|
let start = SystemTime::now(); |
|
|
|
project_mgr.enabled_projects().into_par_iter().for_each({ |
|
|
@@ -101,6 +108,10 @@ pub fn main() -> color_eyre::Result<()> { |
|
|
|
.seconds()? |
|
|
|
.run_two_args(&mut schedule, projects_refresh_job, client_mgr.clone(), project_mgr.clone())?; |
|
|
|
|
|
|
|
every(10) |
|
|
|
.seconds()? |
|
|
|
.run_one_arg(&mut schedule, push_process_metrics_job, p_url.clone())?; |
|
|
|
|
|
|
|
spawn_metrics_job( |
|
|
|
args.project_metrics_refresh_interval, |
|
|
|
client_mgr.clone(), |
|
|
|