Skip to main content

Lightweight wide event logging to bring more observability to lambda functions.

Project description

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

Project details


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.4.0.tar.gz (12.7 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.4.0-py2.py3-none-any.whl (11.6 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for airline-0.4.0.tar.gz
Algorithm Hash digest
SHA256 3b62b9cab0f7da0e32a7b6e3a168074ed708abbfa4a09d8d43b84423df2918c4
MD5 37cb69ef1b08a726cd92019fe14d3c6e
BLAKE2b-256 499508e460d9f92e43a2e6c58c8d549cee2cf3427af28d447303874fca15765c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for airline-0.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bc9eabdba92034ecc309a944236ea0d704d35af838bf637add0af996a7232d1d
MD5 575e9eef6d870f31a4268e1319001133
BLAKE2b-256 3ecabfa18ac6f4ca94ce87a997d8c4b696feab91b8130954cfe8c7ad7d954e99

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 Pingdom Monitoring Sentry Error logging StatusPage Status page