监控与警报
验证器在指定的 --metrics
参数的端口上暴露指标。默认端口为 9090
,但可以选择任何有效的端口。
我们建议使用 Prometheus 来抓取这些指标,并使用 Grafana 来可视化它们,使用这个仪表板 JSON 模板,如下所示。这个仪表板的好处在于它可以同时显示多个验证器。截图显示了按链或 Kubernetes Pod 分组的指标。
信息
如果以 Docker 镜像运行,请确保端口转发指标端点端口。例如,要将本地端口 80 转发到端口 9090,请在 docker run
命令中添加以下标志:-p 9090:80
指标
仪表板模板包括以下指标。
指标 | 描述 |
---|---|
hyperlane_latest_checkpoint | 验证器观察到的最新检查点 |
hyperlane_block_height | 代理连接的 RPC 节点的区块高度。此指标会定期更新,与验证器的检查点索引功能独立。 |
hyperlane_contract_sync_liveness | 在验证器的索引循环的每次迭代中报告的时间戳。 |
hyperlane_contract_sync_block_height | 验证器在索引循环中观察到的区块高度。 |
hyperlane_cursor_current_block | 验证器内部游标观察到的区块高度。 |
hyperlane_span_events_total{agent="validator", event_level="error"} | 记录的错误总数,以 30 分钟的增量可视化("错误日志计数差异")。如果 此指标在过去一小时内的导数超过 1,则至少需要发出低严重性警报。请注意,仪表板查询按 Kubernetes Pod 名称对指标进行分组,因此如果您不在 Kubernetes 环境中运行,可能需要调整此查询。 |
hyperlane_span_events_total{agent="validator", event_level="warn"} | 记录的警告总数,以 30 分钟的增量可视化("警告日志计数差异")。如果此指标在过去一小时内的导数超过 1,则至少需要发出低严重性警报。请注意,仪表板查询按 Kubernetes Pod 名称对指标进行分组,因此如果您不在 Kubernetes 环境中运行,可能需要调整此查询。 |
图表
仪表板模板包括以下图表。
图表 | 描述 |
---|---|
已签名检查点差异 (30m) | 验证器观察到的最新检查点,以 30 分钟的增量可视化。如果尽管 最新区块差异 (30m) 稳定,但值不是正数,则可能意味着没有新消息,或者验证器停止签署检查点。 |
观察到的差异 - 处理的检查点 | 验证器在区块链上观察到的检查点与验证器签署和发布的检查点之间的差异。此图表大多数时间应为零,偶尔会出现短暂的正值。如果它在较长时间内为正,则意味着验证器在签署和发布检查点方面存在问题。 |
最新区块差异 (30m) | 代理连接的 RPC 节点的区块高度,以 30 分钟的增量可视化("最新区块差异")。如果此指标没有增加,则 RPC 可能不健康,需要更换。 |
合同同步存活性 | 直接呈现指标 hyperlane_contract_sync_liveness 。图表应始终上升。如果保持不变,则表示存在问题。如果图表包含多个链的指标,它们将重叠显示。当没有任何问题时,这是正常的。如果存在问题,偏差将会显现。 |
合同同步区块差异 (30m) | 以 30 分钟的增量呈现指标 hyperlane_contract_sync_block_height 。它应大致匹配过去 30 分钟内链产生的区块数量。如果该指标在任何方向上显著偏离或变为零,则应进行调查。 |
游标区块差异 (30m) | 以 30 分钟的增量呈现指标 hyperlane_cursor_current_block 。它应大致匹配过去 30 分钟内链产生的区块数量。如果该指标在任何方向上显著偏离或变为零,则应进行调查。 |
错误日志计数差异 (30m) | 记录的错误总数,以 30 分钟的增量可视化("错误日志计数差异")。如果此指标在过去一小时内的导数超过 1,则至少需要发出低严重性警报。请注意,仪表板查询按 Kubernetes Pod 名称对指标进行分组,因此如果您不在 Kubernetes 环境中运行,可能需要调整此查询。 |
警告日志计数差异 (30m) | 记录的警告总数,以 30 分钟的增量可视化("警告日志计数差异")。如果此指标在过去一小时内的导数超过 1,则至少需要发出低严重性警报。请注意,仪表板查询按 Kubernetes Pod 名称对指标进行分组,因此如果您不在 Kubernetes 环境中运行,可能需要调整此查询。 |
警报
所有上述指标可以组合以创建警报,从而最小化误报。一些示例关键警报:
hyperlane_latest_checkpoint
停止增加,但hyperlane_block_height
仍在增加,并且error
和warn
日志计数在过去 6 小时内也在增加hyperlane_block_height
在过去 30 分钟内没有增加
如果您收到警报,请始终检查日志以了解可能的问题。