def bind(app, schedule=True): """ Binding the app to this object should happen before importing the routing- methods below. Thus, the importing statement is part of this function. :param app: the app for which the performance has to be tracked :param schedule: flag telling if the background scheduler should be started """ config.app = app # Provide a secret-key for using WTF-forms if not app.secret_key: log('WARNING: You should provide a security key.') app.secret_key = 'my-secret-key' # Add all route-functions to the blueprint from flask_monitoringdashboard.views import deployment, custom, endpoint, outlier, request, profiler, version, auth import flask_monitoringdashboard.views # Add wrappers to the endpoints that have to be monitored from flask_monitoringdashboard.core.measurement import init_measurement from flask_monitoringdashboard.core import custom_graph blueprint.before_app_first_request(init_measurement) if schedule: custom_graph.init(app) # register the blueprint to the app app.register_blueprint(blueprint, url_prefix='/' + config.link)
def bind(app, schedule=True, include_dashboard=True): """Binding the app to this object should happen before importing the routing- methods below. Thus, the importing statement is part of this function. :param app: the app for which the performance has to be tracked :param schedule: flag telling if the background scheduler should be started :param include_dashboard: flag telling if the views should be added or not. """ blueprint.name = config.blueprint_name config.app = app # Provide a secret-key for using WTF-forms if not app.secret_key: log('WARNING: You should provide a security key.') app.secret_key = 'my-secret-key' # Add all route-functions to the blueprint if include_dashboard: from flask_monitoringdashboard.views import ( deployment, custom, endpoint, outlier, request, profiler, version, auth, reporting, ) import flask_monitoringdashboard.views # Add wrappers to the endpoints that have to be monitored from flask_monitoringdashboard.core.measurement import init_measurement from flask_monitoringdashboard.core.cache import init_cache from flask_monitoringdashboard.core import custom_graph blueprint.before_app_first_request(init_measurement) blueprint.before_app_first_request(init_cache) if schedule: custom_graph.init(app) # register the blueprint to the app app.register_blueprint(blueprint, url_prefix='/' + config.link) # flush cache to db before shutdown import atexit from flask_monitoringdashboard.core.cache import flush_cache atexit.register(flush_cache) if not include_dashboard: @app.teardown_request def teardown(_): flush_cache()