¿Cuál es la diferencia entre rastreo y registro?

4 minutos de lectura

avatar de usuario de pencilCake
lápizPastel

Desde el punto de vista terminológico y en general, ¿cuál es la diferencia entre un tracing y un logging ?

¡Gracias!

Avatar de usuario de Stopfan
Ventilador de parada

Logging no es Tracing!

Logging

Cuando diseña una aplicación grande, necesita tener informes de errores buenos y flexibles, quizás en todas las máquinas, para recopilar datos de registro de forma centralizada. Ese es un caso de uso perfecto para el Logging Application Block donde configura algún oyente de seguimiento remoto y envía los datos de registro a un servidor de registro central que almacena sus mensajes de registro en una base de datos, archivo de registro o lo que sea. Si utiliza comunicación fuera de proceso, ya está limitado por el rendimiento de la red, que en el mejor de los casos es de varios miles de registros/s.

Tracing

Además del informe de errores, también necesita rastrear el flujo de su programa para averiguar dónde están los cuellos de botella en el rendimiento; aún más importante, cuando ocurre un error, tiene la oportunidad de averiguar cómo llegó allí. En un mundo ideal, cada función tendría algún seguimiento habilitado con la duración de la función, los parámetros pasados ​​y qué tan lejos llegó a su función.

Si el contexto está desarrollando una capacidad de Observabilidad a través de un arquitectura distribuida, es común que las personas hablen sobre métricas, registros y seguimiento. En este contexto, rastrear se refiere a rastreo distribuido.

El rastreo distribuido es un tipo especializado de telemetría (similar al registro, pero diferente) y generalmente se produce de manera altamente automatizada a través de marcos de instrumentación. La telemetría se envía desde los servicios individuales del sistema y se agrega mediante un servicio central (un rastreador distribuido), que puede unir la telemetría de muchos servicios individuales en un único rastreo para cada solicitud que ingresó al sistema. Luego puede proporcionar una línea de tiempo y un gráfico de cómo se movió una solicitud a través de los servicios en el sistema. Los propósitos principales de los seguimientos distribuidos son investigar las degradaciones del rendimiento, la propagación de errores y las interacciones de dependencia en los sistemas distribuidos.

Mientras que el rastreo en un contexto monolítico más tradicional generalmente buscaría rastrear llamadas de funciones individuales dentro de una aplicación, el rastreo distribuido generalmente solo se ocupa de las interacciones entre servicios. La telemetría de detalles de nivel de llamada de función es posible pero rara vez se implementa.

Para obtener más información sobre el rastreo distribuido, se puede encontrar una buena introducción en: https://opentelemetry.lightstep.com/tracing/

Avatar de usuario de Boris Pavlović
Boris Pavlovic

Trace es el nivel de registro menos filtrado. Cada declaración de registro tiene un nivel de filtrado:

  • trace
  • debug
  • warning
  • error
  • severe

Por ejemplo. si la biblioteca de registro está configurada para iniciar sesión con nivel warning entonces todo warning, error y severe Las declaraciones de registro imprimirán mensajes en la salida de registro.

  • Creo que estos términos no son del todo estándar debido al hecho de que muchos proveedores y/o desarrolladores de software usan esos términos en formas (y contextos) completamente diferentes. Su descripción encaja exactamente bien con bibliotecas como log4net, sin embargo, eso no necesariamente se aplica a todo. Lo que creo que es muy común es que el seguimiento es el proceso de “obtener/recibir” datos de un evento/operación, mientras que el registro es el proceso de generar (enviar o almacenar) ese seguimiento

    – León

    2 de diciembre de 2014 a las 8:42


  • Sí, tienes razón. No estoy hablando de rastrear, sino de rastrear el nivel de registro. Mi suposición es que la pregunta no es sobre el rastreo sino sobre el nivel de rastreo, ya que se pone en el mismo contexto. He votado a favor de la respuesta de Stopfan para que pueda estar en la parte superior. el mio es solo un anexo

    – Boris Pavlović

    2 de diciembre de 2014 a las 15:23


  • Entonces simplemente está diciendo que el rastreo es un subconjunto del registro. Aunque uno con un paradigma diferente en mente. ¿Bien?

    – mfaani

    13 de diciembre de 2018 a las 19:58

  • Si bien esto es cierto. también es importante tener en cuenta el “registro de nivel de seguimiento” != “registro de seguimientos”

    – Lucas Martillo

    9 de septiembre de 2019 a las 16:18

  • Aprecio la respuesta, pero desafortunadamente esto es engañoso. Como han dicho otros comentarios, da la impresión de que el rastreo es solo un subconjunto del registro, o de alguna manera análogo. La palabra TRACE se refiere a “STACK TRACE”, como en: inicie sesión con tanto detalle que me muestre un stacktrace completo.

    – runderworld

    26 de junio de 2021 a las 20:08


avatar de usuario de zsery
zsery

El registro también sirve para monitorear el rendimiento. No es necesario que sea cierto que solo el rastreo puede averiguar dónde están los cuellos de botella de rendimiento. Ambos pueden funcionar en modo distribuido.

¿Ha sido útil esta solución?