CaT: Content-aware Tracing and Analysis for Distributed Systems

用strace/ebpf做tracing,同时采集数据内容。用哈希计算内容的相似性,进行异常/正常的对比。

CaT’s Design and Architecture

CaTracer

主要跟踪以下信息: 连接/接受(连接/接受一个套接字),发送(SND)/接收(RCV)(从套接字写/读),打开(打开一个文件),以及写(WR)/读(RD)(从一个文件描述写/读)

生成的一个Log的例子: <type:SND, pid:123, socket:TCP, src:node1, dst:node2, size:12, message:“Hello world!”>

Trace Processor。 用来把上面的Log改一改喂进Falcon里面。

HB Model Generator。 用的也是Falcon的东西,生成happens-before关系。

CaSolver。 利用哈希算出相似关系。

Visualizer。 可视化

CaT’s Algorithms and Prototype

Content-aware tracing

CatStrace。 基于命令行的strace改的。

CatBpf。 用go写的。

Similarity-based analysis

分成两步

  • the signatures computation
    • min-wise hashing
  • the processing of events’ signatures
    • 用Locality Sensitive Hash减少对比空间 + 用Jaccard index计算结果

Visual representation

染相同的颜色代表内容接近。