What would be the best way to collect metrics on all HTTP requests made to a flask Application.
Things I would like to measure are :
Also I want to group requests to a variable path as one. For e.g All requests to the route '/resource/' should be measured for the metric named "RESOURCE" and not individually for each resource.
I plan to do this currently by writing a decorator. The disadvantage being I need to add the decorator for each method. Are there ways in which Flask can provide me hooks to measure these automatically.
Check out the documentation for the
flask.Flask.teardown_request decorators. You'll want something simple and fast to send your metrics to - check out graphite and scales for an example suitable backend.
Once you have your log aggregating back end then it is a simple matter of registering two functions to execute before and after each request.