lápizPastel
Desde el punto de vista terminológico y en general, ¿cuál es la diferencia entre un tracing
y un logging
?
¡Gracias!
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/
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
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.
Registro de eventos frente a seguimiento lo resume muy bien.
– Filburto
2 de diciembre de 2014 a las 8:28