O caminho completo que uma requisição ou fluxo de dados percorre através do seu sistema — como um “GPS” que mostra cada etapa da jornada.
O que é um trace?
Trace = Sequência cronológica de operações (spans) que compõem uma transação ou fluxo de trabalho.
- É distribuído → pode passar por múltiplos serviços (Airflow → MinIO → ClickHouse).
- É hierárquico → tem operações pai e filho (ex:
etl_run → download_csv → transform).
- É correlacionável → tudo que aconteceu naquele fluxo tem o mesmo
trace_id.
- É visualizável → você vê o tempo de cada etapa, dependências e gargalos.
✅ Exemplos do mundo real:
- Rastreamento de encomenda → “Pedido saiu do centro, chegou na transportadora, saiu para entrega...”
- GPS de viagem → “Você passou por A, depois B, depois C — e gastou X minutos em cada.”
- Receita médica → “Consulta → exame → diagnóstico → tratamento.”
✅ Exemplos em sistemas de dados:
[Trace ID: abc123]
├─ [Span: etl_run] 0s - 5s
├─ [Span: download_csv] 0s - 1s
├─ [Span: transform] 1s - 3s
└─ [Span: insert_clickhouse] 3s - 5s
Por que traces são importantes?
Sem traces, você vê as peças — mas não vê como elas se conectam.
🚨 Problemas sem traces:
- Um ETL está lento → mas você não sabe qual etapa está causando o gargalo.
- Um erro aconteceu → mas não sabe em qual serviço ou função exatamente.