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