Skip to content

Support for uvicorn with multiple workers #4927

@jennykupzig

Description

@jennykupzig

Is your feature request related to a problem?

Uvicorn enables process management itself (Uvicorn 0.30.0 Release), claiming to replace Gunicorn entirely. However, opentelementy-autoinstrumenation for python does only support either:

  • multiple workers with gunicorn
  • one worker with uvicorn.

When I have tried to run my application with ucivorn and multiple workers, the logs just don't show up in Grafana.

Describe the solution you'd like

An opentelemetry support for multiple workers for uvicorn would be great.

Describe alternatives you've considered

  • Using gunicorn with multiple workers:
    Using gunicorn, we have problems when starting a subprocess, which we do not have when usong uvicorn. Therefore, we would really like to integrate uvicorn with mutliple workers instead of gunicorn with multiple workers.

  • Using uvicorn with one worker:
    As we run our application in production we need to be able to scale our application. Therefore, using only one worker is not suitable.

Additional Context

Our current installation of opentelemetry is:

ARG version_nr="0.60b0"
RUN pip install opentelemetry-distro[otlp]==${version_nr}
RUN pip install opentelemetry-instrumentation-system-metrics==${version_nr}
RUN pip install opentelemetry-instrumentation-asyncio==${version_nr}
RUN pip install opentelemetry-instrumentation-logging==${version_nr}
RUN pip install opentelemetry-instrumentation-httpx==${version_nr}
RUN pip install opentelemetry-instrumentation-sqlalchemy==${version_nr}
RUN pip install opentelemetry-instrumentation-fastapi==${version_nr}
RUN pip install opentelemetry-instrumentation-requests==${version_nr}

Would you like to implement a fix?

None

Tip

React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions