Pergunta de entrevista para Engenheiro de Software

Qual é a diferença entre logs, métricas e traces, e quando você recorre a cada um?

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

Métricas são números agregados ao longo do tempo, baratos de armazenar, e é neles que você alerta. Logs são eventos discretos com detalhe, o que você lê depois de saber mais ou menos onde olhar. Traces seguem um request por vários serviços e mostram para onde o tempo foi. Num incidente você normalmente vai de métricas para perceber, traces para localizar, logs para entender, então um sistema sem um dos três torna a depuração mais lenta do que precisa ser.

Por que os entrevistadores perguntam isso

Os entrevistadores perguntam isso para ver se você operou o que construiu. Eles querem a distinção de alertar em métricas e depurar com logs e traces, uma noção da diferença de custo já que logs ficam caros em volume, e idealmente o ponto de que logs estruturados carregando um id de correlação são o que torna os três usáveis juntos. Respostas vagas sugerem alguém que nunca foi acionado de plantão.

Como estruturar sua resposta

  • Defina cada um em uma linha por formato e custo.
  • Mapeie eles no fluxo de trabalho de um incidente.
  • Reforce o id de correlação que amarra os três.
  • Mencione cardinalidade e limites de custo.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Métricas são contadores e histogramas agregados ao longo do tempo. São baratas, são onde eu ponho alertas, e me dizem que algo está errado mas nunca por quê. Logs são eventos individuais com contexto, caros em volume, e o que eu leio quando já sei onde olhar. Traces costuram um request por todo serviço que ele tocou e mostram o tempo em cada span, que é o jeito mais rápido de responder se o problema é nosso ou de uma dependência. Num incidente o fluxo é basicamente métricas para perceber, traces para localizar, logs para entender. O que faz os três funcionarem juntos é um id de correlação propagado por toda chamada e incluído em toda linha de log estruturado, para que de um trace lento eu pule direto para as entradas de log exatas. O erro que eu já cometi foi cardinalidade: uma vez eu adicionei id de usuário como label de métrica e a contagem de séries temporais explodiu, o que ficou caro rápido. Cardinalidade alta pertence a traces e logs, não a labels de métrica.

Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.

Veja como funciona

Perguntas de acompanhamento que você pode esperar

  • Em que você alertaria para um serviço de API típico?
  • Como você mantém os custos de log sob controle em alto volume?
  • Como a amostragem afeta o que você consegue aprender com traces?

Mais perguntas para Engenheiro de Software

Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.

Prever minhas perguntas

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot