Automatically monitor the evolving performance of Flask/Python web services.
Project description
# Flask Monitoring Dashboard [![Build Status](https://travis-ci.org/flask-dashboard/Flask-MonitoringDashboard.svg?branch=master)](https://travis-ci.org/flask-dashboard/Flask-MonitoringDashboard) [![Documentation Status](https://readthedocs.org/projects/flask-monitoringdashboard/badge/?version=latest)](http://flask-monitoringdashboard.readthedocs.io/en/latest/?badge=latest) [![codecov](https://codecov.io/gh/flask-dashboard/Flask-MonitoringDashboard/branch/master/graph/badge.svg)](https://codecov.io/gh/flask-dashboard/Flask-MonitoringDashboard) [![PyPI version](https://badge.fury.io/py/Flask-MonitoringDashboard.svg)](https://badge.fury.io/py/Flask-MonitoringDashboard) [![Py-version](https://img.shields.io/pypi/pyversions/flask_monitoringdashboard.svg)](https://img.shields.io/pypi/pyversions/flask_monitoringdashboard.svg) [![Downloads](http://pepy.tech/badge/flask-monitoringdashboard)](http://pepy.tech/count/flask-monitoringdashboard)
Dashboard for automatic monitoring of Flask web-services.
The Flask Monitoring Dashboard is an extension that offers four main functionalities with little effort from the Flask developer:
Monitor the performance and utilization: The Dashboard allows you to see which endpoints process a lot of requests and how fast. Additionally, it provides information about the evolving performance of an endpoint throughout different versions if you’re using git.
Profile requests and endpoints: The execution path of every request is tracked and stored into the database. This allows you to gain insight over which functions in your code take the most time to execute. Since all requests for an endpoint are also merged together, the Dashboard provides an overview of which functions are used in which endpoint.
Monitor your test coverage: The Dashboard allows you to find out which endpoints are covered by unit tests, allowing also for integration with Travis for automation purposes. For more information, see [this file](http://flask-monitoringdashboard.readthedocs.io/en/latest/functionality.html#test-coverage-monitoring)
Collect extra information about outliers: Outliers are requests that take much longer to process than regular requests. The Dashboard automatically detects that a request is an outlier and stores extra information about it (stack trace, request values, Request headers, Request environment).
The dashboard is automatically added to your existing Flask application. You can view the results by default using the default endpoint (this can be configured to another route):
[/dashboard](http://localhost:5000/dashboard)
For more advanced documentation, take a look at the information on [this site](http://flask-monitoringdashboard.readthedocs.io/en/latest/functionality.html).
## Installation To install from source, download the source code, then run this:
python setup.py install
Or install with pip:
pip install flask_monitoringdashboard
### Setup Adding the extension to your Flask app is simple:
from flask import Flask import flask_monitoringdashboard as dashboard
app = Flask(__name__) dashboard.bind(app)
## Documentation For more advanced documentation, see [this site](http://flask-monitoringdashboard.readthedocs.io). If you run into trouble migrating from version 1.X.X to version 2.0.0, this site also helps you solve this.
## Screenshots ![Screenshot 1](/docs/img/screenshot1.png) ![Screenshot 2](/docs/img/screenshot2.png)
Change Log
All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning. Please note that the changes before version 1.10.0 have not been documented.
Unreleased
Changed
Fixed Issue #174
Fixed issue with profiler not going into code
Implemented a Sunburst visualization of the Grouped Profiler
Improved test coverage
Improved python-doc
v2.0.0
Changed
Added a configuration option to prefix a table in the database
Optimize queries, such that viewing data is faster
Updated database scheme
Implemented functionality to customize time window of graphs
Implemented a profiler for Request profiling
Implemented a profiler for Endpoint profiling
Refactored current code, which improves readability
Refactoring of Test-Monitoring page
Identify testRun by Travis build number
v1.13.0
Changed
Added boxplot of CPU loads
Updated naming scheme of all graphs
Implemented two configuration options: the local timezone and the option to automatically monitor new endpoints
Updated the Test-Monitoring initialization
Updated Database support for MySQL
v1.12.0
Changed
Removed two graphs: hits per hour and execution time per hour
New template design
Refactored backhand of the code
Updated Bootstrap 3.0 to 4.0
Setup of Code coverage
v1.11.0
Changed
Added new graph: Version usage
Added column (Hits in past 7 days) in Measurements Overview
Fixed bug with configuration
Changed rows and column in outlier-table
Added TODO List
Updated functionality to retrieve the stacktrace of an Outlier
Fixed bug with white colors from the config option
v1.10.0
Changed
Added security for automatic endpoint-data retrieval.
Added test for export_data-endpoints
Added MIT License.
Added documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for Flask-MonitoringDashboard-2.0.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61dc78f2bb461645c6ef228cc4694bfe61b2dd5afe5e71f7faf940d6f5428cf9 |
|
MD5 | f0979e4a7cf6d61ee7a8738426a5378a |
|
BLAKE2b-256 | ed64bc3455d50872533d4ef4c793d1f87775dd51c90a398c38689511d632f842 |