Skip to main content

A Python decorator for OpenTracing trace generation.

Project description

opentracing-decorator - A Python decorator for OpenTracing trace generation.

Test Suite Package Version

Opentracing Decorator is a small Python library that adds a convenient decorator for generating OpenTracing traces. It works with any client implementation that follows the OpenTracing standard.

Note: Opentracing Decorator is in early beta. Use in production at your own risk. Although the library is small and quite stable, some bugs arising from edge cases should be expected.


Let's get started...

# examples/simple.py

import time

from jaeger_client import Config

from opentracing_decorator import Tracing

# No sampler host and port specified because the Jaeger client picks localhost:6831 by default.
config = Config(
    config={
        "sampler": {
            "type": "const",  # Not advised to have constant sampling in production.
            "param": 1,
        },
        "logging": True,
    },
    service_name="example-service",
    validate=True,
)
jaeger_tracer = config.initialize_tracer()

# Pass in an instance of a tracer implementation.
# Here, we're using the Jaeger client.
tracing = Tracing(tracer=jaeger_tracer)

# Decorate functions with the @tracing.trace decorator and an operation_name.
@tracing.trace(operation_name="MyOperationName")
def do_some_work(x, y, z):
    return x + y + z


if __name__ == "__main__":
    do_some_work(10, 20, 30)

    # Give some time to report traces.
    time.sleep(5)
    jaeger_tracer.close()

Features

  • Automatic Span tagging of function parameters (Opt-In).
  • Automatic Span logging of function return values (Opt-In).
  • Works with any OpenTracing compatible tracing client.

Installation

Install with pip:

$ pip install opentracing-decorator

Opentracing Decorator requires Python 3.6+.

Documentation

Project documentation is available at https://doughepi.github.io/opentracing-decorator/.

For a run-through of all the basics, head over to the QuickStart.

The Developer Interface provides a comprehensive API reference.

To learn more about the OpenTracing standards, check out The OpenTracing Project

Contribute

If you want to contribute to Opentracing Decorator check out the Contributing Guide to learn how to start.

Dependencies

The Opentracing Decorator project relies on these excellent libraries:

  • opentracing - The no-op implementation of the OpenTracing standard.
  • flatten-dict - To support some of the parameter tagging and return logging.

— ⭐️ —

Opentracing Decorator is MIT licensed code. Designed & built in Minneapolis, MN. Used at General Mills.

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

opentracing-decorator-1.1.0.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

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

opentracing_decorator-1.1.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file opentracing-decorator-1.1.0.tar.gz.

File metadata

  • Download URL: opentracing-decorator-1.1.0.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6

File hashes

Hashes for opentracing-decorator-1.1.0.tar.gz
Algorithm Hash digest
SHA256 c6e8692624e936a7cca32580ba95b1c04a58a480e4ceed346f25a7ebb540c78f
MD5 3b743214c27aebc950cfa33bcb124699
BLAKE2b-256 3ec5a513402c8438f59d0eb547797e42aa8224836b1baa25e4564166e69df715

See more details on using hashes here.

File details

Details for the file opentracing_decorator-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: opentracing_decorator-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6

File hashes

Hashes for opentracing_decorator-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ca057f36b598878652a91d75d5c1ccd7c2d86550fc95d648f1b206c8b852ddf
MD5 483f49122fa62df65841ff587d545626
BLAKE2b-256 e7d9dc60b3a25e4acd7f8aa74157aa61f6aba7a724504f68e27c2d50a169d97e

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