追踪和遥测
指标、日志、追踪和性能剖析构成了可观测性的四大支柱。将这四大支柱关联起来有助于全面了解您的应用和基础设施。
指标
指标提供了系统状态的高级视图。指标是告警的基础,因为指标是数值,可以与已知阈值进行比较。告警持续在后台运行,当值超出预期范围时触发。这通常是出现问题的第一个迹象,也是开始发现问题的起点。指标表明有问题正在发生。
日志
日志提供了单个进程活动的审计追踪,用于创建信息上下文。日志作为原子事件,详细说明了应用中服务发生的情况。指标是定量的(数值)和结构化的,而日志是定性的(文本)和非结构化或半结构化的。它们提供了更高程度的细节,但也伴随着产生大量数据。日志让您了解应用发生了什么。
追踪
追踪通过告诉您数据路径中每个步骤或操作发生了什么,进一步补充了可观测性图景。追踪提供了地图——问题的“在哪里”。追踪提供了一个图形化表示,显示数据流路径中的每个步骤完成所需的时间。例如,HTTP 请求、数据库查找或对第三方服务的调用需要多长时间。它可以显示请求从何处发起和结束,以及系统如何响应。这些数据有助于您定位问题区域并评估其影响,通常是在如果没有这种追踪请求流的能力就无法预料或找到的地方。
性能剖析
性能剖析有助于您了解应用如何利用 CPU 时间和内存等计算资源。这有助于识别特定的代码行或函数,从而进行优化并提高性能和效率。
为什么选择追踪?
指标本身不足以找到根因并解决复杂问题。日志也是如此,日志可以包含大量信息,但缺乏复杂环境中不同组件之间交互和依赖关系的上下文。可观测性的每个支柱——指标、日志、追踪、性能剖析——在查找问题根因方面都有其独特的优势。为了充分发挥可观测性策略的价值,您需要能够将它们关联起来。
追踪具有独特的能力,可以显示服务之间的关系。它们有助于识别哪些服务是您服务的上游服务,这有助于您了解哪些服务可能受到您服务中问题的不利影响。追踪还有助于识别哪些服务是您服务的下游服务。这很有价值,因为您的应用依赖于其下游服务,而这些服务的问题可能是您的服务报告错误率或延迟增加的原因。例如,您可以直接看到发生故障的数据库以及所有受影响的故障边缘端点。
使用追踪和 exemplars,您可以从一个指标数据点跳转到相关的追踪。
或者从追踪到日志
反之亦然,从日志到追踪。