Pyroscope Block 格式
本文档描述了 Pyroscope 如何在其 Block 中存储数据。每个 Block 属于一个租户,并通过唯一的 ULID 标识。一个 Block 中包含多个文件:
一个元数据文件
meta.json
,其中包含有关 Block 内容的信息,例如性能分析数据的时间范围。一个 TSDB 索引
index.tsdb
,用于将外部标签映射到 profiles 表中存储的 Profiling 数据。profiles.parquet
parquet 表,包含 Profiling 数据。symbols.symdb
文件,包含 Block 中存储的 Profiling 数据的符号信息。
数据模型
Block 中的数据模型与 Google 的 proto 定义 中的 pprof 线格式基本一致。
Profile 系列标签包含在摄取时收集的额外信息,可用于选择特定的 Profiling 数据。它们类似于 Prometheus/Loki 标签,典型的标签名称如 namespace
和 pod
,用于描述 Profiling 数据来自哪个工作负载。
摄取的每个 Profiling 数据都将添加到 profile 表中的新行。如果不同模型对应的表中缺少条目,也会插入。