elastic / elastic/apm-agent-python

Django Channels Websocket Trace

Abierto
#2,123 1 comentario 0 reacciones 0 asignados Ver en GitHub
agent-python community triage
Lenguaje dominante
Python
Estrellas
431
Forks
239
Merge medio
5 d 10 h
PR fusionados (30 d)
7

Descripción

**Describe the bug**:

I was expecting APM to help me understand whats going within my websocket connections (Django + Channels + Daphne). However, the very first line of `ASGITracingMiddleware` ignores non-http scopes:

```python
async def __call__(self, scope: "Scope", receive: "ASGIReceiveCallable", send: "ASGISendCallable") -> None:
if scope["type"] != "http":
await self._app(scope, receive, send)
return
```

**To Reproduce**

1. Install elastic-apm
2. Configure ELASTIC_APM settings
3. Configure ASGITracingMiddleware middleware
4. Kibana shows the service name but no traces

**Environment (please complete the following information)**
- OS: [e.g. Linux]
- Python version: 3.11
- Framework and version [e.g. Django 2.1]:

```
Django==4.2.11
channels==4.0.0
channels-redis==4.1.0
daphne==4.1.0
```

- APM Server version:
- Agent version:

```
elastic-apm==6.23.0
elastic-transport==8.15.0
elasticsearch==8.15.0
```

Is this expected or a bug?

Thank you
Abhinav

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comience en el punto de entrada ASGITracingMiddleware.__call__ mostrado en el issue y reproduzca el comportamiento con Django 4.2.11, Channels 4.0.0, Daphne 4.1.0 y elastic-apm 6.23.0. Primero determine si se espera que los scopes de websocket produzcan trazas; el issue no define el comportamiento requerido ni una ubicación para la prueba, por lo que la finalización depende de acordar ese alcance.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
django, python
Área
backend, observability-sre
Tipo de issue
Error
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.