# Telemetry & Observability for Elixir Apps at Cars.com with Zack Kayser & Ethan Gunderson Page: https://stenobird.com/podcast/elixir-wizards/telemetry-observability-for-elixir-apps-at-cars-com-with-zack-kayser-ethan-gunderson Text version: https://stenobird.com/podcast/elixir-wizards/telemetry-observability-for-elixir-apps-at-cars-com-with-zack-kayser-ethan-gunderson.md Podcast: [Elixir Wizards](https://stenobird.com/podcast/elixir-wizards) Published: 2024-12-12T11:30:00+00:00 Episode link: https://smartlogic.fireside.fm/s13-e09-observability-telemetry-elixir-cars-commerce Audio file: https://aphid.fireside.fm/d/1437767933/03a50f66-dc5e-4da4-ab6e-31895b6d4c9e/0fd8471e-c80e-4683-8410-e06ece191a31.mp3 Processing state: processed JSON: https://stenobird.com/v1/public/podcasts/elixir-wizards/episodes/telemetry-observability-for-elixir-apps-at-cars-com-with-zack-kayser-ethan-gunderson Duration seconds: 2559 ## Resource Learn how to implement effective observability in high-traffic Elixir environments using Telemetry and OpenTelemetry. Engineers from Cars.com share practical strategies for managing large-scale system visibility and avoiding deployment-driven traffic spikes. ## Highlights - Main idea: Observability should enable developers to ask unplanned questions of a system to diagnose incidents and prevent recurrence - Practical takeaway: Use OpenTelemetry instrumentation libraries to easily add vendor-agnostic tracing and spans to your Elixir applications - Failure mode: Relying on Phoenix LiveView's default auto-recovery during deployments can trigger massive, redundant downstream database or search engine queries - Practical takeaway: Leverage the Elixir Telemetry ecosystem to hook into events from libraries like Oban without needing to modify their internal source code - Trade-off: Balancing high-resolution data collection with the storage costs and performance overhead of high-volume telemetry spans ## Topics Elixir, Telemetry, OpenTelemetry, Observability, Phoenix LiveView, Distributed Tracing, Microservices, System Monitoring ## Chapters - 1:00 — Introduction to Cars.com Scale: The guests discuss their experience transitioning from small-scale Elixir apps to managing high-throughput production environments at Cars.com. - 4:15 — The High-Stakes Switch: A look at the technical pressure and challenges of migrating traffic from legacy stacks to new Elixir-based infrastructure. - 7:20 — The Value of Contextual Tracing: Why simple log lines are insufficient for triaging incidents and how tracing allows you to follow a specific user's journey through downstream services. - 10:35 — Defining Observability Goals: Moving beyond simple incident diagnosis to using telemetry for proactive system understanding. - 13:50 — Managing Data Volume and Sampling: The challenges of handling massive amounts of telemetry data and the necessity of sampling strategies to manage costs. - 16:50 — LiveView and WebSocket Challenges: How Phoenix LiveView socket reconnections during deployments can create significant downstream load on services like Elasticsearch. - 23:30 — Scaling Instrumentation: Strategies for instrumenting large-scale applications and the importance of using standardized libraries like OpenTelemetry. - 39:20 — The Future of Elixir Telemetry: How the growing ecosystem of Telemetry-enabled libraries simplifies the burden of building custom observability tools. ## Actions - request_transcript: `POST https://stenobird.com/v1/public/podcasts/elixir-wizards/episodes/telemetry-observability-for-elixir-apps-at-cars-com-with-zack-kayser-ethan-gunderson/transcription-requests` — Idempotently request low-priority transcript generation for this episode. - read_markdown: `GET https://stenobird.com/podcast/elixir-wizards/telemetry-observability-for-elixir-apps-at-cars-com-with-zack-kayser-ethan-gunderson.md` — Read the agent-friendly Markdown representation of this episode resource. A page view does not enqueue transcription. Agents should invoke `request_transcript` explicitly when they need this episode processed. ## Transcript Full transcripts are not published on public pages unless there is a clear rights basis.