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)
 |