Skip to main content

airline

tests | PyPI version

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

airline-0.5.0.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

airline-0.5.0-py2.py3-none-any.whl (12.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file airline-0.5.0.tar.gz.

File metadata

  • Download URL: airline-0.5.0.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.23.0

File hashes

Hashes for airline-0.5.0.tar.gz
Algorithm Hash digest
SHA256 6f6882388a9bbe324f08993200bbc5ac5bcf6670517780de970c70d22ca3bf97
MD5 20873bd595dc16ed343ec8d864f1e394
BLAKE2b-256 3f804944d2be38373258d0edd2316cb85220a447d78b0ef41c0dfc1f1987e8f1

See more details on using hashes here.

File details

Details for the file airline-0.5.0-py2.py3-none-any.whl.

File metadata

  • Download URL: airline-0.5.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.23.0

File hashes

Hashes for airline-0.5.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7bb91627c457c84990b8da6185371bf371b40140b324c4dff0b295317995cc90
MD5 1d3e71ed0031fc002a03f5ad15171d0e
BLAKE2b-256 1e29e5c58dee8abe4c4824e12c6f358c62639bd606d5d340cd286cf646fa5d89

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page