Skip to content

Celery task context sticks to the main transaction which is misleading #2302

Open
@alexver-nitka

Description

@alexver-nitka

Describe the bug: ...

Celery task execution sticks to the main transaction of the django view. This is really misleading cause you may think that your view\endpoint works really slow, but in reality user already received response.

Image

Environment (please complete the following information)

  • OS: Linux (heroku)
  • Python version: 3.11
  • Framework and version [e.g. Django 2.1]: Django 5
  • APM Server version:
  • Agent version: elastic-apm = "^6.23.0"
  • Celery celery = {extras = ["sqs"], version = "^5.5.1"}

Additional context
elasticapm.contrib.django.middleware.TracingMiddleware middleware in the beginning (first).
Celery task is called trough .apply_async or .delay() doesn't matter.

Any ideas why it may happen? I assume it should be displayed just like it was called and that's it, without internal context sticked to the main View\endpoint transaction.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions