llm del
último día. Ambas vistas comparten los mismos filtros, alcance y periodo.
Sin filtro de fecha, la lista muestra las últimas 48 horas. El control de
fechas ofrece rangos rápidos (últimas 48 horas, 7 días, 30 días) o un desde /
hasta personalizado, de hasta 30 días a la vez: un rango más amplio se
limita a 30 días y el chip lo indica. Las trazas más antiguas siguen ahí: elige un
rango para llegar a ellas, hasta el periodo de retención de 90 días. Abrir una
traza, o la pestaña Traza de una llamada, no tiene ningún límite de periodo.
Si un rango es demasiado pesado para tu volumen, la página indica que las trazas
no están disponibles temporalmente: vuelve a intentarlo o acota el rango.
Explorar una traza
En la página completa, usa el icono de copiar junto al ID de la traza en el encabezado para copiar el ID completo. Abrir conversación abre la llamada vinculada. Si dice Sin conversación vinculada, el icono de información abre la guía de conexión. El visor tiene dos paneles: navegación de spans a la izquierda y detalles a la derecha. Empieza en Línea de tiempo y recuerda la vista y el ancho elegidos. Arrastra el divisor, o enfócalo y usa las flechas, para cambiar el ancho. Las vistas, la búsqueda y el botón para contraer comparten la barra izquierda. Contrae la navegación para dar más espacio a los detalles; al expandirla se restauran la selección, el zoom y el ancho. El audio continúa reproduciéndose. La búsqueda funciona en las tres vistas; filtrar Pistas conserva el eje completo. El panel izquierdo ofrece tres vistas con una selección compartida:- Árbol muestra la jerarquía, los tipos de spans, la duración y los tokens.
- Línea de tiempo agrega barras sobre un eje de tiempo compartido. Comparte la búsqueda y los controles para contraer la jerarquía con Árbol.
- Pistas agrupa STT, LLM, herramientas, TTS y los demás tipos registrados. Los spans concurrentes ocupan filas separadas. Si el nombre no cabe en una barra, usa Árbol o selecciona la barra para consultar los detalles.
messages. Usa Sin formato
para ver la entrada y la salida originales, o vuelve a Formateado. Las
llamadas a herramientas y otros metadatos están en Campos adicionales.
Los bloques de texto se muestran como texto; los demás bloques permanecen
visibles como JSON. El texto simple y el JSON incompleto o no reconocido
conservan su presentación original.
Selecciona Resumen de la traza en el panel izquierdo para abrir las
pestañas Resumen, Atributos y Registros. Resumen muestra las estadísticas
y Duración por paso; en la página completa, también contiene Llamada,
Transcripción y Monitores para una llamada vinculada. Atributos agrupa
los valores registrados por span para conservar el contexto de las claves
repetidas. Registros muestra todos los registros de la traza en orden temporal,
incluidos los que no tienen un span correspondiente. Selecciona el nombre de
un span debajo de un registro para inspeccionarlo. Selecciona Llamada,
Transcripción o Monitores para cargar ese panel de la llamada vinculada;
vuelve a seleccionarlo para cerrarlo.
Si la traza está vinculada a una conversación con audio, el reproductor
permanece debajo del panel izquierdo. Puedes reproducir, pausar, buscar un
momento, cambiar la velocidad o descargar la grabación. Cambiar de span o de
vista no interrumpe la reproducción.
En pantallas estrechas, seleccionar un span o el resumen abre los detalles.
Usa Volver a los spans o Escape para regresar. Los registros muestran
milisegundos; pasa el cursor sobre la hora para ver la fecha y zona horaria.
Vincular trazas a conversaciones
Vincular una traza conecta sus tiempos, errores y uso de tokens con lo que ocurrió en la llamada. Puedes abrir la conversación desde el encabezado, consultar su transcripción y los resultados de monitores, y escuchar la grabación mientras inspeccionas los spans. El audio, las transcripciones y los resultados aparecen cuando están disponibles en la conversación; vincularla no genera datos que falten.-
Envía la conversación a la misma organización. Usa la integración de tu
proveedor o la API de ingesta de llamadas.
Para llamadas enviadas por API, establece
call.externalIdcon el ID de llamada, sala o sesión del proveedor. Exportar solo trazas no crea una conversación. -
Envía ese mismo ID con la traza. Establece
session.iden los spans o en el recurso OpenTelemetry con el mismo ID externo de la conversación. Por ejemplo, dentro de un span activo en Python:Zelto también reconocecall.id,gen_ai.conversation.id,conversation.id,zelto.reference_id,livekit.room,livekit.room_name,room.nameylk.room_name. Estos atributos son referencias externas de la llamada, no el ID de la traza. Con JSON nativo, usa el camposessionRefdel span. Para LiveKit, usa el mismo nombre de sala encall.externalIdy en el atributo de sala o sesión de la traza. - Vuelve a abrir la traza cuando ambos hayan llegado. El encabezado muestra Abrir conversación cuando Zelto encuentra una sola conversación coincidente. Puedes enviar la traza antes o después de la conversación.
Identifica agentes con tus propios IDs
Envía el ID estable del agente comozelto.agent_external_id en cada span o
registro, o como atributo del recurso de OpenTelemetry si representa un solo agente:
agent.externalId en tus cargas de llamadas y consérvalo
entre llamadas y versiones. session.id cambia en cada llamada y debe coincidir
con su call.externalId.
Zelto reutiliza el agente de tu organización o crea uno con el ID externo como
nombre. La traza puede llegar antes que la llamada. Incluye
zelto.agent_provider con el mismo proveedor que las llamadas (livekit en el
ejemplo) para que ambos flujos creen el mismo agente. Si lo omites, se reutiliza
una coincidencia única existente; los agentes nuevos usan zelto. Los IDs son
cadenas sensibles a mayúsculas de hasta 255 caracteres; el proveedor admite
hasta 50. Si el ID coincide con distintos agentes de varios proveedores, queda
sin asignar hasta que especifiques el proveedor. Los IDs fusionados apuntan al
agente que permanece.
Si un exportador atiende a varios agentes, envía el ID en cada span o registro
en vez de un recurso compartido. Sus atributos tienen prioridad sobre los del
recurso. zelto.agent_id sigue siendo un UUID de Zelto y tiene prioridad:
no pongas tu ID externo ahí, aunque también tenga formato UUID.
En JSON nativo, usa las mismas claves dentro de attributes de cada span o
registro. El campo agentId sigue significando un UUID de Zelto.
Qué contiene una traza
- Spans, cada uno con un tipo normalizado:
llm,tts,stt,vad,tool,code,telephony,livekit,sessionuother. Los spans de IA generativa exponen el modelo, los tokens y el costo para poder filtrarlos rápidamente. - Registros, asociados con un span o con la traza completa, con su nivel de gravedad y contenido.
- Una referencia de sesión, como el identificador de sala, llamada o sesión, que enlaza la traza con su conversación cuando Zelto puede relacionarlas.
Enviar telemetría
Empieza con Enviar trazas a Zelto: incluye una primera traza ejecutable, identidad del agente, vinculación de llamadas, registros y solución de problemas.Si tus llamadas proceden de Vapi, Zelto crea las
trazas automáticamente a partir de los registros de plataforma de cada llamada;
no necesitas instalar un exportador. Consulta
Vapi → Trazas.
owner o admin.
Configura el endpoint de ingestión de Zelto y autentica el exportador con la clave
como token Bearer:
/v1/traces y los registros a /v1/logs; el SDK
de OpenTelemetry añade estas rutas automáticamente. Zelto admite las dos
codificaciones de OTLP/HTTP: protobuf, la predeterminada en la mayoría de los
exportadores, y JSON. No admite gRPC en :4317; utiliza el endpoint HTTP.
Las solicitudes de telemetría a /v1/traces, /v1/logs y /webhooks/otel admiten
hasta 10 MB (10.000.000 bytes) por solicitud, medidos después de la
descompresión. Las solicitudes más grandes reciben HTTP 413; reduce el tamaño
del lote de exportación antes de volver a enviarlas.
El exportador HTTP de Python usado en estos ejemplos envía protobuf.
Mantén
OTEL_EXPORTER_OTLP_PROTOCOL como http/protobuf.429 con una cabecera Retry-After.
Respeta esa cabecera y reintenta con espera progresiva. Los reintentos y las
colas de los exportadores tienen límites: vigila los errores y los lotes
descartados. Si necesitas un volumen alto de forma habitual, pide a tu contacto de Zelto que amplíe el límite de la
organización.
Si ninguna traza coincide con tus filtros, usa Borrar filtros o ajusta el
periodo. Si tu organización aún no tiene trazas, comprueba que el exportador
apunta al endpoint anterior y envía una clave válida en
Authorization: Bearer.200 confirma la aceptación. Con ingestión en cola, los
datos se consultan después del procesamiento asíncrono; el objetivo es 30 segundos
con carga normal, no un máximo garantizado. La espera del exportador y las
interrupciones pueden añadir demora. OTLP devuelve {} y JSON nativo devuelve
{"received":true}.
JSON nativo
Si tu agente no admite OTLP, envía a/webhooks/otel un cuerpo JSON más sencillo
con los spans y registros en el formato nativo de Zelto, utilizando la misma
clave Bearer. Consulta el ejemplo completo.
Usa OTLP si tu stack ya lo admite.
Importar invocaciones de herramientas anteriores
Si ya registras invocaciones de herramientas, pero todavía no exportas OpenTelemetry, Zelto puede proyectar ese historial como trazas para que la vista no quede vacía mientras configuras el exportador. Cada invocación de herramienta se convierte en un spantool y todas las invocaciones de una misma conversación
comparten una traza. Solo se incluyen llamadas de los últimos 90 días, el periodo
de conservación de las trazas. Pide a tu contacto de Zelto que ejecute esta
importación para la organización.
Contenido relacionado
- Invocaciones de herramientas — compara el uso, los resultados y la duración de las herramientas entre llamadas y agentes.
- Conversaciones — la vista de transcripción y análisis; una traza enlaza con su conversación cuando coincide el identificador de sesión.
- LiveKit — configura el exportador de OpenTelemetry de un agente de LiveKit para transmitir trazas a Zelto.

