Use Case 08  ·  Engineering Intelligence

The alarm fired three times. Nothing got in.

A threshold alarm can tell you a number crossed a line. It can't tell you the one thing you actually want at 8:41am: did any of it matter? Here's an alarm on our own production infrastructure that fired three times in four weeks — all noise, each one a manual investigation to prove it.

CM
CodeMinder Team
September 2026  ·  4 min read

The Structural Reality

A threshold alarm can tell you one thing: a number crossed a line. Blocks > 100 in five minutes — fire. What it can't tell you is the only thing you actually want to know when it pages you at 8:41am: did any of it matter? Those are different questions, and the distance between "something was blocked" and "here's what it was and whether you need to care" is where real engineering capacity disappears. This is a story about that distance — on our own production infrastructure.

What happened — three times

A CloudWatch alarm on CodeMinder's own production WAF, cm-prod-waf-high-blocks, fired three times in four weeks: August 5, August 8, and September 2. Every firing was the same class of event — a single cloud-hosted machine running a credential-harvesting wordlist against paths that don't exist on our API. Every firing reported high blocks. Not one said whether it mattered.

The triage tax

The first time, proving it was harmless took roughly six hours — overnight, ad-hoc, from scratch. Not because the answer was complex, but because the evidence was scattered across four log sources and three AWS services, and you have to know exactly how they fit. The first pass even burned time on dead ends: hunting for load-balancer access logs in an account that doesn't have that log type, chasing a coincidence between the block count and an unrelated customer issue, and querying database tables that belonged to a customer's system instead of ours.

By the third firing, the same investigation took five minutes — because someone had turned that first painful pass into a written runbook and a script.

Sit with that progression: six hours, then fifteen minutes, then five. The task never changed. What changed is that a senior engineer absorbed the cost once, by hand, and compiled the knowledge into something repeatable. The alarm didn't get smarter. A person did the work the alarm couldn't.

The threshold is unreliable, too

The blocks-over-threshold, in order, were 170, 151, 103 — the margin over the limit collapsing against a baseline of essentially zero blocked traffic:

170 Aug 5  ·  +70 over the threshold
151 Aug 8  ·  +51 over
103 Sep 2  ·  +3 over
Any scanner burst trips it — and the margin is vanishing. Next month's identical scan may not fire at all.

So the alarm is simultaneously too noisy (any burst of background internet noise pages a human) and going blind (the same noise is about to slip under the line). A static threshold is the wrong instrument for this.

Then we fed it to our own pipeline

This is the exact problem CodeMinder is built for — an alert that says "something was blocked" without saying whether it mattered, and a multi-source manual hunt to find out. So we ran the September 2 event through CodeMinder itself.

565log records in
→
4action items out
141:1 compression

The point wasn't reducing 565 records to four. It was turning them into decision-ready findings. The pipeline read the event as automated reconnaissance from a single source and named the campaign shapes:

PriorityCategoryOccurrencesWhat it is
Highcredential-probe23a credential / config-file harvesting campaign
Highexternal-scan54a Spring Boot / info-disclosure sweep
Mediumexternal-scan331a broad sensitive-file wordlist scan
Lownetwork-scan1a single stray probe

Four labeled, prioritized findings — instead of 500+ undifferentiated blocked-request log lines and a night of manual queries.

The reality gap

What the alarm reported
103 blocks
A quantity. A number crossed a line. Go find out if it matters.
What it meant
One scanner, three campaigns
Automated reconnaissance from a single origin, three wordlist campaigns, no successful access — nothing that needed a human out of bed.

Both were looking at the same event. Only one answered the question you actually have when you're paged — what is this, and do I need to care? That meaning doesn't live in any single log line. It lives in the relationship between hundreds of them — same source, same window, wordlist shapes — the things that turn hundreds of blocked requests into an understanding of what happened.

What this means for you

A threshold alarm is a smoke detector: it tells you smoke exists, not whether there's a fire or someone burned toast. That's fine — until every burst of background internet noise pages an engineer who then has to prove, by hand, that it was harmless. Two questions get collapsed into one:

The first question is cheap. The second is where senior engineering hours disappear — and it's the one you're actually asking when the pager goes off.

The Core Idea

The alarm told us something was blocked. It couldn't tell us whether it mattered. The gap isn't between having the data and not having it — it's between having the signal and understanding what it means.

← Use Case 07
Every Fallback Worked. The Layer Was Failing.
Use Case 09 →
The API Key Wasn't in the Code. It Was in the Logs.

How many of your alarms are just noise you have to prove is noise?

Bring us one workflow you're not completely confident in. We'll show you how we'd trace the signals behind it.

Book a Demo →