When a backend starts failing, the first sign is usually a clump of 5xx responses — not one or two, but a burst that rises clearly above the surrounding noise. HTTP Error Spike Detector buckets each line of your access log into a fixed time window you choose, counts the 5xx responses that land in every bucket, and flags any bucket that blows past your absolute count threshold, your error-rate threshold, or both at once.
Every parseable line is assigned to a bucket keyed by its timestamp rounded down to the bucket boundary, so a 1-minute bucket for 14:03:47 always covers 14:03:00 through 14:03:59, regardless of how many lines land in it. The status-code pattern targets the code that sits right after the closing quote of the request line, which is how Apache and Nginx combined/common log formats write it, so a coincidental "500" sitting in an unrelated field elsewhere on the line — a bytes-sent count, a response time, a random query parameter — is not mistaken for a backend error. Only genuine 5xx status codes at that position are counted; 4xx client errors are deliberately excluded so a wave of bad requests or bot traffic does not drown out real backend faults.
Every flagged bucket comes back with its start time, its exact error count out of total requests in that bucket, the error ratio as a percentage, and the top endpoints and source IPs driving it, so you can go from "something spiked" to "this URI, from these IPs" without leaving the tool. Lines with unparseable timestamps are tracked separately in the scanned/error/bucket stats so you always know how much of the file the analysis actually covered.