Skip to main content

python-cassandra-jaeger

PyPI PyPI version PyPI

When do I use it?

When I'm using the following technologies:

And you want to attach your traces to Cassandra's requests.

Note: so far only Jaeger tracing and MockTracer are supported. I mean, theoretically every opentracing-compatible framework is supported, but only Jaeger's tracing enables to select which query to trace or not.

In case that you're not using Jaeger or MockTracer, every single query will be sent with a tracing request, which may negatively impact your performance, Cassandra-wise.

If you have an issue with that, please file an issue with a description of what it is that you're using for tracing.

A relevant warning will be shown as well.

Usage

Just do the following:

from python_cassandra_jaeger import SessionTracer
from cassandra.cluster import Cluster

from .tracing import tracer

c = Cluster(['127.0.0.1'])
s = c.connect('keyspace')
st = SessionTracer(s, tracer)

st.execute('SELECT * FROM table')

And you keep on utilizing st instead of s. This will automatically execute tracing when your span is being traced.

Just remember to match your tracing key with Cassandra's JAEGER_TRACE_KEY.

What does it do?

It hijacks session.execute, grabs the current span, determines if sampling is active for this span (currently works only with Jaeger) and if it is so, starts a new child span, attaches it's ID to custom_payload and enables tracing for the request.

Additionally metricizing your queries

Added in v0.4: You can also metrify how long did your queries take to execute, say:

from satella.instrumentation.metrics import getMetric

met_sum = getMetric('cassandra.query.time.summary', 'summary')
s = c.connect('keyspace')
st = SessionTracer(s, tracer, metric=met_sum)

History

v0.4

  • added an option to metricize the queries
  • added support for MockTracker

v0.3

  • a warning will be shown with unsupported tracing mechanism

v0.2

  • improved reporting when arguments is a dict

Release files for python-cassandra-jaeger 0.4

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

Source distribution (sdist)

Source distribution for python-cassandra-jaeger 0.4
File Size Uploaded
python-cassandra-jaeger-0.4.tar.gz 5.0 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for python-cassandra-jaeger 0.4
File Interpreter ABI Platform
python_cassandra_jaeger-0.4-py3.8.egg Legacy Egg format - - Details
python_cassandra_jaeger-0.4-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 14.0 kB

Release files / python-cassandra-jaeger-0.4.tar.gz

Download URL python-cassandra-jaeger-0.4.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c3d912761785ca5160c2d6364b2c42c2d001feba4167f200748dec02d580144f
BLAKE2b-256 checksum
How to use checksums
efb68b71f1a88b89db0e85a1f45bf69a6d30789a01c9a8f3b8cc16e8aae30f6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

Release files / python_cassandra_jaeger-0.4-py3.8.egg

Download URL python_cassandra_jaeger-0.4-py3.8.egg
Size 4.0 kB
Tags Egg
SHA-256 checksum
How to use checksums
89ef8130a6cb8cf0c915776f9544fcbbf52b210689eb53009b722e65f87efc7b
BLAKE2b-256 checksum
How to use checksums
996c64294c2de7f0c307ef0af4d3a01ff02b10f73438b66d7c5e572a3e5503fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

Release files / python_cassandra_jaeger-0.4-py2.py3-none-any.whl

Download URL python_cassandra_jaeger-0.4-py2.py3-none-any.whl
Size 5.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
d260b20d4958ead83cbfc80bdce9f69cb6309293155b21b3354ea4cdf661c3a3
BLAKE2b-256 checksum
How to use checksums
3db89aea52711bd07d1a2f01422e52c9c1843c4fe654d1ce4064ff11ec336ed4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0
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