~/questoes/devops
Um span é a unidade fundamental de um trace distribuído que registra uma operação individual. Ele captura muito mais que apenas duração: inclui timestamps precisos, atributos customizados, erros e como se relaciona hierarquicamente com outras operações na mesma requisição.
A alternativa A está correta porque um span é um contentor rico de informações. Ele registra quando começou e terminou (timestamps), quanto tempo levou (duração), dados adicionais configurados pela aplicação (atributos customizados) e como se conecta a outros spans — se é pai, filho ou irmão na árvore de execução.
Timestamps e duração permitem rastrear quando operações ocorrem e quanto tempo levam. Atributos customizados adicionam contexto relevante (usuário, ID da requisição, versão). Relacionamentos hierárquicos mostram como uma operação se encaixa no fluxo total — essencial para reconstruir o caminho completo de uma requisição através de múltiplos serviços.
Reduz um span apenas a duração. Na prática, saber que uma operação levou 500ms sem contexto (qual operação? qual erro? qual usuário?) oferece muito pouca valor. Spans foram projetados justamente para capturar contexto rico além de tempo.
Spans rastreiam operações de aplicação, não infraestrutura. Dados de CPU e memória do servidor pertencem ao domínio de métricas de sistema e logs de infraestrutura — conceitos complementares mas distintos em OpenTelemetry.
Um span captura informações independentemente de sucesso ou falha. Ele registra dados de operação normalmente funcionando e, caso haja erro, adiciona também informações sobre esse erro — mas não limita seu escopo apenas a casos de falha.