Lightweight wide event logging to bring more observability to lambda functions.
Project description
airline
Lightweight wide event logging to bring more observability to lambda functions.
This is very strongly inspired by honeycomb and their beeline library.
How?
Use the decorators!
import airline airline.init(dataset='your_app_name') @airline.evented() def some_function(a, b) # do things
or
import airline from airline.awslambda import airline_wrapper airline.init(dataset='function_or_app_name') @airline_wrapper def handler(event, context): # do things
Wide event logging?
The idea is to build up the full context of a function/script into one wide event that gets emitted at the end. This puts all the context in one log message, making it very easy to run analytics on, find like errors, and a lot of other things. A full blown observability platform like honeycomb would be more informative, and allows for the notion of spans and distributed tracing (i.e. across different (micro) services and the like).
But this is a start.
Take this:
import time import random import airline airline.init(dataset='example') @airline.evented() def main(a, b): airline.add_context_field("a", a) airline.add_context_field("b", b) with airline.timer('processing_a'): subfunction1(a) with airline.timer('processing_b'): subfunction1(b) def subfunction1(input): time.sleep(random.uniform(0, len(input))) main("foo", "example_long_thing")
And emit this at the end
{ "time": "2020-03-09T09:49:43.376126Z", "dataset": "example", "client": "airline/0.1.0", "data": { "a": "foo", "b": "example_long_thing", "duration_ms": 9438.041, "timers": { "processing_a_ms": 255.11, "processing_b_ms": 9182.859 } } }
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.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size airline-0.5.1-py2.py3-none-any.whl (12.7 kB) | File type Wheel | Python version py2.py3 | Upload date | Hashes View |
Filename, size airline-0.5.1.tar.gz (13.5 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for airline-0.5.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce3dd2f89bf9480b258c1f3cfae0705768619a31d376ccd0f4bc086b4f8e5b03 |
|
MD5 | 44bd87e8eaa19d92385486302d66242f |
|
BLAKE2-256 | b497a93ede20d5ef9d05248fcef582d56368a7fc5307035c97d556ae83a6e3b4 |