Falcon to Telegraf middlewares
Project description
falcon-telegraf-middleware
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 👍
How?
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.
Middlewares
LogHits
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
...
Timer
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.
Testing
pip install -e .
pytest
Deploy
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file falcon-telegraf-middleware-2021.6.1.1.tar.gz
.
File metadata
- Download URL: falcon-telegraf-middleware-2021.6.1.1.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd1356ae10f27517000ee22285bf714b45a07284f2c32a52440ca916fc24304d |
|
MD5 | aaa041bbbd43afae5ab5a98aaf4d821e |
|
BLAKE2b-256 | 3d9e87c2707a099fb3490784e8f132613e8377fb8dfa2a8a7777fd579b214183 |