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-agnosticNotifyEvent+ its constructors.render— pure per-channel payload rendering.channels— the one-request-each HTTP shims.dispatch— theNotifier: match → coalesce → deliver → resolve.metrics— thefaucet_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).