Flask-MonitoringDashboard


NameFlask-MonitoringDashboard JSON
Version 3.3.2 PyPI version JSON
download
home_pagehttps://github.com/flask-dashboard/Flask-MonitoringDashboard
SummaryAutomatically monitor the evolving performance of Flask/Python web services.
upload_time2024-04-26 18:28:11
maintainerNone
docs_urlNone
authorJohannes Lind Christiansen
requires_pythonNone
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Flask Monitoring Dashboard
==========================

A dashboard for automatic monitoring of Flask (https://flask.palletsprojects.com) web-services.

Key Features
------------
The Flask Monitoring Dashboard is an extension for Flask applications 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.

- **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).

- **Collect additional information about your Flask-application:**
  Suppose you have an User-table and you want to know how many users are registered on your Flask-application.
  Then, you can run the following query: 'SELECT Count(*) FROM USERS;'. But this is just annoying to do regularly.
  Therefore, you can configure this in the Flask-MonitoringDashboard, which will provide you this information per day (or other time interval).


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):

   http://localhost:5000/dashboard

For more advanced documentation, take a look at the information
on `this site`_

.. _this site: _http://flask-monitoringdashboard.readthedocs.io/en/latest/functionality.html


How to use
============

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)

Live Demo
------------
To view a live deployment of the Flask-MonitoringDashboard, `check this site`_

.. _`check this site`: https://flask-monitoringdashboard.herokuapp.com/

Use the credentials u:`admin`, p:`admin` to log in.

Feedback
------------
In order to improve our Flask-MonitoringDashboard, we would like to hear from you! Therefore, we made a questionnaire
with a few questions. Filling in this form takes less than 3 minutes. You can find the form `here
<https://goo.gl/forms/IqRrjGDDXe44q5ZV2>`_.

Alternatively, feel free to write to `our email-address
<mailto:flask.monitoringdashboard@gmail.com>`_.

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 will help you solve this too.
The migration from 2.X.X to 3.0.0 should be easier.


License
------------
This project is licensed under the MIT License - see the LICENSE file for details.

Change Log
=========================================================================

All notable changes to this project will be documented in this file.
This project adheres to `Semantic Versioning <http://semver.org/>`_.
Please note that the changes before version 1.10.0 have not been documented.

v3.3.2
----------
Changed

- Changed functools.cache to lru_cache to support python 3.8
- Added python version to telemetry


v3.3.1
----------
Changed

- Telemetry now uses dynamic server-ip  
- Removed survey
- FollowUp questions refactored

v3.3.0
----------
Changed

- Added database pruning feature

v3.2.2
----------
Changed

- Fixed Sphinx documentation

v3.2.1
----------
Changed

- Removed sentry artifacts in code

v3.2.0
----------
Changed

- Upgraded multiple frontend packages for enhanced security and performance.
- Added survey alert
- Added telemetry alert and functionality


v3.1.2
----------
Changed

- Compatibility with Flask>=2.x Removed the call to `before_app_first_request` and replaced it with `record_once` as per the PR of [@FlorianRhiem](https://github.com/FlorianRhiem).

v3.1.0
----------
Changed

- Added support for Python 3.8
- Started using pytest instead of python's unittest
- Started using Webpack for frontend packaging
- Improved reports
- Moved to Github Actions from Travis for CI/CD
- Improved docstrings
- Various bug fixes


v3.0.9
----------
Changed

- Fixed upgrade message bug
- Fixed Heroku deployment


v3.0.8
----------
Changed

- Fixed the changelog; functionality is the same as 3.0.7 :)


v3.0.7 
----------
Changed

- Added a first version of the Reporting functionality
- Improved usability of the overview table
- Fixed the issue with some table columns being sorted as text as opposed to numbers
- A few other bug fixes


v3.0.6
----------
Changed

- Removed profiler feature from monitoring level 2
- Added outlier detection feature to monitoring level 3
- Configurable profiler sampling period, with 5 ms default
- Implemented an in-memory cache for performance improvements

