paperbot · PL 论文追踪

全部论文 待读 收藏

P2 STEAM: Observability-Preserving Trace Sampling

STEAM:保持可观测性的追踪采样
FSE Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering2023匹配度 2/10 · 该论文关注分布式系统追踪采样与可观测性,使用GNN和逻辑子句,属于机器学习在系统/运维场景的应用,与用户核心方向(PL与AI交叉、静态分析、Agentic程序、浮点/Bayesian程序分析)几乎没有直接交集。虽然包含工程实现和工业落地,但不涉及静态分析、LLM/Agent或程序语言形式化。引用 18 inbox
Shilin He, Botao Feng, Liqun Li, Xu Zhang, Yu Kang, Qingwei Lin, Saravan Rajmohan, Dongmei Zhang
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出STEAM,一种基于GNN与逻辑子句的追踪采样方法,在分布式系统中保留关键长尾追踪,提升可观测性。

分布式系统与微服务中,追踪是理解内部状态的关键可观测性信号。为降低开销,现有框架多采用均匀采样,但追踪呈长尾分布,均匀采样会遗漏或稀有化少数关键追踪,损害可观测性。本文提出STEAM,一种保持可观测性的追踪采样方法。STEAM使用图神经网络进行追踪表示,并通过逻辑子句融入追踪比较的领域知识,随后采用可扩展的采样策略,优先选择彼此不相似的追踪,以保留更多信息。STEAM在OpenTelemetry上实现,包含约1.6K行Golang和2K行Python代码。在四个基准微服务应用及一个生产系统上的评估表明,其性能优于基线方法,且能在约4秒内处理15,000条追踪。

问题
分布式追踪的均匀采样在长尾分布下会遗漏关键追踪,无法充分保持系统可观测性。
方法
用GNN学习追踪表示,结合逻辑子句注入追踪比较的领域知识,并设计可扩展采样策略以优先保留彼此不相似的追踪。
评估
在四个基准微服务应用和一个生产系统上与基线方法比较,并测试处理速度(约4秒处理15,000条追踪)。
原文摘要(Abstract)

In distributed systems and microservice applications, tracing is a crucial observability signal employed for comprehending their internal states. To mitigate the overhead associated with distributed tracing, most tracing frameworks utilize a uniform sampling strategy, which retains only a subset of traces. However, this approach is insufficient for preserving system observability. This is primarily attributed to the long-tail distribution of traces in practice, which results in the omission or rarity of minority yet critical traces after sampling. In this study, we introduce an observability-preserving trace sampling method, denoted as STEAM, which aims to retain as much information as possible in the sampled traces. We employ Graph Neural Networks (GNN) for trace representation, while incorporating domain knowledge of trace comparison through logical clauses. Subsequently, we employ a scalable approach to sample traces, emphasizing mutually dissimilar traces. STEAM has been implemented on top of OpenTelemetry, comprising approximately 1.6K lines of Golang code and 2K lines of Python code. Evaluation on four benchmark microservice applications and a production system demonstrates the superior performance of our approach compared to baseline methods. Furthermore, STEAM is capable of processing 15,000 traces in approximately 4 seconds.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{HeFLZ0LR023,
  title = {STEAM: Observability-Preserving Trace Sampling},
  author = {Shilin He and Botao Feng and Liqun Li and Xu Zhang and Yu Kang and Qingwei Lin and Saravan Rajmohan and Dongmei Zhang},
  booktitle = {FSE},
  year = {2023},
  doi = {10.1145/3611643.3613881}
}