Source Instrumentation for Monitoring C++ in Production
summary
Argues that C++ must carry portable source instrumentation—logging, tracing and metrics—inside production builds so failures are diagnosable without debuggers; demonstrates using strace for syscall visibility, structured logging (fielded logs to avoid regex parsing) and cheap atomic counters that increment in hot loops and are polled every 1–5s to emit Prometheus/OpenMetrics-style metrics. Explains distributed traces via passed IDs, sampling and aggregation trade-offs, and motivates the approach with a $5–10M chip-debugging anecdote to show why observability must be designed and measured.
AI-written summary · about
chapters (21)
- 0:00Introduction
- 2:03First Attempt at C
- 3:47Debugging
- 7:16Instrumentation
- 11:40Logging
- 12:53Adding Context
- 18:18Structured Logging
- 20:58Tracing
- 23:23Tracing and Logging
- 26:42Distributed Tracing
- 27:46Logging to Tracing
- 29:56Linking Operations
- 30:42Visualization
- 33:00Tracings not free
- 34:36Metrics
- 38:49Open Metrics
- 40:03Counters
- 42:40increment operation
- 43:03other counters
- 43:50reading lines
- 50:27conclusion
related talks
01h 00m“Source Instrumentation for Monitoring C++ in Production”
44mObservability Tools C++: Beyond GDB and printf - Tools to Understand the Behavior of Your Program
36mIt's not in Production Unless it's Monitored
18mYour Toolchain is Production: The Case for Observability
01h 13mContinuous Profiling: The Missing Piece in Your Observability Puzzle
06mIgnite | Discovering the Magic Behind OpenTelemetry Instrumentation
56mContinuous Profiling the missing piece in your observability puzzle
40mContinuous Profiling, the missing piece in your observability puzzle!
