配置 Pyroscope 磁盘存储
Pyroscope的ingester组件处理接收到的分析数据。首先,它将数据在内存中组织起来,所谓的“头块”。一旦头块的大小超过阈值,或者头块的时间超过了-pyroscopedb.max-block-duration
(默认3小时),ingester将块写入本地持久磁盘(有关块的布局详细信息,请参阅块格式)。每个块都由一个ULID标识,并存储在Grafana Pyroscope的数据路径-pyroscopedb.data-path=
(默认./data
)下。此目录按照以下方式组织
./<tenant-id>
:每个租户都有自己的子目录,包含以下子目录head/<block-id>
:包含仍在写入的当前数据。local/<block-id>
:包含已完成的块,这些块被保留在本地
对象存储
当配置对象存储时,完成的块将被上传到对象存储桶。
高磁盘利用率
为了避免丢失最新的数据,当Pyroscope检测到数据路径所在卷的磁盘空间接近用尽时,将删除最旧的块。当以下条件满足时,这种高利用率模式将每-pyroscopedb.retention-policy-enforcement-interval
激活一次:
- 卷总大小的小于
-pyroscopedb.retention-policy-min-disk-available-percentage=0.05
可用,并且 - 可用磁盘空间小于
-pyroscopedb.retention-policy-min-free-disk-gb=10
。
删除操作将如下记录
level=warn caller=pyroscopedb.go:231 ts=2022-10-05T13:19:09.770693308Z msg="disk utilization is high, deleted oldest block" path=data/anonymous/local/01GDZYHKKKY2ANY6PCJJZGT1N8