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