跟踪和日志记录有什么区别



从术语的角度来看,一般来说,tracinglogging有什么区别?

谢谢!

Logging不是Tracing

Logging

在设计大型应用程序时,您需要有良好且灵活的错误报告 - 可能跨计算机 - 以集中方式收集日志数据。对于配置一些远程跟踪侦听器并将日志数据发送到中央日志服务器(将其日志消息存储在数据库、日志文件或其他任何内容中的Logging Application Block来说,这是一个完美的用例。如果使用进程外通信,则网络性能已经受到限制,在最好的情况下是数千个日志/秒。

Tracing

除了错误报告之外,您还需要跟踪程序流程以找出性能瓶颈的位置;更重要的是,当发生错误时,您有机会找出您是如何到达那里的。在理想情况下,每个函数都会启用一些跟踪,包括函数持续时间、传递的参数以及您进入函数的程度。

如果上下文正在跨分布式体系结构开发可观测性功能,则人们通常会谈论指标、日志和跟踪。在此上下文中,跟踪是指分布式跟踪

分布式跟踪是一种特殊类型的遥测(类似于日志记录,但不同(,通常通过检测框架以高度自动化的方式生成。遥测数据从系统中的各个服务发送,并由中央服务(分布式跟踪程序(聚合,该中心服务能够将来自许多单个服务的遥测数据拼凑到进入系统的每个请求的单个跟踪中。然后,它可以提供请求如何通过系统中的服务的时间线和图形。分布式跟踪的主要目的是调查整个分布式系统中的性能下降、错误传播和依赖关系交互。

在更传统的整体式上下文中进行跟踪通常着眼于跟踪应用程序中的各个函数调用,而分布式跟踪通常只关注服务之间的交互。函数调用级详细信息的遥测是可能的,但很少实现。

有关分布式跟踪的详细信息,可以在以下位置找到很好的介绍:https://opentelemetry.lightstep.com/tracing/

>Trace是过滤最少的日志记录级别。每个日志记录语句都有一个过滤级别:

  • trace
  • debug
  • warning
  • error
  • severe

例如,如果日志记录库配置为使用级别 warning 进行日志记录,则所有 warningerrorsevere 日志记录语句都将消息打印到日志记录输出。

日志记录也用于性能监视。不需要为 true,只有跟踪才能找出性能瓶颈的位置。两者都可以在分布式模式下工作。

最新更新