use super::{Alerter, DriftAlertEvent};
#[derive(Clone, Copy, Debug, Default)]
pub struct LogAlerter;
impl LogAlerter {
pub fn new() -> Self {
Self
}
}
impl Alerter for LogAlerter {
fn alert(&self, event: &DriftAlertEvent) {
tracing::warn!(
target: "driftwatch",
dataset_drifted = event.dataset_drifted,
drifted_fraction = event.drifted_fraction,
drifted_features = event.features.len(),
timestamp_secs = event.timestamp_secs,
"data drift detected"
);
for f in &event.features {
tracing::warn!(
target: "driftwatch",
feature = %f.feature,
metric = %f.metric,
score = f.score,
threshold = f.threshold,
"feature drift"
);
}
}
}