check / check (push) Waiting to run
Each alert is posted as a message to the Slack incoming webhook SWWAF_ALERT_SLACK_WEBHOOK_URL names, and published to the ntfy topic SWWAF_ALERT_NTFY_URL names, with SWWAF_ALERT_NTFY_TOKEN as a bearer token and a priority and tag by event. The cooldown and the hourly limit stay shared; past them, each destination has its own bounded queue and backoff, and its own sent, failed and dropped counts. alerts.json keeps the alerts waiting by destination; one whose waiting is still a list stops the start, saying what to change. A control character in the ntfy token, or in the instance name ntfy is sent, stops the start. Judgement call: messages also give the detail's file, source, error and mode. Judgement call: alerts_suppressed_total is the same for every destination. Model: opus-5-5
17 lines
418 B
Go
17 lines
418 B
Go
package alerts
|
|
|
|
import "net/http"
|
|
|
|
// QueueSize is the most alerts that wait to be sent to a destination.
|
|
const QueueSize = queueSize
|
|
|
|
// SetTransport has q's requests to the destination name go through
|
|
// transport instead of the network.
|
|
func (q *Queue) SetTransport(name string, transport http.RoundTripper) {
|
|
for _, d := range q.destinations {
|
|
if d.name == name {
|
|
d.httpClient.Transport = transport
|
|
}
|
|
}
|
|
}
|