Skip to main content

Simple and Extensible Error Monitor framework for Flask

Project description

Full featured error monitor app for Flask

https://travis-ci.org/sonus21/flask-error-monitor.svg?branch=master https://coveralls.io/repos/github/sonus21/flask-error-monitor/badge.svg

Introduction

Flask-Error-Monitor is a batteries-included, simple-to-use Flask extension that lets you add error recording interfaces to Flask applications. It’s implemented in such a way that the developer has total control of the resulting application.

Out-of-the-box, Flask-Error-Monitor plays nicely with various ORM’s, including

It also boasts a simple Model management interface.

The biggest feature of Flask-Error-Monitor is flexibility. To start off with you can create a very simple application in no time, with exception monitor enabled, but then you can go further and customize different aspects.

Flask-Error-Monitor is an active project, well-tested and production ready.

Installation

To install Flask-Error-Monitor, simply:

pip install flask-error-monitor.git

Features

  • Sensitive data( like password, secret ) Masking
  • Record all the frames ( frame data are stored in JSON format so that it can be analyzed later)
  • Unique URL generation
  • Number of times the exception occurred and first/last time of exception
  • Sending emails with exception details
  • Record different types of exception like 500 or 404 etc
  • Raise or update ticket in Jira/Bugzilla etc by ticketing interface.

Usage

  • App configuration
...
APP_ERROR_SEND_EMAIL = True
APP_ERROR_RECIPIENT_EMAIL = ('example@example.com',)
APP_ERROR_SUBJECT_PREFIX = "Server Error"
APP_ERROR_EMAIL_SENDER = 'user@example.com'

app.py

from flask import Flask
from flask_mail import Mail
import settings
from flask_error_monitor import AppErrorMonitor
from flask_sqlalchemy import SQLAlchemy
...
app = Flask(__name__)
app.config.from_object(settings)
db = SQLAlchemy(app)
class MyMailer(Mail, NotificationMixin):
    def notify(self, message, exception):
        self.send(message)
mail = MyMailer(app=app)
error_monitor = AppErrorMonitor(app=app, db=db, notifier=mail)

....

....
# Record exception when 404 error code is raised
@app.errorhandler(403)
def error_403(e):
    error_monitor.record_exception()
    # any custom logic

# Record error using decorator
@app.errorhandler(500)
@error_monitor.track_exception
def error_500(e):
    # some custom logic
....

Documentations

This has got extensive document browse at https://flask-error-monitor.readthedocs.io/en/latest/

All docs are in docs/source

And if you want to preview any .rst snippets that you may want to contribute, go to http://rst.ninjs.org/.

Examples

Several usage examples are included in the /tests folder. Please feel free to add your own examples, or improve on some of the existing ones, and then submit them via GitHub as a pull-request.

You can see some of these examples in action at https://github.com/sonus21/flask-error-monitor/tree/master/examples. To run the examples on your local environment, one at a time, do something like:

cd flask-error-monitor
python examples/simple/app.py

Tests

Test are run with nose. If you are not familiar with this package you can get some more info from their website.

To run the tests, from the project directory, simply:

pip install -r requirements-dev.txt
nosetests

You should see output similar to:

.............................................
----------------------------------------------------------------------
Ran 29 tests in 1.144s

OK

Contribution

You’re most welcome to raise pull request or fixes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for flask-error-monitor, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size flask-error-monitor-0.1.1.tar.gz (14.7 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page