Pull vs Push Alerting

Alert source pulls vs alert source pushes. Trade-offs.

The distinction

Pull alerting polls for state; push alerting receives events. Prometheus scrapes targets every 15 seconds and evaluates rules per tick; Datadog agents push metrics, Sentry pushes errors, CloudWatch alarms fire on push. Most teams run a mix, and picking which one for which signal is the actual question.

When pull wins

Pull wins when the infrastructure is predictable and the team controls the scrape target. Services exposing /metrics endpoints, databases with exporters, Kubernetes-hosted internal infrastructure; anywhere centralised control over scrape intervals matters and the target can answer a poll.

When push wins

Push wins when the events are bursty, the producer is third-party, or the producer is intermittently online. Pull would miss bursty events between scrapes; SaaS webhooks cannot expose a Prometheus endpoint; mobile and edge clients may be offline at scrape time but online to push later.

Operational differences

The two models break differently. Pull is easier to debug because the last-scrape timestamp is visible; push is easier to scale because the producer controls rate. Pull breaks if the target hides behind NAT; push breaks if the consumer’s queue is full.

Pick by signal type

The right pick is signal-driven. Steady-state metrics and infrastructure health are pull; events, errors, and audit logs are push; hybrid stacks are the norm and trying to standardise on one model produces the wrong answer for the other half.