Client Tracing: Understanding Mobile and Desktop Application Performance at Scale
Article Summary
"My app is slow" - every engineer's nightmare. Slack's mobile team was tired of hitting dead ends when debugging performance issues.
Slack's mobile infrastructure team adopted distributed tracing - typically used for backend services - to understand performance across iOS, Android, and desktop clients at scale. They built a custom tracing API that samples 1% of operations, generating over a billion logs daily across 100 distinct traces.
Key Takeaways
- Traced API requests through queue time, HTTP calls, and parsing phases
- Connected client and server spans in single traces using shared identifiers
- Database transactions tracked wait, execute, and save times with table metadata
- View load traces measure time to visible content and up to date data
- Dropped frame counts revealed main thread bottlenecks in production traces
Critical Insight
By applying distributed tracing to mobile clients, Slack can now pinpoint exactly where and why performance degrades for real users in production.