I built a forensic debugger for Azure Service Bus dead-letter queues — here's how it works
Deb
·
2026-05-01
·
via DEV Community
<p>It's 2 AM. Your monitoring fires. <strong>5,000 messages</strong> in the Dead-Letter Queue.<br> You need to know three things immediately:</p> <ul> <li>What's actually inside those messages</li> <li>Which failure pattern caused this</li> <li>Which messages are safe to replay right now</li> </ul> <p>That investigation used to take me 6 hours. It now takes 45 minutes. Not because I got faster — because I built the right tool.</p> <p><strong>ServiceHub</strong> is an open-source, self-hosted web application that treats dead-letter queue debugging as the forensic investigation it actually is.</p> <p>Here's what it does that a standard management console cannot:<br> <strong>Full message body inspection</strong> — click any message, active or dead-letter, and see the complete JSON with syntax highlighting, every system property, and the exact broker error description.</p> <p><a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5b8rb9qn8i5mhiec4qgo.png" class="article-body-image-wrapper"><img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5b8rb9qn8i5mhiec4qgo.png" alt=" " width="800" height="345"></a></p> <p><strong>Client-side AI pattern detection</strong> — clusters your DLQ messages into error groups with confidence scores. Runs entirely in your browser. Zero data exfiltration. No API key needed.</p> <p><a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc2unxrqsytskpu53wouk.png" class="article-body-image-wrapper"><img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc2unxrqsytskpu53wouk.png" alt=" " width="800" height="345"></a></p> <p><strong>Auto-replay rules</strong> — define conditions, set rate limits, add exponential backoff. The engine runs autonomously and shows live Pending → Replayed → Success counters.</p> <p><a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmoms3687co3ejnu6shfk.png" class="article-body-image-wrapper"><img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmoms3687co3ejnu6shfk.png" alt=" " width="800" height="345"></a></p> <p>30-day <strong>DLQ Intelligence</strong> — persists every scan to local SQLite. Know whether tonight's spike is a new incident or the same pattern from last Tuesday.</p> <p><a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9b0zat7fwmhnhva59et8.png" class="article-body-image-wrapper"><img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9b0zat7fwmhnhva59et8.png" alt=" " width="800" height="345"></a></p> <p><strong>Correlation Explorer</strong> — paste any Correlation ID and trace that message across every queue, topic, and namespace in one search.</p> <p><a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzysmkuuy9d6osre34vip.png" class="article-body-image-wrapper"><img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzysmkuuy9d6osre34vip.png" alt=" " width="800" height="345"></a></p> <p>The entire thing is read-only by design. Uses PeekMessagesAsync — your consumers are never affected. Works with Listen permission only.</p> <p>bash<br> git clone <a href="https://github.com/debdevops/servicehub.git" rel="noopener noreferrer">https://github.com/debdevops/servicehub.git</a><br> cd servicehub && ./run.sh</p> <p>One command. Auto-installs .NET 10 and Node.js. </p> <p>Open <a href="http://localhost:3000" rel="noopener noreferrer">http://localhost:3000</a>.</p> <p>Or try the hosted demo in 30 seconds — no install:<br> 👉 <a href="https://app-servicehub-prod.azurewebsites.net/" rel="noopener noreferrer">https://app-servicehub-prod.azurewebsites.net/</a></p> <p>The hosted version authenticate via Microsoft Entra ID (Azure AD). No user database. No personal data stored. Connection strings AES-GCM encrypted at rest in your session. </p> <p>What does your current DLQ investigation workflow look like? Drop it in the comments — I'm genuinely curious what the most painful part still is.</p> <p>⭐ GitHub: <a href="https://github.com/debdevops/servicehub" rel="noopener noreferrer">https://github.com/debdevops/servicehub</a> — MIT license, PRs welcome.</p>
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。