Observabilidad (OTLP)
Exporta las trazas de tus ejecuciones de test a Datadog, Grafana, Honeycomb o cualquier backend OTLP — y pivota de un paso de test fallido a la traza de producción correspondiente.
Autonomy exporta cada ejecución de test como una traza OpenTelemetry al backend de observabilidad que tu equipo ya usa. Una ejecución se convierte en un span autonomy.run con hijos anidados autonomy.step y autonomy.action.* — los pasos fallidos llevan el estado de error OTLP, así que aparecen en el mismo seguimiento de errores, paneles y alertas que tu tráfico de producción.
Qué hace
- Exporta una traza por ejecución:
autonomy.run→autonomy.step(uno por paso del plan) →autonomy.action.*(navigate, fill, tap, wait, …) con tiempos reales. - Marca ejecuciones, pasos y acciones fallidos con el estado de error OTLP — los exploradores de trazas los pintan en rojo y los cuentan en las tasas de error.
- Adjunta
autonomy.run_urla cada span: un enlace directo desde cualquier span de tu backend a la página de evidencias de la ejecución en Autonomy. - Entrega las credenciales del proveedor a los runners alojados automáticamente — configura una vez en el panel, sin cambios en el entorno del runner.
- La exportación es «fire-and-forget»: un endpoint lento o inaccesible nunca retrasa ni hace fallar una ejecución de test.
Qué se exporta
Los spans llevan un conjunto fijo de atributos en lista blanca:
| Atributo | Contenido |
|---|---|
test.status | passed / failed por paso, estado final en el span de la ejecución |
test.platform | web, ios, android o api |
test.plan_name, test.plan_id | El caso de test ejecutado |
test.step_index, test.step_action, test.step_target | Tu paso del plan tal como fue redactado |
autonomy.diagnosis.category | Clasificación del fallo (app_bug, test_flaky, environment, …) |
autonomy.recovery_count | Reintentos consumidos antes del veredicto del paso — una señal de flakiness sobre la que alertar |
autonomy.run_url | Enlace directo a la ejecución en el panel de Autonomy |
Nada más sale de Autonomy. La identidad de los modelos, el uso de tokens, los prompts, las capturas de pantalla, el contenido de las páginas, los mensajes de error sin procesar y los nombres de herramientas internas nunca se exportan — los fallos se reducen a códigos de categoría, y el contrato lo aplica una lista blanca de atributos en el exportador.
Configuración
Antes de empezar
- Una cuenta de administrador del workspace — los ajustes de Observabilidad son solo para admins.
- Un endpoint de ingesta OTLP/HTTP en un hostname público con https.
- Una credencial de ingesta de tu proveedor (clave API, token o cabecera basic-auth).
- Abre Settings → Observability en el panel de Autonomy.
- Elige el preajuste de tu proveedor — rellena la forma del endpoint y el formato de las cabeceras.
- Introduce el endpoint OTLP. Autonomy añade
/v1/tracesautomáticamente; https es obligatorio. - Introduce los Headers como pares
clave=valorseparados por comas. Se guardan cifrados y de solo escritura — no se vuelven a mostrar tras guardar. - Pulsa Send Test Span. Autonomy envía del lado del servidor un span sintético
autonomy.test_connectione informa del estado HTTP y la latencia. - Confirma que el span llegó a tu explorador de trazas bajo el servicio
autonomy-runner-labs, luego activa Trace Export y guarda.
Configuración por proveedor
Datadog
- Endpoint:
https://otlp.datadoghq.com— usa el dominio de tu site (otlp.datadoghq.eu,otlp.us5.datadoghq.com, …). - Headers:
dd-api-key=<tu clave API>(una clave API, no una clave de aplicación). - Dónde aparecen las trazas: APM → Traces, servicio
autonomy-runner-labs. Los pasos fallidos aparecen como spans en error; usa facetas sobre@autonomy.diagnosis.categoryo@test.plan_namepara construir monitores.
Grafana Cloud (Tempo)
- Endpoint:
https://otlp-gateway-<region>.grafana.net/otlp— cópialo de la página OpenTelemetry → OTLP de tu stack. - Headers:
Authorization=Basic <base64 de instanceID:token>— genera el token con scopemetrics:write/traces:write. - Dónde aparecen las trazas: Explore con la fuente de datos Tempo; consulta TraceQL
{resource.service.name="autonomy-runner-labs"}.
Honeycomb
- Endpoint:
https://api.honeycomb.io(UE:https://api.eu1.honeycomb.io). - Headers:
x-honeycomb-team=<tu clave de ingesta>. En Honeycomb Classic añadex-honeycomb-dataset=<dataset>. - Dónde aparecen las trazas: el dataset
autonomy-runner-labs(o el entorno de la clave de ingesta). UnBubbleUpsobretest.status = failedes una buena primera consulta.
OTLP genérico
Funciona cualquier colector o proveedor que acepte OTLP/HTTP con JSON en /v1/traces — un OpenTelemetry Collector, SigNoz, Axiom y la mayoría de ingestas nativas de los proveedores. Apunta el endpoint a la URL base (hostname público con https — se rechazan IP literales y hostnames internos) y aporta las cabeceras de autenticación que espere la ingesta.
Runners autoalojados
La configuración del panel tiene prioridad y no requiere cambios en el runner. Los runners autoalojados sin configuración de organización pueden activar la exportación por entorno:
| Variable | Required | Description |
|---|---|---|
| AUTONOMY_OBSERVABILITY_EXPORT | Yes | Ponlo a `otel` para activar la exportación basada en entorno. |
| OTEL_EXPORTER_OTLP_ENDPOINT | Yes | Endpoint OTLP base; `/v1/traces` se añade automáticamente. |
| OTEL_EXPORTER_OTLP_HEADERS | No | Pares `clave=valor` separados por comas, enviados con cada exportación. |
| OTEL_SERVICE_NAME | No | Nombre de servicio en los spans exportados. Por defecto `autonomy-runner-labs`. |
Rotar o eliminar credenciales
Los headers son de solo escritura: para rotar, pega el nuevo valor y guarda — sustituye el secreto almacenado. Para desconectar un proveedor, usa Clear stored headers; la configuración del endpoint se mantiene, pero las exportaciones salen sin cabeceras de autenticación (que la mayoría de proveedores rechazan) hasta que guardes unas nuevas.
Solución de problemas
Send Test Span falla con HTTP 401 o 403
La ingesta rechazó las credenciales. Revisa la clave de cabecera de tu proveedor (dd-api-key, Authorization, x-honeycomb-team) y que la credencial tenga scope de ingesta/escritura.
Send Test Span falla con HTTP 404
No hay ingesta de trazas OTLP en esa URL. Introduce solo el endpoint base — Autonomy añade /v1/traces por sí mismo; una ruta duplicada es la causa habitual.
«Endpoint must use https» o «must be a public hostname»
Solo se aceptan hostnames públicos con https — se rechazan http plano, IP literales, localhost y nombres .internal/.local. Para un colector interno, expón un ingress https delante.
El span de prueba funciona pero las ejecuciones no exportan nada
Confirma que Trace Export está activado y guardado, y que tus runners han tomado trabajo después del cambio — la configuración se entrega cuando un runner reclama una ejecución. Los fallos de entrega nunca hacen fallar las ejecuciones; una credencial errónea se manifiesta como silencio, no como errores de ejecución. Vuelve a lanzar Send Test Span para reverificar.