fix(selfhost): close the dead-letter alerting blind spot and require alerting setup#2549
Conversation
…alerting setup Two of the three dead-letter alert conditions leave a real gap: the rate alert only covers a ~15-20 minute window around a job's transition into dead, and the backlog alert only trips above 50. A single dead job -- the common case, e.g. one job hit a since-fixed bug during a deploy -- sits invisible in the queue table forever once that window closes. - Add GittensoryDeadLetterBacklogPersisting: a level check with no count floor, firing on ANY non-zero dead-letter count sustained for an hour, closing the gap the rate/threshold pair leaves. - Strengthen alertmanager.yml's own documentation to frame receiver setup as required, not optional, for an unattended deployment, and cross-reference the fastest verified path (a Discord webhook, already scaffolded in the file) plus the existing Grafana "Active Alerts" panel as a pull-based fallback for operators who haven't wired up push notifications yet. - Add a new "Alerting" section to the self-hosting Operations doc making the same required-step framing explicit where operators actually read it. Validated: promtool check rules (21 rules found) and amtool check-config both pass against the shipped image versions.
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-07-02 09:06:34 UTC
⏸️ Suggested Action - Manual Review
Review summary Nits — 6 non-blocking
Concerns raised — review before merging
Review context
Contributor next steps
Signal definitions
🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
gittensory-ui | 1700f03 | Commit Preview URL Branch Preview URL |
Jul 02 2026, 09:04 AM |
Summary
Closes #2533.
increase(gittensory_jobs_dead_total[15m]) > 0) only covers a ~15-20 minute window around a job's transition intodead, and the backlog alert only trips above 50. A single dead job — the common case, e.g. one job hitting a since-fixed bug during a deploy — sits invisible in the queue table forever once that window closes, with no automatic way for an operator to find out.docker compose --profile observability up -dalways comes up green) — correct, since a working default notification path can't be baked into a committed file without a secret. But the "you must configure this yourself" step was easy to miss.What changed
GittensoryDeadLetterBacklogPersistingtoprometheus/rules/alerts.yml: a level check with no count floor, firing on ANY non-zero dead-letter count sustained for an hour. Complements the existing rate/threshold pair rather than replacing them.alertmanager/alertmanager.yml's own top-of-file documentation to frame receiver setup as required, not optional, for an unattended deployment, and cross-referenced the fastest verified path (a Discord webhook — already scaffolded as a commented block in the same file) plus the existing Grafana "Active Alerts" panel as a pull-based fallback visible without any extra setup.Validation
promtool check rules(prom/prometheus:v3.12.0 image, matching the shipped compose version): 21 rules found, up from 20.amtool check-config(prom/alertmanager:v0.33.0 image, matching the shipped compose version): SUCCESS.npm run test:cigreen,npm audit --audit-level=moderateclean,git diff --checkclean.src/**files touched, so no Codecov patch-coverage obligation for this change (config + docs only).Safety