Remove Needle; stop paging on nginx 4xx
Needle scored ~chance on the golden set and never gated alerts, so drop the sidecar, proxy handlers, UI buttons, k8s container and build step. The labelled eval sets move to cmd/triage-eval/data. nginx 4xx (registry 401 challenges, /oauth2/auth, scanner 405s) is now dropped in FilterActionable instead of only being discounted, so it cannot ride along with a real 5xx. nginx 5xx still alerts. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e046bd86d1
commit
51a8412ae1
22 files changed
+29
-1162
No files matched your search
@@ -11,6 +11,13 @@ func TriageOf(e features.Event) triage.Result {
|
||||
IsTimeout: e.IsTimeout, IsCancellation: e.IsCancellation, IsRetry: e.IsRetry})
|
||||
}
|
||||
|
||||
// edgeClientError reports a 4xx seen at the nginx edge: registry auth
|
||||
// challenges, /oauth2/auth subrequests, 405s from scanners. These are the
|
||||
// caller's problem and never page, even next to a real 5xx.
|
||||
func edgeClientError(e features.Event) bool {
|
||||
return e.Service == "nginx" && e.StatusCode >= 400 && e.StatusCode < 500
|
||||
}
|
||||
|
||||
// FilterActionable keeps only patterns whose category should page a human
|
||||
// (unless keepMuted), recomputing each spike's excess so a probe storm cannot
|
||||
// alert by itself. muted, when non-nil, counts what was dropped per category.
|
||||
@@ -21,7 +28,7 @@ func FilterActionable(spikes []features.Spike, keepMuted bool, muted map[triage.
|
||||
sp.Excess = 0
|
||||
for _, p := range sp.Patterns {
|
||||
c := TriageOf(p.Example).Category
|
||||
if !keepMuted && !c.Actionable() {
|
||||
if !keepMuted && (!c.Actionable() || edgeClientError(p.Example)) {
|
||||
if muted != nil {
|
||||
muted[c]++
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user