Django middleware and tracing utilities for submitting traces to Zipkin. py2 / py3 compatible.
Set the settings, if not set it'll use defaults:
- ZIPKIN_SERVICE_NAME:
unknown - The name to use when identifying the service being traced.
- ZIPKIN_TRANSPORT_HANDLER:
django_py_zipkin.transport.zipkin_transport - Transport to use to submit traces to Zipkin. The default one submits in the background via Celery.
- ZIPKIN_ADD_LOGGING_ANNOTATION:
True - Whether to add a 'logging_end' annotation when py_zipkin finishes logging spans
- ZIPKIN_TRACING_ENABLED:
False - Whether or not to enable tracing, requires explicit enabling.
- ZIPKIN_TRACING_SAMPLING:
1.00 - The sampling threshold
- ZIPKIN_BLACKLISTED_PATHS:
[] - List of regular expressions to ignore from tracing.
Add the middleware
MIDDLEWARE = [
...
'django_py_zipkin.middleware.ZipkinMiddleware',
...
]
Or instrument your code with the context manager:
with trace('span-name', request.zipkin_tracer) as context
traced_value = do_something_that_takes_time()
context.update({
'some.key': traced_value,
})