Skip to main content

OpenTelemetry Celery Instrumentation

Project description

pypi

Instrumentation for Celery.

Installation

pip install opentelemetry-instrumentation-celery

Usage

  • Start broker backend

::

docker run -p 5672:5672 rabbitmq

  • Run instrumented task

from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchExportSpanProcessor
from opentelemetry.instrumentation.celery import CeleryInstrumentor

from celery import Celery
from celery.signals import worker_process_init

@worker_process_init.connect(weak=False)
def init_celery_tracing(*args, **kwargs):
    trace.set_tracer_provider(TracerProvider())
    span_processor = BatchExportSpanProcessor(ConsoleSpanExporter())
    trace.get_tracer_provider().add_span_processor(span_processor)
    CeleryInstrumentor().instrument()

app = Celery("tasks", broker="amqp://localhost")

@app.task
def add(x, y):
    return x + y

add.delay(42, 50)

Setting up tracing

When tracing a celery worker process, tracing and instrumention both must be initialized after the celery worker process is initialized. This is required for any tracing components that might use threading to work correctly such as the BatchExportSpanProcessor. Celery provides a signal called worker_process_init that can be used to accomplish this as shown in the example above.

References

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

File details

Details for the file opentelemetry-instrumentation-celery-0.14b0.tar.gz.

File metadata

  • Download URL: opentelemetry-instrumentation-celery-0.14b0.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.9

File hashes

Hashes for opentelemetry-instrumentation-celery-0.14b0.tar.gz
Algorithm Hash digest
SHA256 3f0996195ef2ca1a06eac732faf2e6a39db2ea0ef377aa884e36bf3a963b5eb6
MD5 c8d23be3bef58861291669d3260c22c3
BLAKE2b-256 b92e416a53517b24be3afa803cf9611e9882a30b21b8d37cc7f5549c9f562ca7

See more details on using hashes here.

File details

Details for the file opentelemetry_instrumentation_celery-0.14b0-py3-none-any.whl.

File metadata

File hashes

Hashes for opentelemetry_instrumentation_celery-0.14b0-py3-none-any.whl
Algorithm Hash digest
SHA256 1463dc76da0b647135e0a678936278bff200495a8215c50004163995f49c771f
MD5 d83f090051af4b87b0d2acd0efdeb1b3
BLAKE2b-256 35f18f471c72974f517557e824b8fbbef90b6e64778b9d2ba48cb365fdf4896c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page