Slack's Client Tracing: Understanding Mobile and Desktop Application Performance at Scale
Original post Client Tracing: Understanding Mobile and Desktop Application Performance at Scale
Article Summary
Justin Rushing from Slack's Mobile Infrastructure team reveals how they solved the dreaded "my app is slow" complaint. Their solution? Bringing distributed tracing—typically a backend tool—to mobile and desktop clients.
Slack's engineering team was struggling to diagnose performance issues that weren't easily reproducible. They adapted distributed tracing technology, commonly used for multi-service web applications, to instrument their iOS, Android, and desktop clients at scale. The result is a comprehensive system that captures over a billion logs per day across nearly 100 distinct traces.
Key Takeaways
- Traces API requests in three phases: queue time, HTTP request, and parsing
- Database transactions tracked with wait, execute, and save spans
- View load traces measure both visible content and up to date states
- Dropped frame counts automatically added to identify main thread bottlenecks
- One optimization reduced p95 channel list updates by 40 percent
Slack built a client-side tracing system that processes over a billion logs daily, giving developers causality and context that simple event logs never provided.
Continue reading
This page summarizes “Client Tracing: Understanding Mobile and Desktop Application Performance at Scale” by Slack, published Mar 24, 2021. All credit for the original work goes to the authors.