Falcon to Telegraf middlewares
What is this?
Package to ease gathering metrics from Falcon APIs into InfluxDB via a Telegraf. By use of middlewares this orthogonal functionality is added in a hassle-free way minimizing required work. Sane defaults make quickstart really quick 👍
Inject the middleware (or couple of them) when creating
from falcon_telegraf import LogHits, Timer telegraf_client = TelegrafClient('localhost', 8094) app = falcon.API( middleware=[ LogHits(telegraf_client), Timer(), ] )
Note that passing
telegraf_client is totally optional.
Measurement names can be set when creating middleware, prefixed or autogenerated.
Creates a metric named hits-path/to/endpoint with one fields called
hits with value 1.
on-* method was called. Because of this you can add custom tags and values.
def on_get(self, request, response, some_path_variable): request.context['telegraf_tags']['my_new_tag'] = 'this_tags_value' request.context['telegraf_values']['some_path_variable'] = some_path_variable ...
Reports time in ms elapsed between registering response and registering request. Default metric prefix is
Other things in processing pipeline can affect it's readings so take them with a grain of salt.
First bump version in
setup.py in master branch via merge request. Afterwards push a version tag and wait.
git tag `date +"%Y.%-m.%-d.1"` git push --tags