Filter HTTP Status
Keeps log records whose HTTP status code falls within a chosen range and drops the rest. The status code is read from a status key found in either the log record's attributes or its body. Records whose status code falls outside the range, or that carry no recognizable status code, are dropped. This processor operates on logs only.
Supported Telemetry Types
✓
Configuration

Logs
Minimum Status Code
Enum: 100, 200, 300, 400, 500, 600
Yes
100
The lowest status code to allow through. Records with a lower status code are dropped.
Maximum Status Code
Enum: 199, 299, 399, 499, 599
Yes
599
The highest status code to allow through. Records with a higher status code are dropped.
The range is evaluated by status-code class (1xx, 2xx, 3xx, 4xx, 5xx). Only classes fully contained within [Minimum, Maximum] are kept. With the default 100–599, every class is in range, so the processor keeps everything and acts as a no-op. Narrow the range to start dropping classes.
Examples
Keep only client and server errors (4xx and 5xx)
Set Minimum to 400 and Maximum to 599. Records whose status is in the 1xx, 2xx, or 3xx classes are dropped; 4xx and 5xx records pass through. The status code is matched in the record's attributes or body, for example an attribute status: 404 or a body containing "status": 503.
Keep only successful responses (2xx)
Set Minimum to 200 and Maximum to 299 to retain only the 2xx success class and drop everything else.
Configuration Tips
The status code must appear under a
statuskey in the log record's attributes or body. Records without a matchingstatuskey are dropped, so place this processor after any parsing step that extracts the status code into astatusfield.Only whole status-code classes are evaluated. Choose Minimum and Maximum at class boundaries (for example
400/499) rather than expecting an exact numeric cutoff within a class.The default
100–599keeps all classes and drops nothing. Use it as a starting point, then tighten the range to filter.
Troubleshooting
All records are being dropped
Symptoms: no logs reach the destination after enabling the processor.
Solutions:
Confirm the records actually carry a
statuskey in their attributes or body. Records with no recognizable status code are dropped.If the status code is nested or under a different key, add a parsing processor upstream to surface it as
statusbefore this processor runs.
Records I expected to drop are still passing through
Symptoms: out-of-range status codes still reach the destination.
Solutions:
Check the Minimum and Maximum values. The default
100–599keeps every class and drops nothing.Remember that filtering is by class. A range of
200–499keeps the entire 2xx, 3xx, and 4xx classes; it does not exclude a specific code within a kept class.
Records appear twice or counts look off
Symptoms: filtering seems inconsistent across a batch.
Solutions:
Ensure only one Filter by HTTP Status instance acts on the pipeline, or that stacked instances use compatible ranges. Two instances with non-overlapping ranges can drop everything.
Standalone Processor
Related Resources
Bindplane Resources
These filtering processors operate on logs and can be combined to refine which records reach a destination:
Last updated
Was this helpful?