Linux Administration Question #019e3a4f
Qual é o componente de telemetria que representa uma série de eventos distribuídos relacionados que codificam o fluxo de requisição de ponta a ponta através de um sistema distribuído?
Métricas
Logs
Spans
Traces
Official Explanation / Community Explanations
Resumo: O rastreamento distribuído é um método usado para perfil e monitoramento de aplicações, especialmente aquelas construídas com arquitetura de microsserviços. Um trace é o componente de telemetria que representa o fluxo completo de ponta a ponta de uma requisição à medida que ela percorre um sistema distribuído. Ele captura o caminho da requisição através de múltiplos serviços, fornecendo visibilidade sobre gargalos de desempenho e erros.
Como funciona: Quando uma requisição entra em um sistema distribuído, ela recebe um ID de trace único. À medida que a requisição atravessa cada serviço, cada unidade de trabalho (ex.: chamada de API, consulta a banco de dados) é registrada como um span. Cada span tem um horário de início e fim, e está associado ao ID do trace. Spans podem ser aninhados para representar relações pai-filho. A coleção de todos os spans para um determinado ID de trace forma o trace completo, que pode ser visualizado como um diagrama de cascata mostrando a sequência e duração das operações.
Por que Traces está correto: Um trace é especificamente definido como o fluxo completo de ponta a ponta de uma requisição, composto por um ou mais spans. Ele codifica toda a jornada de uma requisição através de um sistema distribuído, tornando-o a resposta correta.
Por que as outras opções estão incorretas:
- Metrics: Métricas são agregações numéricas (ex.: contagem de requisições, percentis de latência) coletadas ao longo do tempo. Elas não capturam o fluxo de requisições individuais.
- Logs: Logs são mensagens discretas com timestamp registradas por aplicações. Embora úteis para depuração, não são estruturados para representar o fluxo de ponta a ponta da requisição.
- Spans: Um span representa uma única unidade de trabalho dentro de um trace (ex.: uma chamada de serviço individual). É um componente de um trace, não o fluxo completo em si.