mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-08-01 09:13:23 +08:00
29 lines
857 B
Python
29 lines
857 B
Python
import celery
|
|
|
|
from ddtrace import config
|
|
|
|
from .app import patch_app, unpatch_app
|
|
from .constants import PRODUCER_SERVICE, WORKER_SERVICE
|
|
from ...utils.formats import get_env
|
|
|
|
|
|
# Celery default settings
|
|
config._add('celery', {
|
|
'producer_service_name': get_env('celery', 'producer_service_name', PRODUCER_SERVICE),
|
|
'worker_service_name': get_env('celery', 'worker_service_name', WORKER_SERVICE),
|
|
})
|
|
|
|
|
|
def patch():
|
|
"""Instrument Celery base application and the `TaskRegistry` so
|
|
that any new registered task is automatically instrumented. In the
|
|
case of Django-Celery integration, also the `@shared_task` decorator
|
|
must be instrumented because Django doesn't use the Celery registry.
|
|
"""
|
|
patch_app(celery.Celery)
|
|
|
|
|
|
def unpatch():
|
|
"""Disconnect all signals and remove Tracing capabilities"""
|
|
unpatch_app(celery.Celery)
|