Performance Monitoring

Who should listen?

  • Deal with many / slow third-party APIs
  • Lots of spinners
  • Optimizations like prefetching or GraphQL

Talks about #perf

  • "How my app isn't yanky anymore"
  • "10 awesome #perf hacks"

Talks about #perf

  • "Use GraphQL and Relay / Apollo to load only what you need"
  • "Prefetch your components and their data before they load to get better #perf"

Too little talks about

  • "Our #perf optimization had an impact on our customers and this is the way we measured"
  • "This premature optimization had a bad impact on our customers with older phones and this is how we noticed"

Why do we measure?

  • Ship the fastest product possible
  • Get information about bottlenecks
    • User type
    • Devices
    • Usage Path
  • Gain confidence that optimizations
    actually improve the performance

What we want to see?

What we want to see?

Text

Text

root span

span

service

Open Source Tools

  • OpenZipkin
  • OpenTracing
  • react-tracing (WIP)

OpenZipkin

  • Server
  • Client
  • Integrations

docker run -p 9411:9411 openzipkin/zipkin

zipkin.js

Extending span in Zipkin

Connecting the dots

  • X-B3-TraceId
  • X-B3-SpanId
  • X-B3-ParentSpanId
  • X-B3-Sampled

Title Text

OpenTracing

The Standard

  • standard and implementation combined
  • switch out your implementation, but keep the same source code

zipkin-javascript-opentracing

Extending Spans

Connecting two systems

TL;DR

  • Zipkin: awesome tool to get performance insights
  • Opentracing: standards are nice
  • Integrating Tracing in your App is not that hard

My Opinion

  • Better collaboration with backend-oriented team members
  • Backing (or disagreeing) with performance tips based on data is nice
  • Adding Tracing on a few key parts helps to understand a lot of behaviour

React-Tracing

or

My try to get everyone into this without needing to learn that much about all these systems

Goals

  • Enable to give this whole world a try
  • Abstract common use-cases in the frontend
    • Network requests
    • User Interactions
    • Navigation
  • Allow for different backend systems

react-tracing

react-tracing

  • WIP
  • Current Focus: Tracing Network Requests
    • Works partly, async callbacks are hard
    •  
  • Next: Spans through user interaction

Thank you for your time ❤️

Title Text

Title Text

Performance Monitoring (Web)

By Daniel Schmidt

Performance Monitoring (Web)

In React and React Native

  • 749