IT OPS

Cloudflare Orphan Records via Axiom Traffic Correlation

Scheduled audit that cross-references Cloudflare DNS records against Axiom request logs to find subdomains that resolve but have served zero traffic for weeks.

CategoryIT Ops
Enginesim
Difficultyadvanced
Triggerschedule
Steps6
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerMonthly schedule kicks off the correlation run
  • ActionPull full DNS record set from CloudflareCloudflareCloudflare
  • ActionQuery Axiom for per-hostname request countsAxiom
  • LogicJoin records to traffic; keep zero-traffic resolvers
  • ActionFile GitLab decommission tickets with evidenceGitLabGitLab
  • OutputPost orphan summary to SlackSlack

What it does

Resolution checks alone miss the records that still resolve but point at a zombie origin nobody hits. This workflow correlates each Cloudflare record against Axiom request-log data to find subdomains with no meaningful traffic over a configurable lookback. Those silent records are the best candidates for decommissioning, and each one becomes a GitLab cleanup ticket.

When to use it

Use it during DNS hygiene sweeps or cost/attack-surface reduction efforts, when you want evidence (zero traffic) before proposing a record be deleted, not just a guess.

How it works

  1. 1A monthly schedule kicks off the correlation run.
  2. 2Cloudflare returns the full record set for the in-scope zones.
  3. 3Axiom is queried for per-hostname request counts over the lookback window.
  4. 4A join + filter keeps records with zero or near-zero traffic that still resolve.
  5. 5For each candidate a GitLab issue is opened proposing decommission, with the traffic evidence attached.
  6. 6A Slack message summarizes how many orphans were found and the total request volume reclaimed.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect CloudflareWorkers, Pages, R2, KV — the edge stack.
  2. 2
    Connect AxiomLog streams, queries, dashboards.
  3. 3
    Connect GitLabRepos, MRs, pipelines, registry.
  4. 4
    Connect SlackChannels, DMs, threads, mentions.
  5. 5
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  6. 6
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  7. 7
    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.