v3.0.0
----------
Changed

- Tracking also status codes
- Display times as numbers to make them sortable
- Add leading slash to blueprint paths
- Added status codes with corresponding views

v2.1.1
----------
Changed

- Default monitoring level is now 1
- Fixed bug causing config file not being parsed
- Monitoring level can be set from the 'detail' section
- Improved README

v2.1.0
----------
Changed

- Frontend is now using AngularJS
- Removed TestMonitor
- Added Custom graphs
- Fixed Issue #206
- Added support for Python 3.7
- Updated documentation
- Updated unit tests

v2.0.7
----------
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

- Added functionality to download the outlier data

- Dropped support for Python 3.3 and 3.4


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

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/flask-dashboard/Flask-MonitoringDashboard",
    "name": "Flask-MonitoringDashboard",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "Johannes Lind Christiansen",
    "author_email": "flask.monitoringdashboard@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/a7/33/69361799f6659f7c60d4957ea336ba2c39ecb7bcc5294515331d007046c6/flask_monitoringdashboard-3.3.2.tar.gz",
    "platform": "Any",
    "description": "Flask Monitoring Dashboard\n==========================\n\nA dashboard for automatic monitoring of Flask (https://flask.palletsprojects.com) web-services.\n\nKey Features\n------------\nThe Flask Monitoring Dashboard is an extension for Flask applications that offers four main functionalities with little effort from the Flask developer:\n\n- **Monitor the performance and utilization:**\n  The Dashboard allows you to see which endpoints process a lot of requests and how fast.\n  Additionally, it provides information about the evolving performance of an endpoint throughout different versions if you're using git.\n\n- **Profile requests and endpoints:**\n  The execution path of every request is tracked and stored into the database. This allows you to gain\n  insight over which functions in your code take the most time to execute. Since all requests for an\n  endpoint are also merged together, the Dashboard provides an overview of which functions are used in\n  which endpoint.\n\n- **Collect extra information about outliers:**\n  Outliers are requests that take much longer to process than regular requests.\n  The Dashboard automatically detects that a request is an outlier and stores extra information about it (stack trace, request values, Request headers, Request environment).\n\n- **Collect additional information about your Flask-application:**\n  Suppose you have an User-table and you want to know how many users are registered on your Flask-application.\n  Then, you can run the following query: 'SELECT Count(*) FROM USERS;'. But this is just annoying to do regularly.\n  Therefore, you can configure this in the Flask-MonitoringDashboard, which will provide you this information per day (or other time interval).\n\n\nThe dashboard is automatically added to your existing Flask application.\nYou can view the results by default using the default endpoint (this can be configured to another route):\n\n   http://localhost:5000/dashboard\n\nFor more advanced documentation, take a look at the information\non `this site`_\n\n.. _this site: _http://flask-monitoringdashboard.readthedocs.io/en/latest/functionality.html\n\n\nHow to use\n============\n\nInstallation\n------------\n\nTo install from source, download the source code, then run this:\n\n    python setup.py install\n\nOr install with pip:\n\n    pip install flask_monitoringdashboard\n\nSetup\n------------\nAdding the extension to your Flask app is simple:\n\n    from flask import Flask\n    import flask_monitoringdashboard as dashboard\n\n    app = Flask(__name__)\n    dashboard.bind(app)\n\nLive Demo\n------------\nTo view a live deployment of the Flask-MonitoringDashboard, `check this site`_\n\n.. _`check this site`: https://flask-monitoringdashboard.herokuapp.com/\n\nUse the credentials u:`admin`, p:`admin` to log in.\n\nFeedback\n------------\nIn order to improve our Flask-MonitoringDashboard, we would like to hear from you! Therefore, we made a questionnaire\nwith a few questions. Filling in this form takes less than 3 minutes. You can find the form `here\n<https://goo.gl/forms/IqRrjGDDXe44q5ZV2>`_.\n\nAlternatively, feel free to write to `our email-address\n<mailto:flask.monitoringdashboard@gmail.com>`_.\n\nDocumentation\n-------------\nFor more advanced documentation, `see this site\n<http://flask-monitoringdashboard.readthedocs.io>`_\nIf you run into trouble migrating from version 1.X.X to version 2.0.0, this site will help you solve this too.\nThe migration from 2.X.X to 3.0.0 should be easier.\n\n\nLicense\n------------\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\nChange Log\n=========================================================================\n\nAll notable changes to this project will be documented in this file.\nThis project adheres to `Semantic Versioning <http://semver.org/>`_.\nPlease note that the changes before version 1.10.0 have not been documented.\n\nv3.3.2\n----------\nChanged\n\n- Changed functools.cache to lru_cache to support python 3.8\n- Added python version to telemetry\n\n\nv3.3.1\n----------\nChanged\n\n- Telemetry now uses dynamic server-ip  \n- Removed survey\n- FollowUp questions refactored\n\nv3.3.0\n----------\nChanged\n\n- Added database pruning feature\n\nv3.2.2\n----------\nChanged\n\n- Fixed Sphinx documentation\n\nv3.2.1\n----------\nChanged\n\n- Removed sentry artifacts in code\n\nv3.2.0\n----------\nChanged\n\n- Upgraded multiple frontend packages for enhanced security and performance.\n- Added survey alert\n- Added telemetry alert and functionality\n\n\nv3.1.2\n----------\nChanged\n\n- Compatibility with Flask>=2.x Removed the call to `before_app_first_request` and replaced it with `record_once` as per the PR of [@FlorianRhiem](https://github.com/FlorianRhiem).\n\nv3.1.0\n----------\nChanged\n\n- Added support for Python 3.8\n- Started using pytest instead of python's unittest\n- Started using Webpack for frontend packaging\n- Improved reports\n- Moved to Github Actions from Travis for CI/CD\n- Improved docstrings\n- Various bug fixes\n\n\nv3.0.9\n----------\nChanged\n\n- Fixed upgrade message bug\n- Fixed Heroku deployment\n\n\nv3.0.8\n----------\nChanged\n\n- Fixed the changelog; functionality is the same as 3.0.7 :)\n\n\nv3.0.7 \n----------\nChanged\n\n- Added a first version of the Reporting functionality\n- Improved usability of the overview table\n- Fixed the issue with some table columns being sorted as text as opposed to numbers\n- A few other bug fixes\n\n\nv3.0.6\n----------\nChanged\n\n- Removed profiler feature from monitoring level 2\n- Added outlier detection feature to monitoring level 3\n- Configurable profiler sampling period, with 5 ms default\n- Implemented an in-memory cache for performance improvements\n\nv3.0.0\n----------\nChanged\n\n- Tracking also status codes\n- Display times as numbers to make them sortable\n- Add leading slash to blueprint paths\n- Added status codes with corresponding views\n\nv2.1.1\n----------\nChanged\n\n- Default monitoring level is now 1\n- Fixed bug causing config file not being parsed\n- Monitoring level can be set from the 'detail' section\n- Improved README\n\nv2.1.0\n----------\nChanged\n\n- Frontend is now using AngularJS\n- Removed TestMonitor\n- Added Custom graphs\n- Fixed Issue #206\n- Added support for Python 3.7\n- Updated documentation\n- Updated unit tests\n\nv2.0.7\n----------\nChanged\n\n- Fixed Issue #174\n\n- Fixed issue with profiler not going into code\n\n- Implemented a Sunburst visualization of the Grouped Profiler\n\n- Improved test coverage\n\n- Improved python-doc\n\n- Added functionality to download the outlier data\n\n- Dropped support for Python 3.3 and 3.4\n\n\nv2.0.0\n----------\nChanged\n\n- Added a configuration option to prefix a table in the database\n\n- Optimize queries, such that viewing data is faster\n\n- Updated database scheme\n\n- Implemented functionality to customize time window of graphs\n\n- Implemented a profiler for Request profiling\n\n- Implemented a profiler for Endpoint profiling\n\n- Refactored current code, which improves readability\n\n- Refactoring of Test-Monitoring page\n\n- Identify testRun by Travis build number\n\n\nv1.13.0\n----------\nChanged\n\n- Added boxplot of CPU loads\n\n- Updated naming scheme of all graphs\n\n- Implemented two configuration options: the local timezone and the option to automatically monitor new endpoints\n\n- Updated the Test-Monitoring initialization\n\n- Updated Database support for MySQL\n\nv1.12.0\n-------\nChanged\n\n- Removed two graphs: hits per hour and execution time per hour\n\n- New template design\n\n- Refactored backhand of the code\n\n- Updated Bootstrap 3.0 to 4.0\n\n- Setup of Code coverage\n\n\nv1.11.0\n-------\nChanged\n\n- Added new graph: Version usage\n\n- Added column (Hits in past 7 days) in Measurements Overview\n\n- Fixed bug with configuration\n\n- Changed rows and column in outlier-table\n\n- Added TODO List\n\n- Updated functionality to retrieve the stacktrace of an Outlier\n\n- Fixed bug with white colors from the config option\n\n\nv1.10.0\n----------\nChanged\n\n- Added security for automatic endpoint-data retrieval.\n\n- Added test for export_data-endpoints\n\n- Added MIT License.\n\n- Added documentation\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Automatically monitor the evolving performance of Flask/Python web services.",
    "version": "3.3.2",
    "project_urls": {
        "Bug Reports": "https://github.com/flask-dashboard/Flask-MonitoringDashboard/issues",
        "Documentation": "http://flask-monitoringdashboard.readthedocs.io/",
        "Homepage": "https://github.com/flask-dashboard/Flask-MonitoringDashboard",
        "PyPi": "https://pypi.org/project/Flask-MonitoringDashboard/",
        "Source": "https://github.com/flask-dashboard/Flask-MonitoringDashboard/"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "02706903b689dc531db4ca40ddbb9fe684b43ca163a8ccd451178f70ccbb683a",
                "md5": "b663628d3a55bc753c2d2948a1467509",
                "sha256": "c9a7ef3ccb157312c025b46db8e7c92ff01c875c83f3a290c8c494650cec255a"
            },
            "downloads": -1,
            "filename": "Flask_MonitoringDashboard-3.3.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b663628d3a55bc753c2d2948a1467509",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 1570853,
            "upload_time": "2024-04-26T18:28:08",
            "upload_time_iso_8601": "2024-04-26T18:28:08.419815Z",
            "url": "https://files.pythonhosted.org/packages/02/70/6903b689dc531db4ca40ddbb9fe684b43ca163a8ccd451178f70ccbb683a/Flask_MonitoringDashboard-3.3.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a73369361799f6659f7c60d4957ea336ba2c39ecb7bcc5294515331d007046c6",
                "md5": "4d1d52e99a20042e516d7d073984191f",
                "sha256": "95c4a7e1ed633d4b032ff453c1d62c10953f0671907cea93a5618b670019bae2"
            },
            "downloads": -1,
            "filename": "flask_monitoringdashboard-3.3.2.tar.gz",
            "has_sig": false,
            "md5_digest": "4d1d52e99a20042e516d7d073984191f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 6793954,
            "upload_time": "2024-04-26T18:28:11",
            "upload_time_iso_8601": "2024-04-26T18:28:11.635372Z",
            "url": "https://files.pythonhosted.org/packages/a7/33/69361799f6659f7c60d4957ea336ba2c39ecb7bcc5294515331d007046c6/flask_monitoringdashboard-3.3.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-26 18:28:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "flask-dashboard",
    "github_project": "Flask-MonitoringDashboard",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "flask-monitoringdashboard"
}
        
Elapsed time: 0.30276s