monitoring-alerting #30
| @ -1,7 +1,11 @@ | ||||
| use serde::Serialize; | ||||
| 
 | ||||
| use crate::{ | ||||
|     interpret::Interpret, maestro::Maestro, modules::helm::chart::HelmChartScore, score::Score, topology::{K8sclient, Topology} | ||||
|     interpret::Interpret, | ||||
|     maestro::Maestro, | ||||
|     modules::helm::chart::HelmChartScore, | ||||
|     score::Score, | ||||
|     topology::{K8sclient, Topology}, | ||||
| }; | ||||
| 
 | ||||
| #[derive(Debug, Clone, Serialize)] | ||||
| @ -10,12 +14,60 @@ pub struct MonitoringAlertingStackScore { | ||||
| } | ||||
| 
 | ||||
| impl<T: Topology> Score<T> for MonitoringAlertingStackScore { | ||||
| 
 | ||||
|     fn create_interpret(&self) -> Box<dyn Interpret<T>> { | ||||
|         todo!() | ||||
|         Box::new(MonitoringAlertingStackInterpret { | ||||
|             score: self.clone(), | ||||
|         }) | ||||
|     } | ||||
| 
 | ||||
|     fn name(&self) -> String { | ||||
|         format!( | ||||
|             "{} {} MonitoringAlertingStackScore", | ||||
|             self.monitoring.chart_name, self.monitoring.release_name | ||||
|         ) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| #[derive(Debug, Serialize)] | ||||
| struct MonitoringAlertingStackInterpret { | ||||
|     pub score: MonitoringAlertingStackScore, | ||||
| } | ||||
| 
 | ||||
| #[async_trait] | ||||
| impl<T: Topology> Interpret<T> for MonitoringAlertingStackInterpret { | ||||
|     fn execute<'life0, 'life1, 'life2, 'async_trait>( | ||||
|         &'life0 self, | ||||
|         inventory: &'life1 Inventory, | ||||
|         topology: &'life2 T, | ||||
|     ) -> ::core::pin::Pin< | ||||
|         Box< | ||||
|             dyn ::core::future::Future<Output = Result<Outcome, InterpretError>> | ||||
|                 + ::core::marker::Send | ||||
|                 + 'async_trait, | ||||
|         >, | ||||
|     > | ||||
|     where | ||||
|         'life0: 'async_trait, | ||||
|         'life1: 'async_trait, | ||||
|         'life2: 'async_trait, | ||||
|         Self: 'async_trait, | ||||
|     { | ||||
|         todo!() | ||||
|     } | ||||
| 
 | ||||
|     fn get_name(&self) -> InterpretName { | ||||
|         todo!() | ||||
|     } | ||||
| 
 | ||||
|     fn get_version(&self) -> Version { | ||||
|         todo!() | ||||
|     } | ||||
| 
 | ||||
|     fn get_status(&self) -> InterpretStatus { | ||||
|         todo!() | ||||
|     } | ||||
| 
 | ||||
|     fn get_children(&self) -> Vec<Id> { | ||||
|         todo!() | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -9,9 +9,10 @@ use crate::modules::helm::chart::HelmChartScore; | ||||
| pub fn kube_prometheus_score(ns: &str) -> HelmChartScore { | ||||
|     HelmChartScore { | ||||
|         namespace: Some(NonBlankString::from_str(ns).unwrap()), | ||||
|         release_name: NonBlankString::from_str("es").unwrap(), | ||||
|         release_name: NonBlankString::from_str("kube-prometheus").unwrap(), | ||||
|         chart_name: NonBlankString::from_str( | ||||
|         todo!() //use kube prometheus chart which includes grafana, prometheus, alert
 | ||||
|             "https://prometheus-community.github.io/helm-charts" | ||||
|          //use kube prometheus chart which includes grafana, prometheus, alert
 | ||||
|          //manager, etc
 | ||||
|             ) | ||||
|         .unwrap(), | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user