diff --git a/harmony/src/domain/topology/mod.rs b/harmony/src/domain/topology/mod.rs
index 3d773ff..0cbfee6 100644
--- a/harmony/src/domain/topology/mod.rs
+++ b/harmony/src/domain/topology/mod.rs
@@ -1,3 +1,4 @@
+pub mod monitoring_alerting;
mod ha_cluster;
mod host_binding;
mod http;
diff --git a/harmony/src/domain/topology/monitoring_alerting.rs b/harmony/src/domain/topology/monitoring_alerting.rs
new file mode 100644
index 0000000..4951333
--- /dev/null
+++ b/harmony/src/domain/topology/monitoring_alerting.rs
@@ -0,0 +1,108 @@
+use std::sync::Arc;
+
+use log::warn;
+use tokio::sync::OnceCell;
+
+use k8s_openapi::api::core::v1::Pod;
+use kube::{
+ Client,
+ api::{Api, ListParams},
+};
+
+use async_trait::async_trait;
+
+use crate::{
+ interpret::{InterpretError, Outcome},
+ inventory::Inventory,
+ maestro::Maestro,
+ modules::monitoring::monitoring_alerting::MonitoringAlertingStackScore,
+ score::Score,
+};
+
+use super::{HelmCommand, K8sAnywhereTopology, Topology, k8s::K8sClient};
+
+#[derive(Clone, Debug)]
+struct MonitoringState {
+ message: String,
+}
+
+#[derive(Debug)]
+pub struct MonitoringAlertingTopology {
+ monitoring_state: OnceCell