Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Observability of your app in production

Kurt Nelson
September 01, 2022

Observability of your app in production

Just shipped your app to the Play Store for the first time? You'll want to make sure you have visibility into what is going on in the wild. We'll go through an overview of some of the most useful and often free tools, such as Play Store vitals; Firebase reporting; logging, and performance monitoring.
You'll leave this talk with the knowledge to help improve the quality of your app and avoid fire fighting in production.

Kurt Nelson

September 01, 2022
Tweet

More Decks by Kurt Nelson

Other Decks in Technology

Transcript

  1. September 1st, 2022 Observability of your app in production Kurt

    Nelson Senior Software Engineer, Pinterest @kurtisnelson
  2. 2. When do I set it up? 1. What is

    it? Observing Today’s Talk 3. How do I do it? 4. Now what?
  3. Observability is the ability to see what is happening in

    production on user devices with your binary Unstructured logging, crash reporting, performance metrics, and analytics are the common forms.
  4. As soon as an app is in the public’s hands,

    it should have basic, manual, observability. Don’t rely on just a QA process.
  5. Google provides the basics, for free! Bigger companies often roll

    at least part of their observability stack, often analytics so that it can tie into other data pipelines.
  6. Bread & Butter Traditional Logging Think LogCats, non-fatal stack traces,

    unexpected but recoverable behavior all sent as strings. Crash Reporting The crash itself is a structured log; a good system will collate these with relevant unstructured logs. Clustering and attaching of metadata pertaining to the build is also performed. Structured Logging This is a catch-all term, and is often speci f ic to the business needs of your application. Think performance data, analytic events, or ad impression data.
  7. Think JSON without a well-de f ined schema, or LogCat

    output on the terminal. Extra work required for machine consumption. Structured Logging Think something represented by a data class, protocol buffer or thrift de f inition. Easily consumed by machines. Unstructured Logging
  8. Actions to take based on the data can be determined

    on the f ly until process is achieved. The process resulting from observability is second. Getting the data f lowing into systems is the important part.
  9. Toasting your Bread & Butter Experimentation Observing the known unknowns

    Alerting Observing the unknown unknowns Feature Flags/Circuit Breakers Tools to trigger when you observe something wrong
  10. In a microservice architecture, this comes out of the box.

    But as usual, your mobile app is probably the only one.
  11. Honorable Mentions Bug Snag A commercial crash reporting system mobile.dev

    Catch performance issues pre-production Jaeger Tracing With proper backend instrumentation, observe the user f low through the backend too.
  12. Relax. Next time there is an outage, you’ll be equipped.

    But what if you can avoid the outage in the f irst place?
  13. Google came up with SRE to describe the backend engineers

    treating operations as code. For mobile, the service is the app itself. We can crib some of their best practices. See https://sre.google/sre-book for a deep dive!
  14. 1. Alert when things get strange but still seem to

    work. 2. Guard changes and automatically revert them based on observations. Once we have observability into our app we can…
  15. September 1st, 2022 Observability of your app in production Kurt

    Nelson Senior Software Engineer, Pinterest @kurtisnelson