Pregunta de entrevista para Ingeniero de software

¿Cuál es la diferencia entre logs, métricas y trazas, y cuándo tiras de cada una?

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

Las métricas son números agregados a lo largo del tiempo, baratos de almacenar, y sobre lo que alertas. Los logs son eventos discretos con detalle, lo que lees una vez que sabes más o menos dónde mirar. Las trazas siguen una petición a través de varios servicios y muestran dónde se fue el tiempo. En un incidente sueles ir de métricas para enterarte, trazas para localizar y logs para entender, así que a un sistema al que le falte cualquiera de las tres se le depura más lento de lo necesario.

Por qué lo preguntan los entrevistadores

Los entrevistadores preguntan esto para ver si has operado lo que construiste. Quieren la distinción de alertar con métricas y depurar con logs y trazas, que aprecies la diferencia de coste porque los logs se ponen caros a volumen, e idealmente el punto de que los logs estructurados con un id de correlación son lo que hace que las tres se puedan usar juntas. Las respuestas vagas sugieren a alguien a quien nunca han llamado de guardia.

Cómo estructurar tu respuesta

  • Define cada una en una línea por forma y coste.
  • Mapéalas sobre el flujo de trabajo de un incidente.
  • Insiste en el id de correlación que las une.
  • Menciona los límites de cardinalidad y de coste.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

Las métricas son contadores e histogramas agregados a lo largo del tiempo. Son baratas, son sobre lo que pongo alertas, y me dicen que algo va mal pero nunca por qué. Los logs son eventos individuales con contexto, caros a volumen, y lo que leo una vez que sé dónde mirar. Las trazas cosen una petición a través de cada servicio que tocó y muestran el tiempo en cada span, que es la forma más rápida de responder si el problema somos nosotros o una dependencia. En un incidente el flujo es básicamente métricas para enterarte, trazas para localizar y logs para entender. Lo que hace que funcionen juntas es un id de correlación propagado por todas las llamadas e incluido en cada línea de log estructurado, así que desde una traza lenta puedo saltar directo a las entradas de log exactas. El error que he cometido es de cardinalidad: una vez añadí el id de usuario como etiqueta de métrica y el número de series temporales explotó, lo que salió caro rápido. La cardinalidad alta va en trazas y logs, no en etiquetas de métricas.

¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.

Mira cómo funciona

Preguntas de seguimiento que puedes esperar

  • ¿Sobre qué alertarías en un servicio de API típico?
  • ¿Cómo mantienes los costes de logging bajo control a mucho volumen?
  • ¿Cómo afecta el muestreo a lo que puedes aprender de las trazas?

Más preguntas para Ingeniero de software

Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.

Predecir mis preguntas

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot