Python for Entrepreneurs Transcripts
Chapter: Monitoring and logging in production
Lecture: Introduction to logging and monitoring
Login or
purchase this course
to watch this video and the rest of the course contents.
0:03
The last thing you want to see in your web app is some kind of crash,
0:07
a 500 error or maybe it's even a little more subtle than this falling octacad,
0:12
maybe it's some button doesn't work, because behind the scenes,
0:17
it's calling some kind of JavaScript thing where that's crashing.
0:20
So, how do we know when this has happened? Right,
0:24
our server is not going to tell us, it's just going to return 500 to the user and that's it.
0:28
Our users will tell us sometimes, if someone comes to buy something from you
0:33
and they see this page instead, they are going to lose a lot of faith in your app,
0:37
in your product, they are going to wonder - did you already charge their credit card
0:41
or did it crash before? Should they try to buy it again,
0:44
will they be charged but not receive their product? Whatever it is.
0:49
This is really bad when your app crashes or behaves badly.
0:54
So how do we know about it?
0:57
Well, users will sometimes tell you, but for every user that tells you
1:00
something is wrong, there will be plenty of users that have come to your site
1:05
and just got, "this thing is crap" and left.
1:07
So, relying on the users is not enough,
1:09
and often they will say "well, it crashed and I tried this and it didn't work",
1:12
how do you know what crashed, how do you track that down?
1:15
So, we want to first talk about how we can at least record this information locally,
1:19
some of it, so that we have it, and ideally, we would get notified,
1:24
right away like possibly by the time the user was done typing up an email saying
1:29
look I went to this URL it crashed, you've already actually got it fixed,
1:33
or you are already working on the fix and you can shoot them a quick note
1:37
"hey thanks, I already noticed here is the problem, come back in 15 minutes
1:41
and everything will be working great",
1:43
that actually turns a bad experience into pretty good experience,
1:46
if you hit a website and the owner already
1:51
like maybe proactively emails you saying "hey, I saw you run into this error,
1:54
I am working on it, it will be fixed soon", before you even contact them,
1:57
that's ridiculously good customer service; so, how are we going to do that?
2:00
Well, two main things- we are going to start with logging,
2:04
so having logging is important not just for the errors the users run into,
2:08
but also for auditing who logged in from where, when,
2:11
people trying to hack your website, what other things are going on,
2:17
are you running out of memory and so on, how many requests per second,
2:21
there is just lots of stuff that you want to do in logging
2:24
that you are going to come back and look at.
2:27
But that's just what I would think of as level one, right,
2:30
logging puts into a file what has happened, and if you bother to go sift through that file,
2:34
you might learn something about what's happening, that's great.
2:37
But, like I said, ideally, you'd like to know straight away when that happened,
2:42
so we are going to talk about monitoring with the Rollbar,
2:44
and how we can actually capture, not just some of what went wrong,
2:49
but possibly even the state of the variables in the call stack, the URL,
2:53
the platform version, the browser version, everything about the application state
3:01
from both the client side and the server-side and send those notifications to us right away.
3:06
Slack, text message, whatever.
3:09
That's what this chapter is about, first we are going to focus on logging
3:12
and then we are going to sort of take it to level two the next level with monitoring.