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
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 funcionaPerguntas 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