Visão geral
A telemetria do Flowker usa três sinais:
O Flowker exporta todos os sinais via OTLP (OpenTelemetry Protocol) para um collector de sua escolha.
Configuração
Variáveis de ambiente controlam a telemetria.
Se você definir
ENABLE_TELEMETRY=true sem OTEL_EXPORTER_OTLP_ENDPOINT, o Flowker não vai iniciar.Tracing distribuído
Toda requisição HTTP e operação interna cria um span do OpenTelemetry. Os spans se propagam por toda a cadeia de execução. Uma única execução de workflow produz um trace conectado, do handler HTTP até as etapas individuais do executor.
Convenção de nomenclatura de spans
Os spans seguem o padrão<layer>.<resource>.<operation>:
Spans de execução
Spans de comando de workflow
Spans de configuração de executor
Spans de configuração de provedor
Spans de consulta
Métricas
O Flowker expõe métricas HTTP e do sistema automaticamente via o SDK do OpenTelemetry. Você apenas precisa habilitar a telemetria.
Métricas HTTP (via otelfiber)
Coletadas por rota pelo middlewareotelfiber:
Cada métrica carrega labels:
http.request.method, http.route, http.response.status_code.
Métricas do sistema
Buckets de histograma
Histogramas de latência usam os limites de bucket padrão do SDK do OpenTelemetry. Os valores dehttp.server.duration estão em milissegundos, então os limites são:
O Flowker não expõe diretamente um endpoint de scrape do Prometheus (
/metrics). O Flowker exporta métricas via OTLP para seu collector, que então encaminha ao Prometheus. Configure seu collector OTLP para incluir um exporter prometheusremotewrite.Logging estruturado
O Flowker usa logging JSON estruturado via Zap. Toda entrada de log carrega campos contextuais. Você pode indexar e consultar esses campos no Loki.
Referência de campos de log
Níveis de log
Defina a variável de ambiente
LOG_LEVEL para controlar a verbosidade.
Exemplos de entradas de log
Execução de workflow iniciada:Probes de saúde
O Flowker expõe probes de liveness e readiness compatíveis com Kubernetes para monitoramento operacional. Liveness sinaliza se o processo ainda está em execução. Readiness sinaliza se as dependências (principalmente o banco de dados) estão acessíveis. Configure ambas no nível do cluster como parte dos seus manifestos de deploy. A orquestração pode então reiniciar pods não saudáveis e remover instâncias degradadas dos balanceadores de carga.
Dashboards do Grafana
A telemetria do Flowker se integra diretamente à stack de observabilidade da Lerian. Dashboards pré-configurados estão disponíveis por meio da instância do Grafana gerenciada pela Lerian.
Painéis recomendados
Throughput de requisições- Consulta:
sum(rate(http_server_duration_count{service_name="flowker"}[5m])) by (http_route) - Mostra requisições por segundo, detalhadas por rota
- Consulta:
histogram_quantile(0.95, sum(rate(http_server_duration_bucket{service_name="flowker"}[5m])) by (le, http_route)) - Mostra o tempo de resposta no percentil 95 por rota
- 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])) - Mostra a proporção de respostas 5xx
- Consulta Loki:
{service_name="flowker"} |= "Starting workflow execution" | count_over_time([1m])
Para a configuração completa da stack de observabilidade, veja Plataforma → Observabilidade.

