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 BatchSpanProcessor
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 = BatchSpanProcessor(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 BatchSpanProcessor. 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.25b0.tar.gz.

File metadata

  • Download URL: opentelemetry-instrumentation-celery-0.25b0.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12

File hashes

Hashes for opentelemetry-instrumentation-celery-0.25b0.tar.gz
Algorithm Hash digest
SHA256 a0afa0ffb18b3b5f95ce2adbe6d60241c0eef493e5f6f204669e5d7320f73fab
MD5 d6492890e0ec6b07311e753bb0ae5f23
BLAKE2b-256 74bb3ae03159d25bcb75151828fb59ccf38197ce49decba3ffc7ab3b7419c13f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for opentelemetry_instrumentation_celery-0.25b0-py3-none-any.whl
Algorithm Hash digest
SHA256 1d9b88e8aa861d1fe0b4bd1fb3b9e5032e7a5b65c5419fcb6977b778e52cf621
MD5 0ef2294a6e2c82b99826c5c87e9d7f29
BLAKE2b-256 671b8920801a4361dd069cc7edf9106ceb308fa9b8adc703f3fcd516195f4a4e

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