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.5.1.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: airline-0.5.1.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.1.tar.gz
Algorithm Hash digest
SHA256 e7918f50f95d61e586d2538385eefe98b9c1ab5bd16e8af3003b90cb9e820511
MD5 86cd4a09e7d0e8d84ebb63c6a1ef0660
BLAKE2b-256 e0183d145984be09b7d91dec71df9338d1dac2f265bd8413dd0a6cafe29bafac

See more details on using hashes here.

File details

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

File metadata

  • Download URL: airline-0.5.1-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.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ce3dd2f89bf9480b258c1f3cfae0705768619a31d376ccd0f4bc086b4f8e5b03
MD5 44bd87e8eaa19d92385486302d66242f
BLAKE2b-256 b497a93ede20d5ef9d05248fcef582d56368a7fc5307035c97d556ae83a6e3b4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page