使用轮询监控后端状态
Tempo 通过定期轮询后端来维护其状态信息。目前只有两个组件需要这些信息,因此也只有这两个组件会轮询后端:compactor 和 querier。
为了减少对后端的调用,只有一小部分 compactor 会实际列出所有块并构建所谓的租户索引。租户索引是一个位于 /<tenant>/index.json.gz
的 gzip 压缩 JSON 文件,其中包含该租户的每个块和压缩块的条目。此操作会每隔 blocklist_poll
时长执行一次。
所有其他 compactor 和所有 querier 则依赖于下载此文件、解压缩并使用其中包含的列表。同样,此操作会每隔 blocklist_poll
时长执行一次。
由于此行为,给定的 compactor 或 querier 通常会有一个过期的块列表。在正常操作期间,它最多会过期两倍于配置的 blocklist_poll
时长。
注意
有关配置轮询的详细信息,请参阅轮询配置。
使用仪表盘和告警监控轮询
如果您正在构建自己的仪表盘或告警,这里有一些相关指标
tempodb_blocklist_poll_errors_total
这是一个整体指标,记录轮询块列表时发生的任何错误。此指标的任何增加都应进行审查。tempodb_blocklist_poll_duration_seconds
柱状图,记录轮询整个块列表所需的时间(秒)。tempodb_blocklist_length
此组件看到的总块数。tempodb_blocklist_tenant_index_errors_total
这是一个整体指标,记录构建租户索引时发生的任何错误。此指标的任何增加都应进行审查。tempodb_blocklist_tenant_index_builder
一个 Gauge 指标,如果此 compactor 正在尝试构建租户索引,则值为 1,否则为 0。至少一个 compactor 的此值必须设置为 1,系统才能正常工作。tempodb_blocklist_tenant_index_age_seconds
上次加载的租户索引的年龄。now() 减去此值表示此组件的块列表视图有多旧。