fix(filter): surface rule-eval timeouts and instrument engine + webhook egress #369

Merged
KofTwentyTwo merged 1 commits from story/obs-4-filter-observability into dev 2026-07-31 23:34:51 +00:00
1 Commits
Author SHA1 Message Date
James Maes bdb61488e6 fix(filter): surface rule-eval timeouts and instrument engine + webhook egress
Replace the silent unwrap_or_default() on the ReDoS evaluation timeout
with an explicit, per-rule timeout that logs a warn! carrying the
rule's identity instead of quietly folding a timed-out evaluation into
"no match". The per-rule evaluation now runs on a blocking-pool task so
the timeout can actually preempt a slow synchronous evaluation, rather
than racing a timer a non-yielding future would never let fire; a
timed-out rule is documented and logged as non-matching, and the rest
of the batch still runs.

Add DEBUG rule-fire logging (rule id/name + action kinds, never the
destination data an action carries) and INFO on reload_rules. Wrap
webhook dispatch in a tracing span logging the target host, and log
every SSRF/CIDR/DNS-rebind block decision as warn! with host/blocked-ip
and reason; allowed egress logs at debug. No message bodies, secrets,
or full URLs are logged.

Refs #360
2026-07-31 18:32:06 -05:00