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.

Source Distribution

flask-error-monitor-0.1.1.tar.gz (14.7 kB view details)

Uploaded Source

File details

Details for the file flask-error-monitor-0.1.1.tar.gz.

File metadata

  • Download URL: flask-error-monitor-0.1.1.tar.gz
  • Upload date:
  • Size: 14.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.7.4

File hashes

Hashes for flask-error-monitor-0.1.1.tar.gz
Algorithm Hash digest
SHA256 36c54f17b6ae70f8c1b84034092c544cc01eee61c99809e31bee6eda03b34f10
MD5 66eca2b7c899fc57713d654410f4fb92
BLAKE2b-256 add8b134a30ae60c0245437f8bb9944ca53dece5a0435f5ca9052eb7dcf42159

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page