You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 7250159
Browse filesBrowse the repository at this point in the historyBrowse files
Cuando tu API está ejecutándose, puede que quieras saber cuánto tráfico recibe, qué requests son lentas y cuándo ocurren errores.
3
+
Cuando tu API está en funcionamiento, puede que quieras saber cuánto tráfico recibe, qué requests son lentas y cuándo se producen errores.
4
4
5
-
La **telemetría** son datos sobre el comportamiento de tu aplicación que te ayudan a responder estas preguntas. Los tipos comunes incluyen:
5
+
La **telemetría** son datos sobre el comportamiento de tu aplicación que te ayudan a responder estas preguntas. Algunos tipos comunes son:
6
6
7
-
-**Métricas**: mediciones que puedes resumir a lo largo del tiempo, como los tiempos de response y el número de requests que se están manejando.
8
-
-**Trazas**: registros de requests individuales y las operaciones realizadas para manejarlas. Cada operación cronometrada se llama un**span**.
9
-
-**Logs**: registros de eventos con timestamp, como el inicio de una aplicación o el fallo de una operación.
7
+
-**Métricas**: mediciones que puedes resumir a lo largo del tiempo, como los tiempos de response y el número de requests que se están procesando.
8
+
-**Trazas**: registros de requests individuales y de las operaciones realizadas para procesarlas. Cada operación cronometrada se llama **span**.
9
+
-**Logs**: registros de eventos con marcas de tiempo, como el inicio de una aplicación o el fallo de una operación.
10
10
11
-
[**OpenTelemetry**](https://opentelemetry.io/) es un conjunto de estándares y herramientas para recopilar telemetría y enviarla a un servicio de monitoreo, donde puedes explorarla en dashboards.
11
+
[**OpenTelemetry**](https://opentelemetry.io/) es un conjunto de estándares y herramientas para recopilar telemetría y enviarla a un servicio de monitorización, donde puedes explorarla en paneles.
12
12
13
-
**FastAPI proporciona soporte para OpenTelemetry por defecto** para trazas, métricas y logs de requests HTTP. Las conexiones WebSocket también proporcionan trazas y logs. Para ver esos datos, configura un servicio de monitoreo para recibirlos.
13
+
**FastAPI proporciona soporte para OpenTelemetry por defecto** para trazas, métricas y logs de requests HTTP. Las conexiones WebSocket también proporcionan trazas y logs. Para ver esos datos, configura un servicio de monitorización que los reciba.
Observa que todo funciona por defecto, no necesitas escribir ningún código personalizado para que la telemetría funcione.
34
+
Ten en cuenta que todo funciona por defecto, no necesitas escribir ningún código personalizado para que funcione la telemetría.
35
35
36
36
## FastAPI Cloud { #fastapi-cloud }
37
37
38
-
Cuando haces deploy en [FastAPI Cloud](https://fastapicloud.com) con `fastapi[standard]`, las métricas funcionan automáticamente. No tienes que configurar nada más.
38
+
Cuando despliegas en [FastAPI Cloud](https://fastapicloud.com) con `fastapi[standard]`, las métricas funcionan automáticamente. No tienes que configurar nada más.
39
39
40
-
En planes Pro, puedes ver conteos de requests, tasas de error y tiempos de response en el [dashboard de métricas](https://fastapicloud.com/docs/monitoring-and-performance/metrics/).
40
+
En los planes Pro, puedes ver el número de requests, las tasas de error y los tiempos de response en el [panel de métricas](https://fastapicloud.com/docs/monitoring-and-performance/metrics/).
41
41
42
-
<imgsrc="/img/tutorial/opentelemetry/image01.png"alt="Dashboard de métricas de FastAPI Cloud Pro con datos de ejemplo">
42
+
<imgsrc="/img/tutorial/opentelemetry/image01.png"alt="Panel de métricas de FastAPI Cloud Pro con datos de ejemplo">
43
43
44
-
## Otros servicios de monitoreo { #other-monitoring-services }
44
+
## Otros servicios de monitorización { #other-monitoring-services }
45
45
46
-
Para enviar telemetría a otro servicio de monitoreo, configura un endpoint que acepte **OTLP**, el protocolo de OpenTelemetry para enviar telemetría. Usa el endpoint base HTTP/protobuf del servicio.
46
+
Para enviar telemetría a otro servicio de monitorización, configura un endpoint que acepte **OTLP**, el protocolo de OpenTelemetry para enviar telemetría. Usa el endpoint base HTTP/protobuf del servicio.
47
47
48
-
Define estas variables de entorno, reemplazando la URL de ejemplo por tu endpoint:
48
+
Establece estas variables de entorno, reemplazando la URL de ejemplo por tu endpoint:
`OTEL_SERVICE_NAME` identifica tu app en el servicio de monitoreo. El endpoint es la URL base para recibir datos. Las trazas se envían a `/v1/traces`, las métricas a `/v1/metrics` y los logs a `/v1/logs` bajo esa URL.
55
+
`OTEL_SERVICE_NAME` identifica tu aplicación en el servicio de monitorización. El endpoint es la URL base para recibir datos. Las trazas se envían a `/v1/traces`, las métricas a `/v1/metrics` y los logs a `/v1/logs` bajo esa URL.
56
56
57
-
Si tu servicio requiere autenticación, define`OTEL_EXPORTER_OTLP_HEADERS` con los headers que especifique, por ejemplo `api-key=YOUR_API_KEY`.
57
+
Si tu servicio requiere autenticación, establece`OTEL_EXPORTER_OTLP_HEADERS` con los headers que especifique, por ejemplo `api-key=YOUR_API_KEY`.
Abre tu servicio de monitoreo y busca `my-api`. Después de la siguiente exportación, puedes ver una traza con un span `GET /items/{item_id}`, junto con métricas para conteos de requests, duración de response y requests activas.
78
+
Abre tu servicio de monitorización y busca `my-api`. Después de la siguiente exportación, podrás ver una traza con un span `GET /items/{item_id}`, junto con métricas del número de requests, la duración de las responses y las requests activas.
79
79
80
80
## Personaliza la telemetría { #customize-telemetry }
81
81
82
-
### Configura providers y exporters { #configure-providers-and-exporters }
82
+
### Configura proveedores y exportadores { #configure-providers-and-exporters }
83
83
84
-
Un **provider**suministra los objetos que registran trazas, métricas o logs. Su configuración controla cómo se procesan y exportan esos datos.
84
+
Un **proveedor**proporciona los objetos que registran trazas, métricas o logs. Su configuración controla cómo se procesan y exportan esos datos.
85
85
86
-
Los paquetes de telemetría pueden configurar los providers globales de OpenTelemetry. Configura el paquete antes de que la app inicie, y FastAPI usa esos providers automáticamente.
86
+
Los paquetes de telemetría pueden configurar los proveedores globales de OpenTelemetry. Configura el paquete antes de que se inicie la aplicación y FastAPI usará esos proveedores automáticamente.
87
87
88
-
Cuando se define un endpoint OTLP en el entorno, FastAPI añade un exporter para ese destino a cada provider habilitado. Los exporters existentes continúan enviando datos a sus destinos.
88
+
Cuando se establece un endpoint OTLP en el entorno, FastAPI añade un exportador para ese destino a cada proveedor habilitado. Los exportadores existentes siguen enviando datos a sus destinos.
89
89
90
-
Configura cada destino una vez. Si otro paquete ya maneja el destino del entorno, deshabilita su exportación de entorno o desactiva la configuración automática de FastAPI:
90
+
Configura cada destino una sola vez. Si otro paquete ya gestiona el destino del entorno, desactiva su exportación al destino del entorno o desactiva la configuración automática de FastAPI:
También puedes pasar un provider directamente en el diccionario `telemetry`. Por ejemplo, este provider usa el console exporter de OpenTelemetry para imprimir spans de requests en tu terminal:
96
+
También puedes pasar un proveedor directamente en el diccionario `telemetry`. Por ejemplo, este proveedor usa el exportador de consola de OpenTelemetry para imprimir los spans de las requests en tu terminal:
El **exporter** envía los spans a su destino. `BatchSpanProcessor` agrupa spans y los envía en segundo plano. Reemplaza el console exporter por uno proporcionado por tu paquete de monitoreo para usar su destino. Consulta la [guía de instrumentación de Python de OpenTelemetry](https://opentelemetry.io/docs/languages/python/instrumentation/) para más opciones de configuración.
100
+
El **exportador** envía los spans a su destino. `BatchSpanProcessor` agrupa los spans y los envía en segundo plano. Reemplaza el exportador de consola por uno proporcionado por tu paquete de monitorización para usar su destino. Consulta la [guía de instrumentación de Python de OpenTelemetry](https://opentelemetry.io/docs/languages/python/instrumentation/) para ver más opciones de configuración.
101
101
102
-
Usa `meter_provider` o `logger_provider` en el mismo diccionario para suministrar un provider de métricas o logs. La aplicación o el paquete que crea un provider gestiona su cierre. FastAPI gestiona los componentes de exportación que añade.
102
+
Usa `meter_provider` o `logger_provider` en el mismo diccionario para proporcionar un proveedor de métricas o logs. La aplicación o el paquete que crea un proveedor gestiona su cierre. FastAPI gestiona los componentes de exportación que añade.
103
103
104
104
/// warning | Advertencia
105
105
106
-
OpenTelemetry usa providers globales por defecto. La configuración independiente de telemetría para [sub-aplicaciones montadas](sub-applications.md) no está garantizada.
106
+
OpenTelemetry usa proveedores globales por defecto. No se garantiza una configuración de telemetría independiente para las [subaplicaciones montadas](sub-applications.md).
107
107
108
108
///
109
109
110
-
### Traza operaciones de requests { #trace-request-operations }
110
+
### Traza las operaciones de las requests { #trace-request-operations }
111
111
112
-
Por defecto, las trazas de requests incluyen spans para resolver dependencias, ejecutar tu path operation function, serializar la response y ejecutar cada tarea en`BackgroundTasks` de FastAPI. Estos spans usan el mismo provider y exporters.
112
+
Por defecto, las trazas de las requests incluyen spans para resolver dependencias, ejecutar tu path operation function, serializar la response y ejecutar cada tarea de`BackgroundTasks` de FastAPI. Estos spans usan el mismo proveedor y los mismos exportadores.
113
113
114
-
Los spans de tareas en segundo plano siguen siendo parte de la traza de la request. Se ejecutan después de que termina el span de response HTTP, así que no aumentan el tiempo de response medido.
114
+
Los spans de las tareas en segundo plano siguen formando parte de la traza de la request. Se ejecutan después de que termine el span de la response HTTP, por lo que no aumentan el tiempo de response medido.
115
115
116
-
Para registrar solo el span de la request HTTP, define`operation_spans`como`False`:
116
+
Para registrar solo el span de la request HTTP, establece`operation_spans`en`False`:
### Traza las conexiones WebSocket { #trace-websocket-connections }
122
122
123
-
Cada conexión WebSocket tiene un span como `WS /ws/{room}`, que cubre el handler y la limpieza de dependencias. Usa los mismos providers y configuraciones, incluyendo`operation_spans` para la resolución de dependencias y la ejecución del endpoint.
123
+
Cada conexión WebSocket tiene un span como `WS /ws/{room}`, que abarca el manejador y la limpieza de las dependencias. Usa los mismos proveedores y ajustes, incluido`operation_spans` para la resolución de dependencias y la ejecución del endpoint.
124
124
125
-
Las métricas de requests HTTP cubren solo requests HTTP. Las desconexiones WebSocket normales con códigos `1000` o `1001` no producen logs de error.
125
+
Las métricas de requests HTTP abarcan únicamente requests HTTP. Las desconexiones normales de WebSocket con los códigos `1000` o `1001` no generan logs de error.
126
126
127
-
### Inspecciona errores { #inspect-errors }
127
+
### Inspecciona los errores { #inspect-errors }
128
128
129
-
FastAPI registra excepciones no manejadas como logs de OpenTelemetry, vinculadas a la traza de la request o de la conexión. Los logs de error se registran incluso cuando la traza no se muestrea.
129
+
FastAPI registra las excepciones no controladas como logs de OpenTelemetry, vinculados a la traza de la request o de la conexión. Los logs de error se registran incluso cuando la traza no se incluye en el muestreo.
130
130
131
-
Los logs de excepciones incluyen el tipo, mensaje y stack trace de la excepción. Los mensajes y stack traces pueden contener información sensible. Usa los procesadores de logs de tu provider para filtrarlos o redactarlos, o define`logs`como`False` para deshabilitar estos logs.
131
+
Los logs de excepciones incluyen el tipo, el mensaje y la traza de la pila de la excepción. Los mensajes y las trazas de la pila pueden contener información sensible. Usa los procesadores de logs de tu proveedor para filtrarlos u ocultar la información sensible, o establece`logs`en`False` para desactivar estos logs.
132
132
133
-
FastAPI también registra fallos de validación de requests como logs de advertencia con la route y el conteo de errores. Estos logs no incluyen la entrada inválida.
133
+
FastAPI también registra los fallos de validación de las requests como logs de advertencia con la ruta y el número de errores. Estos logs no incluyen la entrada no válida.
134
134
135
135
## Elige qué registrar { #choose-what-to-record }
136
136
137
-
El diccionario `telemetry` también acepta estas configuraciones:
137
+
El diccionario `telemetry` también acepta estos ajustes:
138
138
139
-
|Configuración| Propósito | Por defecto |
139
+
|Ajuste| Propósito | Por defecto |
140
140
| --- | --- | --- |
141
141
|`tracing`| Registrar spans de requests HTTP y conexiones WebSocket |`True`|
142
142
|`metrics`| Registrar métricas de requests HTTP |`True`|
143
-
|`logs`| Registrar fallos de validación y excepciones no manejadas|`True`|
144
-
|`operation_spans`| Añadir spans para operaciones de requests |`True`|
145
-
|`exclude`| Omitir requests cuando una función que recibe el scope ASGI devuelve `True`|`None`|
146
-
|`auto_configure`| Añadir exporters para endpoints definidos en variables de entorno |`True`|
143
+
|`logs`| Registrar fallos de validación y excepciones no controladas|`True`|
144
+
|`operation_spans`| Añadir spans para las operaciones de las requests |`True`|
145
+
|`exclude`| Omitir requests cuando una función que recibe el scope de ASGI devuelve `True`|`None`|
146
+
|`auto_configure`| Añadir exportadores para los endpoints establecidos en variables de entorno |`True`|
147
147
148
-
Por ejemplo, para recopilar métricas excluyendo health checks:
148
+
Por ejemplo, para recopilar métricas excluyendo las verificaciones de estado:
149
149
150
150
```python
151
151
from fastapi import FastAPI
@@ -158,4 +158,4 @@ app = FastAPI(
158
158
)
159
159
```
160
160
161
-
Define`auto_configure`como`False` cuando tu aplicación maneja por sí misma la configuración del provider, como dentro de su función lifespan.
161
+
Establece`auto_configure`en`False` cuando tu aplicación gestione por sí misma la configuración de los proveedores, por ejemplo, dentro de su función lifespan.
0 commit comments