Skip to main content
Build Status

Redis Opentracing

This package enables distributed tracing for the Python redis library.

Note: If you need to use the old OpenTracing 1.0 API, use the 0.x releases.

Installation

Run the following command:

$ pip install redis_opentracing

Getting started

Tracing a Redis client requires setting up an OpenTracing-compatible tracer, and calling init_tracing() to set up the tracing wrappers. See the examples directory for several different approaches.

import redis
import redis_opentracing

redis_opentracing.init_tracing(tracer)

client = redis.StrictRedis()
client.set('last_access', datetime.datetime.now())

It’s possible to trace only specific Redis clients:

redis_opentracing.init_tracing(tracer, trace_all_classes=False)
redis_opentracing.trace_client(client)

# Only commands and pipelines executed through this client will
# be traced.
res = client.get('last_access')

It’s also possible to trace only specific pipelines:

redis_opentracing.init_tracing(tracer, trace_all_classes=False)

pipe = client.pipeline()
redis_opentracing.trace_pipeline(pipe)

# This pipeline will be executed as a single MULTI command.
pipe.lpush('fruits', 'lemon', 'watermelon')
pipe.rpush('fruits', 'pineapple', 'apple')
pipe.execute()

When pipeline commands are executed as a transaction, these commands will be grouped under a single MULTI operation. They’ll also appear as a single operation in the trace. Outside of a transaction, each command will generate a span.

And it’s also possible to trace only specific pubsub objects:

redis_opentracing.init_tracing(tracer, trace_all_classes=False)

pubsub = client.pubsub()
redis_opentracing.trace_pubsub(pubsub)

pubsub.subscribe('incoming-fruits')
msg = pubsub.get_message() # This message will appear as a 'SUB' operation.

Incoming messages through get_message(), listen() and run_in_thread() will be traced, and any command executed through the pubsub’s execute_command() method will be traced too.

Further information

If you’re interested in learning more about the OpenTracing standard, please visit opentracing.io or join the mailing list. If you would like to implement OpenTracing in your project and need help, feel free to send us a note at community@opentracing.io.

License

Apache 2.0 License

Release files for redis-opentracing 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for redis-opentracing 1.0.0
File Size Uploaded
redis_opentracing-1.0.0.tar.gz 9.3 kB Details

Release files / redis_opentracing-1.0.0.tar.gz

Download URL redis_opentracing-1.0.0.tar.gz
Size 9.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d54d30c57d60d4650561a6c8bf526895e8106e1f92fe22d47468fbe7eaa4a54e
BLAKE2b-256 checksum
How to use checksums
f6439920395dc261fee65ea22133b093fb0af28e9880a3198e77aca93e61294a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/2.7

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page