A Python decorator for OpenTracing trace generation.
Project description
opentracing-decorator - A Python decorator for OpenTracing trace generation.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for opentracing-decorator-1.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6e8692624e936a7cca32580ba95b1c04a58a480e4ceed346f25a7ebb540c78f |
|
MD5 | 3b743214c27aebc950cfa33bcb124699 |
|
BLAKE2b-256 | 3ec5a513402c8438f59d0eb547797e42aa8224836b1baa25e4564166e69df715 |
Hashes for opentracing_decorator-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ca057f36b598878652a91d75d5c1ccd7c2d86550fc95d648f1b206c8b852ddf |
|
MD5 | 483f49122fa62df65841ff587d545626 |
|
BLAKE2b-256 | e7d9dc60b3a25e4acd7f8aa74157aa61f6aba7a724504f68e27c2d50a169d97e |