Owl
Measure how long your Falcon requests take and send each measurement as an event to Riemann.
Example
Owl is designed to be a mix-in class for API. To use Owl you create your own API class providing configuration parameters for Owl.
In Python 3 this could look something like this:
from falcon.api import API
from riemann_client.client import QueuedClient
from owl import Owl
class MonitoredAPI(Owl, API):
def __init__(self, *args, **kwds):
kwds["get_riemann_client"] = lambda: QueuedClient()
kwds["owl_service"] = "MyAPI" # service name for Riemann
super().__init__(*args, **kwds)
api = MonitoredAPI()
# api.add_route(...)
# ...
In Riemann you get the end point and the request result status code as tags. To convert them into their own InfluxDB tags ( endpoint` and ``status-code) for later use (for example in Grafana) you could do something like this in your Riemann InfluxDB configuration:
(defn- parse-api-event
[event]
(if (contains? event :tags)
(let [[endpoint status-code & other] (:tags event)]
(assoc event
:endpoint endpoint
:status-code status-code))
event))
(let [index (index)]
(streams index
; Write API monitoring to database
(where (service "MyAPI")
#(info (parse-api-event %))
(comp api-db parse-api-event))))
Check out the event_builder parameter if you want to customize the event parameters (change what service means or add a description for example).
Installation
$ pip install owl
Changelog
0.2.0
generate a message with status 500 when a request throws an exception
Release files for Owl 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| Owl-0.2.1.tar.gz | 6.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| Owl-0.2.1-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 14.3 kB
Release files / Owl-0.2.1.tar.gz
| Download URL | Owl-0.2.1.tar.gz |
|---|---|
| Size | 6.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5153396456dbb39562c095552448f5e49f5aaaa5cb3ddafb9bf6bd3ed30b00ad
|
|
BLAKE2b-256 checksum How to use checksums |
3f04dc007de1e3129e54d1a79fadf198eb07848c1d902321c0b6ca40461518bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / Owl-0.2.1-py2.py3-none-any.whl
| Download URL | Owl-0.2.1-py2.py3-none-any.whl |
|---|---|
| Size | 8.3 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
ad6b2d6a0375c12c4f0b9ebd943c2c4bf3a14dfcfa53de28b179f2bf8b8d9ef1
|
|
BLAKE2b-256 checksum How to use checksums |
acbbc9a09395add793fe4841ef40b1ee5cd64421bbed1657f7d046f496351ddb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |