坏块
查询失败并包含以下错误消息:
error querying store in Querier.FindTraceByID: error using pageFinder (1, 5927cbfb-aabe-48b2-9df5-f4c3302d915f): ...
这可能表明后端存在坏(损坏)块。
如果 ingester 在将块刷新到后端时崩溃,块可能会损坏。
修复坏块
目前,如果后端块的 index 或 bloom-filter 损坏/删除,则可以修复该块。
要修复此类块,首先将其下载到可以运行 tempo-cli
的机器上。
接下来,根据哪个文件损坏/删除,运行 tempo-cli
的 gen index
/ gen bloom
命令。该命令将在所需位置(块文件夹中)从数据文件创建一个新的 index/bloom-filter。要查看此命令的所有选项,请参阅 CLI 文档。
最后,将生成的 index 或 bloom-filter 上传到对象存储后端对应块的文件夹下。
移除坏块
如果上述修复坏块的步骤发现数据文件已损坏,唯一剩余的解决方案是删除该块,这可能会导致一些数据丢失。
从后端移除块的机制取决于后端类型,但要移除的块位于
<tenant ID>/<block ID>