Sto*_*fan 18
记录不是跟踪!
Logging
:
在设计大型应用程序时,您需要在机器之间进行良好且灵活的错误报告,以便集中收集日志数据.这是一个完美的用例,用于Logging Application Block
配置某些远程跟踪侦听器并将日志数据发送到中央日志服务器,该服务器将其日志消息存储在数据库,日志文件或其他任何内容中.如果您使用进程外通信,则会受到网络性能的限制,最佳情况是几千log/s.
Tracing
:
除了错误报告,您还需要跟踪您的程序流程以找出性能瓶颈的位置,更重要的是,当发生错误时您有机会了解您是如何实现的.在理想的世界中,每个函数都会使用函数持续时间,传递的参数以及您在函数中获得的距离来启用一些跟踪.
Gra*_*Lea 15
如果上下文正在跨分布式架构开发可观察性功能,那么人们通常会谈论指标、日志和跟踪。在这种情况下,跟踪指的是分布式跟踪。
分布式跟踪是一种特殊类型的遥测(类似于日志记录,但不同),通常通过仪器框架以高度自动化的方式生成。遥测数据从系统中的各个服务发送,并由中央服务(分布式跟踪器)聚合,中央服务能够将来自许多单独服务的遥测数据拼凑成针对进入系统的每个请求的单个跟踪。然后,它可以提供请求如何在系统中的服务中移动的时间线和图表。分布式跟踪的主要目的是调查整个分布式系统的性能下降、错误传播和依赖性交互。
在更传统的整体上下文中进行跟踪通常会着眼于跟踪应用程序内的各个函数调用,而分布式跟踪通常只关注服务之间的交互。函数调用级细节的遥测是可能的,但很少实现。
有关分布式跟踪的更多信息,可以在以下位置找到一个很好的介绍: https: //opentelemetry.lightstep.com/tracing/
Trace
是过滤程度最低的日志记录级别。每个日志记录语句都有一定的过滤级别:
trace
debug
warning
error
severe
例如。如果日志库配置为使用 level 进行日志记录,warning
则所有warning
,error
和severe
日志语句将把消息打印到日志输出。