-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error monitoring #651
Error monitoring #651
Conversation
d73ec1e
to
3937375
Compare
3937375
to
9e1cdf9
Compare
887c136
to
325dbdd
Compare
1d3db33
to
e0e4b6b
Compare
Where does ErrorServiceThread get started? Does it start even if |
|
@tim-schilling If we've tested and all looks good and you're ready to release let's go ahead 👍 |
I'm going to push the existing changes out in a version, then merge this as another version. |
1b6fe64
to
9a4b91d
Compare
The middleware process_exception would only allow us to track exceptions thrown in views, that weren't picked up by an earlier middleware that returned a result. This solution allows us to track exceptions that occur anywhere in the application. The downside to this is that it's possible if another receiver of got_request_exception throws a new exception, our handler may get the wrong exception with sys.exc_info(). We could limit the scope of that issue by injecting a middleware that's as far down the list as possible to wrap the view and catch exceptions there. Then rely on the signal handler for catching exceptions in the middleware. Create ErrorServiceThread to buffer error messages. Implement buffering logic, write integration tests for error_service. Exclude specific libraries' logs from caplog. Some of our checks are positional based, but have the chance of triggering a libraries own debug statements. For cases we know we can ignore, we can add them to the filter to make the tests more robust. Expose a configurable API and ErrorMonitor interface. Support Celery for the error monitoring solution. Custom params belong on the context. Celery's custom params go into a celery key of custom params. Custom controller overrides the request_component's controller.
Deprecates backtrace.capture in favor of backtrace.capture_backtrace.
9a4b91d
to
4b8ef04
Compare
Monitor errors via got_request_exception signal.
The middleware process_exception would only allow us to track
exceptions thrown in views, that weren't picked up by an
earlier middleware that returned a result. This solution allows
us to track exceptions that occur anywhere in the application.
The downside to this is that it's possible if another receiver
of got_request_exception throws a new exception, our handler
may get the wrong exception with sys.exc_info().
We could limit the scope of that issue by injecting a middleware
that's as far down the list as possible to wrap the view
and catch exceptions there. Then rely on the signal handler
for catching exceptions in the middleware.
Create ErrorServiceThread to buffer error messages.
TODO: