SECOPS

Detect WAF block spikes and open a triaged PagerDuty incident

Watches Cloudflare firewall-event volume for sudden anomalies, and when a managed rule starts blocking far above its baseline it opens a PagerDuty incident pre-filled…

CategorySecOps
Enginesim
Difficultyintermediate
Triggerschedule
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerPolling schedule fires
  • ActionPull recent firewall-event counts by ruleCloudflareCloudflare
  • LogicCompare to rolling baseline; flag significant spikes
  • ActionEnrich spike with top paths, IPs, and ASNsCloudflareCloudflare
  • OutputOpen enriched PagerDuty incidentPagerDutyPagerDuty

What it does

Monitors per-rule Cloudflare WAF block volume against a rolling baseline and detects spikes that signal either an attack or a bad rule deployment. On a confirmed anomaly it creates a PagerDuty incident enriched with the triage facts an on-call needs to act in seconds.

When to use it

When you need an on-call signal the moment a WAF rule's block rate jumps — to catch both real attacks and self-inflicted false-positive storms after a ruleset change — without staring at the Cloudflare dashboard.

How it works

  1. 1A short-interval schedule polls Cloudflare for recent firewall-event counts grouped by rule ID.
  2. 2A logic step compares each rule's current rate to its trailing baseline and flags statistically significant spikes.
  3. 3Spikes below the alerting threshold are dropped to avoid noise.
  4. 4For a flagged spike it gathers the top blocked paths, client IPs, and ASNs.
  5. 5A PagerDuty incident is opened with the rule, spike magnitude, top offenders, and an attack-vs-misconfig hint for the responder.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect CloudflareWorkers, Pages, R2, KV — the edge stack.
  2. 2
    Connect PagerDutyIncidents, on-call, escalations.
  3. 3
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  4. 4
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  5. 5
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.