La observabilidad de la API de IA es lo que permite a un equipo de ingeniería reconstruir un incidente de enrutamiento de modelos sin adivinar. Un usuario informa de un timeout, un modelo de respaldo responde de forma diferente, un proveedor devuelve 429 o el gasto aumenta tras un cambio upstream. La revisión del incidente necesita más que un prompt bruto y un código de estado. Necesita un registro de logs que muestre la solicitud, la ruta, la cadena de reintentos, el modelo seleccionado, el perfil de latencia, el uso, el coste y los controles de privacidad sobre lo que se almacenó.
Esta guía es una lista de verificación a nivel de campo para los logs de la observabilidad de la API de IA en incidentes de enrutamiento. Está escrita para equipos que usan una pasarela de IA, un router mult proveedor o una capa de compatibilidad donde una solicitud de la aplicación puede pasar por varias rutas upstream posibles. El objetivo no es almacenar cada prompt para siempre. El objetivo es conservar suficiente metadato para demostrar qué ocurrió, manteniendo bajo control la entrada, la salida, los argumentos de herramientas y los identificadores de cliente sensibles.
Flatkey encaja en este problema porque el texto público de su producto se centra en una sola clave API, una URL base compatible con OpenAI en https://router.flatkey.ai/v1, facturación unificada y un panel único para claves, uso y enrutamiento. Flatkey también hace referencia al cambio automático y al equilibrio de carga entre cuentas upstream. Esas son funciones útiles de fiabilidad solo cuando los registros pueden responder a una pregunta de enrutamiento después de los hechos.
La observabilidad de la API de IA comienza con preguntas sobre incidentes
Antes de elegir campos, defina las preguntas que debe responder el responsable del incidente. Para el enrutamiento de modelos, la observabilidad de la API de IA debería hacer que estas preguntas puedan responderse a partir de un solo registro de solicitud o de una traza correlacionada:
- ¿Qué aplicación, entorno, equipo, clave, flujo de trabajo y propietario apto para el cliente envió la solicitud?
- ¿Qué familia de endpoint, modelo solicitado, política de enrutamiento y regla de respaldo se aplicaron en el momento de la solicitud?
- ¿Qué proveedor, modelo, cuenta upstream o ruta sirvió realmente la respuesta?
- ¿Se reintentó, cambió, limitó, puso en cola, bloqueó o abortó la solicitud?
- ¿Qué código de estado, clase de error del proveedor, encabezado de límite de tasa, tiempo de espera o evento de transmisión cambió el resultado?
- ¿Cuántos tokens de entrada, salida, almacenados en caché y de razonamiento se contabilizaron, y cuál fue el costo de la ruta?
- ¿Los controles de privacidad almacenaron cargas útiles sin procesar, cargas útiles redactadas, solo metadatos o ninguna entrada de registro?
Si un registro no puede responder a esas preguntas, el equipo rellenará el vacío con memoria de Slack, capturas de pantalla y tickets de soporte del proveedor. Eso ralentiza la corrección y dificulta confiar en futuros cambios de ruta.
La lista de verificación del registro de incidentes de enrutamiento del modelo
La tabla siguiente es el activo central de observabilidad de la API de IA para este artículo. Úsela como lista de verificación de implementación para registros de la API de LLM, registros de gateway o eventos de almacén de datos.
| Grupo de campos | Campos a capturar | Por qué importa en un incidente de enrutamiento | Nota de privacidad |
|---|---|---|---|
| IDs de correlación | ID de solicitud de la aplicación, X-Client-Request-Id, x-request-id del proveedor, W3C traceparent, ID de log del gateway, ID del evento. |
Conecta el error visible para el usuario, la decisión del gateway, la solicitud al proveedor, el span de trazado y el ticket de soporte. | Use IDs opacos. No codifique correo electrónico, IP, nombre del inquilino ni texto del prompt en los campos de trazado. |
| Inquilino y propietario | Proyecto, entorno, ID o hash de la clave de API, equipo, flujo de trabajo, ID de cuenta seguro para el cliente, centro de costos. | Muestra quién se vio afectado y quién es propietario de la cuota, el costo y la remediación. | Prefiera IDs internos estables en lugar de nombres de clientes sin procesar o correos electrónicos de usuarios. |
| Ruta solicitada | Familia de endpoint, modelo solicitado, preferencia de proveedor, política de ruta, política de fallback, versión del alias del modelo, versión del catálogo/precios. | Reconstruye lo que el cliente pidió y lo que el enrutador tenía permitido hacer en ese momento. | Mantenga los prompts fuera del objeto de ruta, salvo que esté activo un modo de depuración aprobado por separado. |
| Ruta seleccionada | Proveedor final, modelo final, cuenta o canal ascendente, región si es relevante, motivo de la decisión de enrutamiento, ID de la regla de política. | Demuestra si el modelo principal sirvió la respuesta o si una ruta de fallback cambió el comportamiento o el costo. | Los identificadores de cuenta deben ser referencias internas, no secretos del proveedor ni credenciales completas. |
| Cadena de reintento y fallback | Índice del intento, recuento de reintentos, proveedor/modelo anterior, clase de fallo, código de estado, destino de fallback, resultado final. | Evita reintentos a ciegas y muestra si la escalera de failover se comportó como estaba diseñada. | Almacene la clase de error y extractos seguros. Evite almacenar cuerpos completos de error del proveedor si pueden repetir contenido del prompt. |
| Latencia y streaming | Hora de inicio de la solicitud, duración del gateway, duración del proveedor, tiempo hasta el primer token/chunk, stream iniciado, stream completado, motivo de abortado, desconexión del cliente. | Separa la latencia del proveedor, el tiempo de enrutamiento del gateway, la pausa del streaming y la cancelación del lado del cliente. | Los chunks de streaming son contenido. Registre metadatos de tiempo por defecto y contenido solo bajo un modo de depuración gobernado. |
| Uso y costo | Tokens de entrada, tokens de salida, tokens en caché, tokens de razonamiento, unidades de imagen/video si corresponde, recuento de solicitudes, línea de pedido, costo estimado o final. | Explica el impacto en el presupuesto cuando el fallback desvía tráfico a otro proveedor, modelo o nivel de servicio. | Agrupe por clave, flujo de trabajo y equipo para los paneles normales; restrinja las vistas por usuario. |
| Forma de la respuesta | Motivo de finalización, IDs/nombres de llamadas a herramientas, tipo de salida, estado de la respuesta, truncamiento o detalles de incompleto, nivel de servicio. | Muestra si el modelo se detuvo normalmente, llamó a una herramienta, alcanzó un límite o devolvió una respuesta incompleta. | Los argumentos de herramientas y los resultados de herramientas pueden contener datos sensibles. Almacene IDs y nombres por defecto. |
| Errores y límites de tasa | Estado HTTP, código de error del proveedor, clase de timeout, retry-after, encabezados de solicitud remaining/limit/reset, encabezados de token remaining/limit/reset. | Distingue solicitudes incorrectas, fallos de autenticación, incidentes del proveedor, agotamiento de cuota y tormentas de límite de tasa. | Normalice los errores del proveedor en clases seguras antes de ponerlos en herramientas analíticas amplias. |
| Gobernanza y retención | Acción DLP, ID de política, modo de registro de contenido, indicador de redacción, hash de la carga útil, clase de retención, elegibilidad para eliminación. | Permite a seguridad y cumplimiento verificar por qué el contenido fue almacenado, redactado, bloqueado o excluido. | Por defecto, use registros solo de metadatos cuando el contenido sin procesar no sea necesario para un flujo de trabajo de soporte o auditoría definido. |
Capture ID antes de depurar el proveedor
La primera tarea de la observabilidad de la API de IA es la correlación. La referencia de la API de OpenAI recomienda registrar los ID de solicitud en producción y documenta tanto los valores x-request-id generados por el proveedor como los valores X-Client-Request-Id proporcionados por el cliente. Esto último importa cuando un timeout o una falla de red impide que tu cliente reciba las cabeceras de respuesta del proveedor.
Para un gateway, añade una capa más: un ID de solicitud del gateway que sobreviva a los reintentos y al fallback internos. Si una solicitud de usuario intenta primero con el proveedor A, luego con el proveedor B y, finalmente, con un modelo de respaldo, el ID del gateway debe vincular todos los intentos. El ID de solicitud del proveedor debe seguir siendo específico de cada intento. El ID de rastreo debe vincular esta llamada de IA con el resto de la solicitud de la aplicación.
W3C Trace Context define traceparent y tracestate para propagar el contexto de rastreo distribuido entre servicios. Usa esas cabeceras para la correlación del rastreo, no para la identidad del cliente. La sección de privacidad de W3C es clara: los campos de rastreo no deben contener información de identificación personal ni otra información sensible.
Registrar la ruta solicitada y la ruta seleccionada por separado
Un error común en la monitorización de gateways de IA es registrar solo el proveedor y el modelo finales. Eso hace perder la evidencia de enrutamiento más importante: qué solicitó el cliente y qué permitió la política antes de que el gateway tomara una decisión.
Mantenga estos dos objetos separados:
- Ruta solicitada: familia de endpoint, modelo o alias solicitado, política de ruta, preferencia de proveedor, política de fallback, versión del catálogo, versión de precios y modo de solicitud, como streaming o batch.
- Ruta seleccionada: proveedor final, modelo final, cuenta o canal upstream, región cuando sea relevante, motivo de la decisión de ruta e ID de la regla de política.
Esta separación es importante cuando una respuesta de fallback es válida pero sorprendente. Si la ruta solicitada era chat/completions con streaming habilitado, y la ruta seleccionada cambió a otro modelo después de un timeout, la revisión del incidente puede ver tanto la ruta prevista como la ruta real. También ayuda a finanzas a entender por qué el uso apareció bajo un modelo o partida diferente.
Los compradores de Flatkey deberían aplicar el mismo patrón de evaluación. Comience con la lista de verificación de requisitos del gateway de API de IA, y luego use el manual de balanceo de carga y failover para definir qué cambios de ruta están permitidos antes de revisar los logs.
Registrar la cadena de reintentos y fallback
Los reintentos son donde los registros incompletos se vuelven costosos. Si los únicos campos almacenados son el estado final y el modelo final, el equipo no puede saber si una solicitud se completó en el primer intento, después de un reintento o tras cinco intentos entre proveedores. La observabilidad de APIs de IA de nivel incidente trata el reintento y el fallback como una cadena.
Cada intento debe incluir:
- Índice del intento e ID de solicitud del gateway padre.
- Proveedor, modelo, cuenta upstream y familia de endpoint para ese intento.
- Hora de inicio, duración, clase de timeout y estado de streaming.
- Código de estado, clase de error del proveedor, ID de solicitud del proveedor y metadatos de límite de tasa.
- Destino de fallback y motivo de la decisión cuando el intento no termina la cadena.
Esta cadena evita que el gateway oculte modos reales de fallo. Una solicitud mal formada debe fallar de forma cerrada, no цикlar entre proveedores. Un error 500 del proveedor podría justificar un reintento. Un límite de cuota podría cambiar a una cuenta upstream aprobada. Un desajuste de modelo orientado al cliente podría requerir un error controlado en lugar de un fallback silencioso.
Medir la latencia de los streams, no solo las llamadas completadas
Las respuestas en streaming necesitan más que la duración total. La documentación de observabilidad de AI Gateway de Vercel señala el tiempo hasta el primer token, la duración de la solicitud, los conteos de tokens y el gasto como métricas del gateway. Las convenciones semánticas de GenAI de OpenTelemetry incluyen gen_ai.response.time_to_first_chunk y gen_ai.request.stream. Estos campos son útiles porque muchos incidentes de enrutamiento son incidentes de streaming: el proveedor aceptó la solicitud, el primer fragmento llegó tarde, el stream se detuvo o el cliente se desconectó.
Como mínimo, registra la hora de inicio de la solicitud, la duración del gateway, la duración del proveedor, el tiempo hasta el primer token o fragmento, el indicador de inicio del stream, el indicador de finalización del stream, el motivo de aborto y el estado de desconexión del cliente. Para las respuestas no en streaming, los mismos campos pueden permanecer en null o false. Esto mantiene un único esquema en Chat Completions, Responses y las familias de endpoints específicas de cada proveedor.
No almacenes fragmentos del stream por defecto. Los fragmentos del stream son contenido de respuesta, y el contenido de respuesta puede incluir datos del usuario, contexto recuperado, resultados de herramientas o información regulada. Para la observabilidad de la API de IA normal, los metadatos de temporización suelen ser suficientes para diagnosticar una detención.
Conecta el uso y el costo con la decisión de enrutamiento
El uso y el costo son campos de incidentes, no solo campos de finanzas. Los ejemplos de la API Responses de OpenAI incluyen uso de entrada, salida, caché, razonamiento y total de tokens. El endpoint de uso de la organización de OpenAI admite agrupación por proyecto, usuario, clave de API, modelo, lote y nivel de servicio; el endpoint de costos admite agrupación por proyecto, elemento de línea y clave de API. La documentación de AI Gateway de Vercel describe de manera similar resúmenes de solicitudes por proyecto y clave de API, recuentos de tokens, duración P75, TTFT P75 y costo.
Para la observabilidad de API de IA, captura el uso y el costo a nivel de intento cuando sea posible y siempre a nivel de solicitud final. Un fallback puede ser correcto operativamente y sorprendente financieramente. Sin el modelo, la ruta, el uso y el costo en el mismo evento, finanzas puede ver un pico de gasto antes de que ingeniería pueda explicarlo.
El precio público de Flatkey y el texto de su página de inicio apuntan a precios claros, facturación unificada, analíticas de uso y un panel para claves, uso y enrutamiento. Una captura de precios del 18 de junio de 2026 guardada para esta tarea devolvió 638 filas de modelos, 23 proveedores y familias de endpoints que incluyen OpenAI Chat Completions, OpenAI Responses, Anthropic Messages, Gemini generateContent, generación de imágenes y video de OpenAI. Trata esos recuentos como evidencia fechada y luego verifica la página de precios en vivo y los registros del panel para los modelos específicos de tu flujo de trabajo.
Usar el registro solo de metadatos como valor predeterminado
Los prompts y respuestas en bruto son potentes herramientas de depuración, pero también son registros de riesgo. La documentación de registro de Cloudflare AI Gateway es un patrón de referencia útil: describe registros de solicitudes con prompt, respuesta, proveedor, marca temporal, estado, uso de tokens, costo, duración y agente de usuario, y también documenta un encabezado que puede suprimir el almacenamiento del cuerpo bruto de la solicitud y la respuesta mientras conserva metadatos como recuentos de tokens, modelo, proveedor, código de estado, costo y duración.
Esa es la postura predeterminada correcta para los registros de API de LLM: recopile metadatos por defecto y luego exija un modo de depuración explícito o un flujo de trabajo de soporte antes de almacenar contenido bruto. Las convenciones semánticas GenAI de OpenTelemetry marcan los mensajes de entrada, los mensajes de salida, las instrucciones del sistema, los argumentos de llamadas a herramientas y los resultados de llamadas a herramientas como campos que pueden contener información sensible. Su política de registro debe reflejar eso.
Una política práctica tiene cuatro modos:
- Sin registro: usado para solicitudes que no deben conservarse más allá del procesamiento transitorio.
- Solo metadatos: ruta, IDs, latencia, estado, uso, costo y banderas de redacción.
- Carga útil redactada: campos seleccionados de solicitud/respuesta después de eliminar PII y secretos.
- Carga útil en bruto: captura de depuración de corta duración y con acceso controlado para un incidente específico o un caso de soporte aprobado por el cliente.
Un evento de registro de enrutamiento de muestra
Esta plantilla es intencionalmente primero metadatos. Adapte los nombres a su sistema de registro, pero mantenga la separación entre la ruta solicitada, la ruta seleccionada, los intentos, el uso, el costo y los controles de privacidad.
{
"gateway_request_id": "gw_01jz_route_abc",
"app_request_id": "req_9a7c",
"traceparent": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
"client_request_id": "7c2c1b3a-4b55-4e36-bd47-8d1c2e2f2e11",
"owner": {
"project": "checkout-ai",
"environment": "production",
"api_key_id": "key_hash_6f12",
"team": "platform",
"workflow": "customer-chat"
},
"requested_route": {
"endpoint_family": "chat_completions",
"model": "primary-chat-model",
"stream": true,
"route_policy_id": "chat-prod-v8",
"fallback_policy_id": "chat-prod-safe-fallback-v3",
"catalog_version": "2026-06-18"
},
"selected_route": {
"provider": "provider_b",
"model": "backup-chat-model",
"upstream_account": "acct_pool_2",
"decision_reason": "primary_timeout",
"policy_rule_id": "fallback_on_timeout_once"
},
"attempts": [
{
"index": 1,
"provider": "provider_a",
"model": "primary-chat-model",
"provider_request_id": "req_provider_a_123",
"status_code": 504,
"error_class": "timeout",
"duration_ms": 12000,
"fallback_target": "provider_b"
},
{
"index": 2,
"provider": "provider_b",
"model": "backup-chat-model",
"provider_request_id": "req_provider_b_456",
"status_code": 200,
"duration_ms": 2400,
"time_to_first_chunk_ms": 620,
"finish_reason": "stop"
}
],
"usage": {
"input_tokens": 1284,
"output_tokens": 312,
"cached_input_tokens": 0,
"reasoning_output_tokens": 0
},
"cost": {
"currency": "usd",
"estimated_amount": 0.0048,
"line_item": "backup-chat-model"
},
"privacy": {
"content_logging_mode": "metadata_only",
"payload_redacted": true,
"retention_class": "30_day_incident_metadata"
}
}
Los nombres de campo son ejemplos, no un contrato de API de Flatkey. Úselos para probar si su gateway, almacén de datos y herramientas de incidentes pueden responder preguntas de enrutamiento sin necesidad de contenido sin procesar.
Un flujo de triaje de 10 minutos
Cuando comienza un incidente de enrutamiento de modelos, el flujo de observabilidad de API de IA debe ser lo bastante breve para que el ingeniero de guardia lo ejecute bajo presión:
- Encontrar la solicitud correlacionada: buscar por ID de solicitud de la app, ID de solicitud de gateway, ID de error visible para el usuario, ID de solicitud del proveedor o ID de trazado.
- Comparar las rutas solicitada y seleccionada: confirmar el modelo solicitado, la política de ruta, la regla de fallback, el proveedor final y el modelo final.
- Leer la cadena de intentos: identificar el primer fallo, el número de reintentos, el destino de fallback y el resultado final.
- Comprobar el contexto de límite de tasa y cuota: inspeccionar los encabezados de remaining, limit y reset cuando los proveedores devuelvan 429 o haya presión de tokens.
- Separar la latencia del streaming: comparar la duración del gateway, la duración del proveedor, el tiempo hasta el primer chunk, el fin del stream y la desconexión del cliente.
- Reconciliar uso y coste: revisar los recuentos de tokens, el nivel de servicio, la línea de coste y la propiedad del equipo/clave.
- Revisar el modo de privacidad: confirmar si el registro es solo de metadatos, redactado, bruto o se omitió intencionalmente.
- Decidir la acción de ruta: revertir la política, deshabilitar una ruta, reducir el peso del tráfico, aumentar la cuota, poner en cola trabajo en segundo plano o fallar de forma cerrada.
Después del incidente, convierta los mismos pasos en una vista de panel. Las revisiones más rápidas ocurren cuando ingeniería, soporte y finanzas pueden inspeccionar la misma forma de evento.
Cómo Flatkey se adapta a la observabilidad de API de IA
Flatkey está posicionado para equipos que quieren una sola clave de API, un endpoint de router compatible, precios claros, facturación unificada y un solo panel para claves, uso y enrutamiento. Para este artículo, la ruta de validación relevante es práctica: apunta un cliente de staging a https://router.flatkey.ai/v1, envía solicitudes a través de una clave de no producción, activa una falla controlada cuando sea posible y confirma qué registros de uso, enrutamiento, error y costo aparecen en el panel.
Usa seguimiento de uso de IA por clave para separar el tráfico de staging, producción, clientes y flujos de trabajo. Usa gestión de cuotas de API de IA para evitar que el fallback consuma el presupuesto compartido. Usa atribución de costos de API de IA por equipo cuando los cambios de enrutamiento necesiten un responsable de finanzas.
El CTA es simple: si tu equipo quiere probar la observabilidad de API de IA detrás de una sola clave, obtén una clave, ejecuta una ruta de staging a través de Flatkey y revisa si los registros responden a las preguntas del incidente anteriores antes de depender del cambio automático en producción.
Preguntas frecuentes
¿Qué es la observabilidad de la API de IA?
La observabilidad de la API de IA es la capacidad de inspeccionar el tráfico de la API del modelo a través de IDs de solicitud, trazas, modelos, proveedores, decisiones de enrutamiento, reintentos, fallback, uso, costo, latencia, errores y controles de privacidad. Para incidentes de enrutamiento, debe explicar tanto lo que el cliente solicitó como lo que realmente seleccionó la puerta de enlace.
¿Qué deben capturar los registros de la API de LLM?
Los registros de la API de LLM deben capturar IDs de correlación, metadatos del propietario, ruta solicitada, ruta seleccionada, cadena de reintentos, latencia, estado de streaming, uso de tokens, costo, motivo de finalización, clase de error, contexto de límite de velocidad y modo de registro de contenido. Los prompts y salidas sin procesar deben ser opcionales, con control de acceso y enmascarados cuando sea posible.
¿Por qué registrar por separado el modelo solicitado y el modelo de respuesta?
El modelo solicitado muestra la intención del cliente. El modelo de respuesta muestra qué atendió realmente la solicitud. En un incidente de fallback, esos pueden diferir. Registrar ambos es esencial para la revisión de calidad, la conciliación de costos y la comunicación con soporte.
¿Cómo ayudan los IDs de solicitud al soporte del proveedor?
Los IDs de solicitud del proveedor identifican la llamada de API ascendente. Un ID de solicitud proporcionado por el llamador puede ayudar cuando un tiempo de espera impide que el encabezado de respuesta llegue a su cliente. Mantenga ambos IDs en el registro del incidente, junto con el ID de solicitud de la puerta de enlace y el ID de la traza.
¿Debe el monitoreo de la puerta de enlace de IA almacenar prompts sin procesar?
No de forma predeterminada. El monitoreo de la puerta de enlace de IA normalmente necesita primero metadatos: ruta, modelo, estado, duración, uso, costo y modo de privacidad. Almacene prompts o respuestas sin procesar solo bajo un flujo de trabajo definido de depuración, soporte o auditoría, con retención y controles de acceso.
Fuentes utilizadas
- Descripción general de la API de OpenAI: depuración de solicitudes e identificadores de solicitud
- Referencia de la API de Chat Completions de OpenAI y Referencia de la API de Responses
- Referencia de la API de uso y costos de la organización de OpenAI
- Documentación de registros de Cloudflare AI Gateway
- Documentación de observabilidad de Vercel AI Gateway
- Recomendación de W3C Trace Context
- Atributos de convención semántica GenAI de OpenTelemetry
Chequeo final antes de cambiar el enrutamiento
Antes de confiar en el fallback automático, haga que la observabilidad de la API de IA forme parte del criterio de lanzamiento. Confirme la política de ruta, la escalera de reintentos, los campos de tokens y coste, los encabezados de límite de velocidad, las marcas de tiempo de streaming, los IDs de solicitud del proveedor, el modo de privacidad y la clase de retención. Luego ejecute un incidente controlado en staging y verifique que los registros puedan explicar el resultado sin acceso al prompt en bruto.
Flatkey reduce la superficie de integración a una clave y una URL base compatible. Para evaluar esa capa de fiabilidad con su propio tráfico, obtenga una clave, ejecute un flujo de trabajo de staging e inspeccione los registros de enrutamiento, uso, coste y errores que su equipo necesitará durante un incidente real.



