Skip to main content

Owl

https://api.travis-ci.org/merry-bits/Owl.svg?branch=master

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)

Source distribution for Owl 0.2.1
File Size Uploaded
Owl-0.2.1.tar.gz 6.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Owl 0.2.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page