Keep everything under control

Stepan Suvorov

VP Engineering @ Studytube

Happy Birthday,

Marina! =)

Happy Birthday,

Marina! =)

Error Tracking

stars with Error Handling

Why?

It's hard enough to find an error in your code when you're looking for it;

it's even harder

when you've assumed your code is error-free. 

              Steve McConnell

Any resemblance to actual browser logos is purely coincidental.

Bugs will still get into production

no matter what.

(c) Matt Robenolt: Everything is broken, and I don't know why! [JSConf2014]

What?

What to track?

  • Error message
  • Error trace
  • Error level
  • URL
  • Browser & OS
  • User ID
  • App state
  • Release number

Release number

Do know your errors

  • Fatal, Warning, Notice
  • System vs User
  • Local vs Global

and What not?

What better not to track

  • localhost (Test/Dev environment)
  • old browsers
  • known browser extension issues 

How?

All you need to do

  • capture error
  • send to the server
  • own errors
  • typeof new Error('lol').stack
  • framework specific

Use Tools!

Key features

  • SSL
  • Notifications
  • Webhooks
  • Useful Search/Filtering
  • Integrations: GitHub, Jira, Slack, HipChat...
  • Dupe detection
  • Comprehensive read & write API
  • Deploy tracking
  • Source map support
  • Knows your framework

Sourcemaps for

Minified code experience

Providing Sourcemaps

  • publicly hosted
  • curl
  • sentry-cli
  • publicly hosted

Sourcemaps experience:

Being more friendly with you users:

+

Standard flow

Be more proactive!

under the hood

our API

webhook

 API

webhook

our API

 API

shows what user did before the BUG happened

70% discount promocode - KUOLL70

How it works

  • Record is stored in the browser IndexedDB until a bug
    detected

  • Stores/replays using HTML DOM mutations deltas

  • Complete HTTP XHR request/response is stored (with
    content and headers)

  • Events are connected together into cause-effect
    chains. A chain example: user click -> request ->
    response -> dom-mutation.

Let's do together

https://goo.gl/3W5438

Thank you for your attention.

Questions?

Error Handling

By Stepan Suvorov

Error Handling

  • 1,256