Visão geral
A telemetria do Flowker é construída sobre três sinais:
Todos os sinais são exportados via OTLP (OpenTelemetry Protocol) para um collector de sua escolha.
Configuração
A telemetria é controlada por variáveis de ambiente.
Se
ENABLE_TELEMETRY=true estiver definido sem OTEL_EXPORTER_OTLP_ENDPOINT, o Flowker falhará ao iniciar.Rastreamento distribuído
Cada requisição HTTP e operação interna cria um span OpenTelemetry. Os spans são propagados por toda a cadeia de execução, de modo que uma única execução de workflow produz um trace conectado desde o handler HTTP até as etapas individuais do executor.
Convenção de nomenclatura dos spans
Os spans seguem o padrão<layer>.<resource>.<operation>:
Spans de execução
Spans de comandos de workflow
Spans de configuração de executor
Spans de configuração de provider
Spans de consulta
Métricas
O Flowker expõe métricas HTTP e de sistema automaticamente via o SDK OpenTelemetry. Nenhuma configuração adicional é necessária além de habilitar a telemetria.
Métricas HTTP (via otelfiber)
Coletadas por rota pelo middlewareotelfiber:
Cada métrica possui os labels:
http.method, http.route, http.status_code.
Métricas de sistema
Buckets de histograma
Os histogramas de latência utilizam os seguintes limites de bucket (em segundos):O Flowker não expõe um endpoint de scrape do Prometheus (
/metrics) diretamente. As métricas são exportadas via OTLP para o seu collector, que então encaminha para o Prometheus. Configure o seu OTLP collector para incluir um exporter prometheusremotewrite.Logs estruturados
O Flowker utiliza logs JSON estruturados via Zap. Cada entrada de log é enriquecida com campos contextuais que podem ser indexados e consultados 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 indica se o processo está em execução; readiness indica se as dependências (notadamente o banco de dados) estão acessíveis. Configure ambos no nível do cluster, como parte dos seus manifestos de deployment, para que a orquestração possa reiniciar pods não saudáveis e remover instâncias degradadas dos load balancers.
Dashboards do Grafana
A telemetria do Flowker se integra diretamente com a stack de observabilidade da Lerian. Dashboards pré-configurados estão disponíveis através da instância Grafana gerenciada pela Lerian.
Painéis recomendados
Throughput de requisições- Query:
sum(rate(http_server_duration_count{service_name="flowker"}[5m])) by (http_route) - Mostra requisições por segundo, separadas por rota
- Query:
histogram_quantile(0.95, sum(rate(http_server_duration_bucket{service_name="flowker"}[5m])) by (le, http_route)) - Mostra o tempo de resposta do percentil 95 por rota
- Query:
sum(rate(http_server_duration_count{service_name="flowker", http_status_code=~"5.."}[5m])) / sum(rate(http_server_duration_count{service_name="flowker"}[5m])) - Mostra a proporção de respostas 5xx
- Query Loki:
{service_name="flowker"} |= "Starting workflow execution" | count_over_time([1m])
Para a configuração completa da stack de observabilidade, consulte Plataforma → Observabilidade.

