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 Api
instance:
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.
Executes after on-*
method was called. Because of this you can add custom tags and values.
Example:
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 time-
.
Other things in processing pipeline can affect it's readings so take them with a grain of salt.
pip install -e .
pytest
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