GitHub Actions Workflow Telemetry Integration: del límite a la fila verificada
Utilice GitHub Actions Workflow Telemetry Integration en un límite de aplicación controlado, mantenga el contrato de evento pequeño y verifique un resultado conocido antes de crear vistas agregadas.
- 1
Elige el resultado
Fiabilidad del flujo de trabajo de CI
- 2
Definir el contrato
workflow_name, job_name, run_id, run_attempt, estado, duration_ms, repositorio y versión
- 3
Instrumentar el límite
Ejecute el paso con if: always() para que los trabajos fallidos produzcan un registro de terminal y use continue-on-error: true si la entrega de observabilidad no debe cambiar la conclusión del flujo de trabajo.
- 4
Verificar la evidencia
Exercise a known fixture, then inspect github_workflow_completed for one correctly typed terminal row.
Antes de empezar
Requisitos previos y límites
- Una clave Telemetry con alcance de escritura almacenada como un secreto de acciones GitHub
- Un paso final protegido con siempre() y configurado para no anular el resultado del flujo de trabajo cuando falla la entrega de telemetría
- Una lista permitida de variables proporcionadas por GitHub que excluye cargas útiles de eventos, tokens, datos de actores, mensajes de confirmación y contenido de solicitudes de extracción.
Configuración de entrega
Instalar e inicializar el lado del servidor
Utilice los ejemplos de cURL con conexión explícita y tiempos de espera de solicitud. Mantenga las credenciales de ingesta fuera de los paquetes de navegador, las variables de entorno visibles para el cliente, el control de fuente, los registros y los mensajes de excepción.
- 1Prepare un cliente de entrega del lado del servidor reutilizable con comportamiento de red limitado.
- 2Agregue el evento de resultado en el límite de éxito, error, reintento o tiempo de espera.
- 3Envíe accesorios controlados e inspeccione las filas almacenadas antes de habilitar una alerta.
Fragmento
Comience con un evento estructurado
Agregue esta forma donde el flujo de trabajo se completa, falla o se vuelve a intentar. Luego cree el panel a partir de campos reales.
Evento GitHub Actions Workflow Telemetry Integration
# Use in a final GitHub Actions step with:
# if: ${{ always() }}
# continue-on-error: true
# env:
# TELEMETRY_API_KEY: ${{ secrets.TELEMETRY_WRITE_KEY }}
# JOB_STATUS: ${{ job.status }}
jq -n --arg workflow_name "$GITHUB_WORKFLOW" --arg job_name "$GITHUB_JOB" --arg run_id "$GITHUB_RUN_ID" --arg run_attempt "$GITHUB_RUN_ATTEMPT" --arg status "$JOB_STATUS" --arg repository "$GITHUB_REPOSITORY" --arg release "$GITHUB_SHA" '{
table: "github_workflow_completed",
data: {
workflow_name: $workflow_name,
job_name: $job_name,
run_id: $run_id,
run_attempt: ($run_attempt | tonumber),
status: $status,
repository: $repository,
release: $release
}
}' |
curl --fail-with-body --connect-timeout 2 --max-time 5 --request POST "https://api.telemetry.sh/log" --header "Authorization: ${TELEMETRY_API_KEY}" --header "Content-Type: application/json" --data-binary @-Contrato de evento
workflow_name, job_name, run_id, run_attempt, estado, duration_ms, repositorio y versión
trigger_type, runner_environment, programado, retry_recovered y controlado error_type cuando esté aprobado
Sin GITHUB_TOKEN, contexto secreto, carga útil de github.event, volcado de entorno, mensaje de confirmación, rama proporcionada por una bifurcación que no es de confianza o salida de paso arbitrario
Puntos de control de implementación
Punto de control 1
Ejecute el paso con if: always() para que los trabajos fallidos produzcan un registro de terminal y use continue-on-error: true si la entrega de observabilidad no debe cambiar la conclusión del flujo de trabajo.
Punto de control 2
GitHub advierte que los contextos pueden contener información confidencial y que algunos valores de contexto deben tratarse como entradas que no son de confianza. Expanda solo la lista de permitidos documentada a las variables de entorno del shell.
Punto de control 3
Utilice GITHUB_RUN_ID como identificador de ejecución lógica y GITHUB_RUN_ATTEMPT para distinguir las reejecuciones. Mida la duración a partir de una marca de tiempo de inicio controlada en lugar de inferirla de eventos no relacionados.
Verificación
Demuestra que el evento llegó
Ejecute esto después de ejercitar casos conocidos de éxito y fracaso. Reemplace el nombre de la tabla alternativa si su contrato de evento final difiere del fragmento.
Consulta de verificación GitHub Actions Workflow Telemetry Integration
SELECT *
FROM github_workflow_completed
ORDER BY timestamp_utc DESC
LIMIT 20;Referencias de implementación
Revise el contrato del evento, la guía de seguridad de los datos y la documentación primaria previa antes de habilitar una nueva ruta de producción.
Límite de producción
Mantenga el evento de resultado pequeño y recuperable
Este patrón proporciona
- Un resultado limitado y listo para SQL junto al flujo de trabajo ascendente.
- Campos estables para paneles, alertas y correlación entre eventos.
- Una ruta basada en dispositivos para validar el comportamiento de éxito, fracaso, reintento y tiempo de espera.
Este patrón no proporciona
- Un exportador de OTLP, un canal de recopilación automática o un reemplazo para seguimientos detallados y registros de diagnóstico.
- Entrega exactamente una vez simplemente porque la carga útil contiene un ID de evento.
- Permiso para recopilar cargas útiles sin procesar del proveedor, contenido de usuario, credenciales o datos regulados.
Puntos de partida del esquema de eventos
Contratos de eventos para este flujo de trabajo
Revise el detalle de la fila, el límite de emisión, los tipos requeridos, las clases de privacidad, la carga útil de ejemplo y la lista de verificación de validación antes de adaptar una consulta o fragmento a producción.
Función relacionada del producto
Continúe este flujo de trabajo en Alertas
Promueva la consulta de confiabilidad revisada a un umbral propio y un flujo de trabajo de respuesta.
Recetas SQL relacionadas
Responde la siguiente pregunta con SQL
Ejecute la consulta en los campos estructurados de este flujo de trabajo, inspeccione el resultado del ejemplo y convierta una respuesta útil en un panel o alerta.
Medir el reintento del trabajo en segundo plano y la tasa de fallas
¿Qué trabajos en segundo plano consumen más reintentos o aún fallan?
Receta abiertaDetectar programaciones cron perdidas
¿Qué trabajos programados se ejecutaron más tarde que su intervalo documentado?
Receta abiertaCalcular el tiempo de detección y recuperación de incidentes
¿Cuánto tiempo tarda cada servicio en detectar y recuperarse de incidentes?
Receta abiertaReconstruir una línea de tiempo de flujo de trabajo correlacionado
¿Qué sucedió, en orden, durante el último flujo de trabajo fallido?
Receta abiertaMedir el volumen Telemetry por nombre de evento
¿Qué contratos de eventos generan el mayor volumen de ingesta?
Receta abiertaExplorar por familia de implementación
Comparar patrones de integración relacionados
Plantillas para combinar con esta integración
Monitor de fallas en el trabajo en segundo plano
Capture el estado de los trabajos de cola, cron, importación, sincronización de facturación y webhook desde la primera ejecución hasta los reintentos y fallas.
Abrir plantillaPlantilla de auditoría de seguridad del agente de IA
Instrumente decisiones de autorización de herramientas, versiones de políticas, aprobaciones humanas y resultados de terminales con eventos estructurados seguros para la privacidad.
Abrir plantillaPlantilla de observabilidad de agentes de IA
Realice un seguimiento de las ejecuciones de agentes, llamadas de herramientas, reintentos, latencia de modelos, errores y resultados aceptados con eventos estructurados listos para SQL.
Abrir plantillaMás integraciones
Trabajo de Inngest y Trigger.dev Telemetry
Instrumente trabajadores asíncronos, trabajos programados, reintentos, fallas y eventos de mensajes no entregados con registros listos para SQL.
abrir guiaFlujo de trabajo n8n Telemetry
Envíe los resultados de finalización, error, reintento, recuento de elementos y entrega posterior del flujo de trabajo n8n a un evento Telemetry limitado a través del nodo de solicitud HTTP.
abrir guiaMonitoreo de eventos estructurados de AWS Lambda
Realice un seguimiento de las invocaciones de Lambda, los arranques en frío, la duración, los reintentos y los resultados comerciales con eventos estructurados compactos.
abrir guia