https://github.com/mindflayer/flask-breathalyzer
A Flask module pushing exceptions to Datadog
https://github.com/mindflayer/flask-breathalyzer
Last synced: 9 months ago
JSON representation
A Flask module pushing exceptions to Datadog
- Host: GitHub
- URL: https://github.com/mindflayer/flask-breathalyzer
- Owner: mindflayer
- License: mit
- Created: 2016-04-22T14:15:28.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2017-08-29T20:32:00.000Z (almost 9 years ago)
- Last Synced: 2024-09-13T23:58:21.314Z (almost 2 years ago)
- Language: Python
- Homepage:
- Size: 172 KB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
==================
Flask-Breathalyzer
==================
.. image:: https://api.travis-ci.org/mindflayer/flask-breathalyzer.png?branch=master
:target: http://travis-ci.org/mindflayer/flask-breathalyzer
.. image:: https://coveralls.io/repos/mindflayer/flask-breathalyzer/badge.png?branch=master
:target: https://coveralls.io/r/mindflayer/flask-breathalyzer
A Flask module pushing exceptions to Datadog
--------------------------------------------
.. image:: https://raw.githubusercontent.com/mindflayer/flask-breathalyzer/master/Flask-Breathalyzer.png
Features
========
- Pushing exceptions to Datadog;
- Blacklist for `headers` or `data` as list of *XPATH style* strings (you may have some headers you do not want to publish for privacy, or maybe some body fields you do not need to display - e.g.: a base64 blob).
Installation
============
Using pip::
$ pip install flask_breathalyzer[datadog]
Issues
============
When opening an **Issue**, please add few lines of code as failing test, or -better- open its relative **Pull request** adding this test to our test suite.
Quick example
=============
Let's create a new virtualenv with all we need::
$ virtualenv example
$ source example/bin/activate
$ pip install pytest flask_breathalyzer[datadog]
As second step, we create a test `example.py` file as the following one:
.. code-block:: python
from flask import Flask
import datadog
from flask_breathalyzer import Breathalyzer
def test_example():
app = Flask(__name__)
@app.route("/")
def boom():
1/0
# from http://docs.datadoghq.com/api/
options = {
'api_key': 'your-datadog-api-key',
'app_key': 'your-datadog-app-key'
}
ba = Breathalyzer(app, **options)
response = test_client.get('/')
assert response.status == '500 INTERNAL SERVER ERROR'
assert b'500 Internal Server Error' in response.data
assert response.mimetype == 'text/html'
assert isinstance(ba.last_event_id, int) # your exception is now on Datadog with this ID
Let's fire our example test::
$ py.test example.py