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.3.0.tar.gz (12.3 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.3.0-py2.py3-none-any.whl (11.4 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for airline-0.3.0.tar.gz
Algorithm Hash digest
SHA256 019c0c7f8c7850aac0775ed111be37f33a0e20a3b9c14168cfafc376f897cedc
MD5 afdd55518b38ebba7678bde1e6809dd6
BLAKE2b-256 ef1025a06830307a0b91a15e9ba1c3eb10c69ab8f6b6e6ceddfcfba1b50c0dc1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for airline-0.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 603bd9be66bd34220ea5f24d56a5970bde64bb03941cc0941dbfc7d8c69b38c2
MD5 877ade6cd17967122a3834186cb1ae0e
BLAKE2b-256 73eae09b60ee1e18fc27b2153226c7721c040f83203170a87f1f08abc51520fd

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