调校、循环、梳状、分布与空追踪记录
本课程介绍了以下分析模式:校准轨迹、环形轨迹、梳状轨迹、密度分布和空轨迹。
调校追踪记录
在诊断分布式系统时,通常会收集多个追踪记录和日志。不同的工具和追踪设置(如循环模式、顺序模式、文件大小限制)可能被使用,系统之间可能存在不同步的情况,且由于手动配置追踪或在系统间切换,各系统的追踪可能在不同时间启动。追踪记录中可能出现中断、循环以及截断等现象。当我们分析这样的追踪记录集合(跨相关性)时,通常会选择一条追踪记录或日志作为调校追踪记录。它用于衡量其他所有追踪记录的基准事实,例如追踪的开始与结束时间、问题发生的时间点。以下图示说明了这一场景:
循环追踪记录
这是一种明显的结构化追踪分析模式。有时问题描述中未提及循环性,或追踪元数据未能反映该特征。在这种情况下,可通过追踪文件大小(通常较大)和时间戳来检测循环追踪记录,例如以下一个 100 MB 的 CDF 追踪片段:
这类追踪记录的分析区域通常位于开头部分,因为一旦出现难以复现的异常问题,追踪就会立即停止:
梳状追踪记录
典型的软件追踪记录或日志(如来自进程监视器)按顺序列出多个进程和线程的消息。然而,这些列信息可能被拆分为独立的进程 ID 或线程 ID 列。对于任何关联线程也是如此,如下图所示:
我们由此类比多股编织结构,将这种分析模式称为梳状追踪记录。
密度分布
有时我们会发现某条追踪记录中某些消息存在聚集现象,而我们关心的是同一追踪记录内(内相关性)或另一条追踪记录中(跨相关性)是否存在类似的聚集。我们可以将这种聚集视为相对于全局语句密度模式的局部密度。因此,我们可能关注特定消息组的密度分布,如下图最小追踪图所示:
空追踪记录
空追踪记录是另一种需要补充的简单缺失模式,以完善软件日志分析模式体系。其范围从仅包含元追踪头信息(如有)的空消息列表,到本应有数千条消息却仅有寥寥数条的情况。这也可以看作是截断追踪记录、无活动以及组件缺失等模式的极端情况。需要注意的是,空追踪文件并不一定意味着文件大小为零,因为某些追踪架构可能会预先分配部分文件空间用于块数据写入。