Skip to main content

Module notify

Module notify 

Source
Available on crate feature notify only.
Expand description

Notification / incident-routing layer (#280).

A declarative top-level notifications: block fans pipeline lifecycle and health events out to Slack / PagerDuty / a generic signed webhook. It works from every runtime (run / schedule / serve / replicate) because the emit sites live in the shared executor + SLA pass; the scheduler adds a scheduler_stuck signal.

Notifications never fail or block a run. A channel outage is retried a little, then logged + counted (faucet_notifications_dropped_total) and swallowed — the same log-and-continue contract as lineage and SLA.

Module layout (mirrors sla/ / schedule/):

  • spec — serde config types + validation (faucet schema notifications).
  • event — the channel-agnostic NotifyEvent + its constructors.
  • render — pure per-channel payload rendering.
  • channels — the one-request-each HTTP shims.
  • dispatch — the Notifier: match → coalesce → deliver → resolve.
  • metrics — the faucet_notifications_* surface.

Channel secrets (Slack webhook URL, PD routing key, webhook HMAC secret) should be supplied via ${env:...} / ${file:...} / ${secret:...}, which are resolved over the raw document at load time and registered for log redaction.

Re-exports§

pub use dispatch::Notifier;
pub use event::NotifyEvent;
pub use event::RunContext;
pub use spec::ChannelSpec;
pub use spec::EventKind;
pub use spec::NotificationSpec;
pub use spec::PagerdutyConfig;
pub use spec::RESERVED_BODY_KEYS;
pub use spec::Severity;
pub use spec::SlackConfig;
pub use spec::WebhookConfig;
pub use spec::validate_all;

Modules§

channels
HTTP delivery for each channel (#280).
dispatch
The notifier: match events to rules, coalesce, deliver, and correlate PagerDuty resolves (#280).
event
The runtime event a pipeline emits toward the notifier (#280).
metrics
Prometheus surface for notifications (#280).
render
Pure per-channel payload rendering (#280).
spec
Config types for the notifications: block (#280).