Resumen
La telemetría de Flowker usa tres señales:
Flowker exporta todas las señales mediante OTLP (OpenTelemetry Protocol) a un collector de tu elección.
Configuración
Las variables de entorno controlan la telemetría.
Si defines
ENABLE_TELEMETRY=true sin OTEL_EXPORTER_OTLP_ENDPOINT, Flowker no podrá iniciar.Trazado distribuido
Cada solicitud HTTP y operación interna crea un span de OpenTelemetry. Los spans se propagan a lo largo de toda la cadena de ejecución. Una única ejecución de workflow genera un trace conectado, desde el handler HTTP hasta cada paso individual del ejecutor.
Convención de nombres de spans
Los spans siguen el patrón<layer>.<resource>.<operation>:
Spans de ejecución
Spans de comandos de workflow
Spans de configuración de ejecutor
Spans de configuración de proveedor
Spans de consultas
Métricas
Flowker expone métricas HTTP y del sistema de forma automática mediante el SDK de OpenTelemetry. Solo necesitas habilitar la telemetría.
Métricas HTTP (mediante otelfiber)
Recopiladas por ruta mediante el middlewareotelfiber:
Cada métrica lleva labels:
http.request.method, http.route, http.response.status_code.
Métricas del sistema
Buckets del histograma
Los histogramas de latencia usan los límites de bucket predeterminados del SDK de OpenTelemetry. Los valores dehttp.server.duration están en milisegundos, por lo que los límites son:
Flowker no expone un endpoint de scrape de Prometheus (
/metrics) directamente. Flowker exporta métricas mediante OTLP a tu collector, que luego las reenvía a Prometheus. Configura tu collector OTLP para incluir un exporter prometheusremotewrite.Logging estructurado
Flowker usa logging JSON estructurado mediante Zap. Cada entrada de log lleva campos contextuales. Puedes indexar y consultar estos campos en Loki.
Referencia de campos de log
Niveles de log
Define la variable de entorno
LOG_LEVEL para controlar el nivel de detalle.
Ejemplos de entradas de log
Ejecución de workflow iniciada:Sondas de salud
Flowker expone sondas de liveness y readiness compatibles con Kubernetes para el monitoreo operativo. Liveness indica si el proceso sigue en ejecución. Readiness indica si las dependencias (en particular, la base de datos) son alcanzables. Configura ambas en el nivel del clúster, como parte de tus manifiestos de despliegue. La orquestación puede entonces reiniciar los pods no saludables y quitar las instancias degradadas de los balanceadores de carga.
Dashboards de Grafana
La telemetría de Flowker se integra directamente con el stack de observabilidad de Lerian. Hay dashboards preconfigurados disponibles a través de la instancia de Grafana gestionada por Lerian.
Paneles recomendados
Rendimiento de solicitudes- Consulta:
sum(rate(http_server_duration_count{service_name="flowker"}[5m])) by (http_route) - Muestra las solicitudes por segundo, desglosadas por ruta
- Consulta:
histogram_quantile(0.95, sum(rate(http_server_duration_bucket{service_name="flowker"}[5m])) by (le, http_route)) - Muestra el tiempo de respuesta del percentil 95 por ruta
- Consulta:
sum(rate(http_server_duration_count{service_name="flowker", http_response_status_code=~"5.."}[5m])) / sum(rate(http_server_duration_count{service_name="flowker"}[5m])) - Muestra la proporción de respuestas 5xx
- Consulta de Loki:
{service_name="flowker"} |= "Starting workflow execution" | count_over_time([1m])
Para la configuración completa del stack de observabilidad, consulta Plataforma → Observabilidad.

