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
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
|