菜单
开源

配置 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