Buglyst Blog
Learn to debug under pressure.
Playbooks for fast pattern recognition, guides for the full investigation, and articles for the engineering judgment around the edges.
17 playbooks · 509 guides · 95 articles · 12 linked practice labs ·skip to practice
Fast pattern recognition for the production failures engineers see most often.
1 playbook in Observability & Performance
Structured investigations for the failure modes engineers meet in real systems.
Node.js CPU Profiling: Fixing a Stuck Event Loop in Production
A practical guide to diagnosing Node.js CPU spikes using flame graphs, perf, and async hooks. Includes a real incident where a JSON serialization loop blocked the event loop for 12 seconds.
Prometheus Alert Not Firing: A Systematic Debugging Guide
A structured approach to diagnosing why a Prometheus alert rule isn't triggering, covering expression evaluation, staleness, relabeling, and configuration pitfalls.
Sentry Not Capturing Errors: A Debugging Guide
A direct guide to diagnosing why Sentry fails to capture errors in production, covering SDK misconfigurations, network issues, and rate limits.
Distributed Tracing Spans Not Connecting: A Debugging Guide
Guide to debugging missing parent-child connections in distributed traces, covering sampling mismatches, header propagation failures, and clock skew.
Correlation ID Not Propagating Across Asynchronous Boundaries
Debug why your distributed logging correlation ID disappears across async boundaries, thread pools, or event buses — with concrete commands and fix patterns.
Debugging Long GC Pauses in Java: A Practical Guide
A hands-on guide to diagnosing and resolving excessive Java GC pause times in production JVMs.
Long-form thinking on debugging habits, observability, and the systems around the bug.
Adding Observability to a 500K-Line Monolith Without a Rewrite
Adding structured logging, distributed tracing, and metrics to a legacy monolith without a full rewrite. Real code examples and a war story from a 500K-line codebase.
Distributed Tracing: Following a Single Request Across Microservices
Distributed tracing lets you follow a request as it hops across services. I'll show you how trace context propagates, why sampling matters, and how tracing helped us debug a 5-second latency spike in production.
Structured Logging in JSON: Fields, Schemas, and Pitfalls from Production
A practical guide to designing JSON log schemas that are queryable, consistent, and actually useful in production — with field recommendations and a war story.
Sentry Error Monitoring: A Practical Setup Guide from a Production Outage
A step-by-step setup guide for Sentry error monitoring, covering source maps, release tracking, grouping rules, and alerting — with a real story of a production outage that taught us the hard way.
Reading Prometheus Alert Rules: A Practical Reference for Debugging Firing Alerts
Alert rules look straightforward until you're staring at a firing alert at 3 AM. This post covers the structure, common traps, and how to extract actionable intent from any rule.
Profiling SQL Queries: Finding and Fixing the Slow 5%
Profiling SQL queries is more than running EXPLAIN. This guide covers practical techniques to find the slowest queries, interpret execution plans, and fix them — with real examples from PostgreSQL and MySQL.