区块链警报最佳实践 |Quicknode 🤖 新推出:《Quicknode 》AI 烹饪指南 10个经过验证的AI编程教程agents 。
查看食谱
我们的通讯中包含丰富的免费资源、Quicknode 动态、Web3行业洞察等内容。
CLI、Admin API 、MCP、SDK ,以及支持 75 多个区块链的原生 AI 工具。由开发者打造,专为开发者服务。
涵盖 Python、Ruby 和 JavaScript 的最新代码示例。关于智能合约、NFT 和去中心化应用(dApp)的深入指南。
通过 SOC 2 II 类认证 · ISO 27001
简而言之: 有效的警报系统应在恰当的时间,向相关人员通报真实的问题,并提供足够的背景信息以便立即采取行动。 最重要的原则包括:针对症状(对用户造成的影响)而非原因(内部指标)触发警报;确保每条警报都可采取行动(如果无需采取任何措施,就不应触发警报);积极减少噪音(警报疲劳会导致真正的事发被忽略);并提供背景信息(出了什么问题、严重程度如何、谁受到了影响以及应如何处理)。 对于区块链应用,警报还必须涵盖链特有的状况,例如节点同步延迟、gas 价格飙升、交易确认延迟以及区块重组。
简明解释 告警是监控数据与人工干预之间的桥梁。监控系统会收集成千上万的指标和数百万条日志条目。告警机制则负责判断其中哪些信号值得在凌晨3点将人叫醒。如果处理得当,您的equipe 就能在用户察觉之前发现问题;如果处理不当,要么真正的故障会被海量噪音淹没(告警过多),要么关键问题一直未被发现,直到用户抱怨连连(告警过少)。
一个调校得当的告警系统的目标是“零意外”:每次生产环境中的故障发生前都应有告警提示,而每次告警都应预示着实际(或即将发生)的故障。那些在没有相应问题的情况下触发的告警,会让你的equipe ( )逐渐学会忽略它们。而那些在没有先前的告警提示下就发生的问题,则意味着你的监控系统存在漏洞。
监控和告警有什么区别? 监控和告警虽有关联,但有所区别。监控是指持续收集描述系统运行状况的指标、日志和跟踪信息。告警则是位于监控之上的一个层,负责判断哪些信号需要人工响应,并将它们转发给相关人员。可以进行监控而不进行告警,但如果没有良好的监控作为基础,就无法实现有效的告警。关于这方面的数据部分,请参见
监控区块链基础设施
以及更广泛的实践,即
.
关注症状,而非病因 告警中最重要的一条原则是:应基于症状(用户所经历的情况)而非原因(系统内部发生的情况)触发告警。基于症状的告警会在从用户角度来看出现故障时触发;而基于原因的告警则会在某个内部指标超过阈值时触发,无论用户是否受到影响。
像“节点 CPU 使用率超过 90%”这样的基于原因的告警,可能会在正常的批处理作业期间触发——尽管该作业会占用大量 CPU 资源,但并不会影响用户体验。此类告警会产生“告警噪音”,从而削弱对告警系统的信任。 而基于症状的警报(例如“p99 RPC 响应时间超过 500 毫秒且持续超过 5 分钟”)仅在用户实际遇到响应缓慢时才会触发,无论其原因究竟是 CPU 负载过高、同步问题还是网络拥塞。
这并不意味着你永远不应该监控内部指标。内部指标对于仪表盘、趋势分析和事件后调查都很有价值。但除非这些指标与对用户造成的影响直接相关,否则不应触发警报。请将警报保留给那些表明真实用户正在遭遇或即将遭遇服务中断的信号。
基于症状的警报与基于原因的警报有什么区别? 基于症状的警报是根据用户实际体验触发的,而基于原因的警报则是根据可能影响也可能不影响用户的内部指标触发的。下表对比了这两种警报,以便您决定哪些信号应触发通知,哪些应保留在仪表盘上。
方面
基于症状的警报
基于原因的警报
触发器已开启
对用户的影响
内部指标阈值
示例
第99页:RPC延迟超过500毫秒,持续5分钟
节点 CPU 使用率超过 90%
假阳性风险
低
高
最适合用于
让人豁然开朗的页面
仪表盘和调查背景
让警报具有可操作性 每条警报都应有明确且有据可查的响应措施。如果警报触发后,值班工程师的第一反应是“我该怎么处理这个?”,那么这条警报就无法采取有效行动。
每条警报应包含以下内容:问题描述(对症状的清晰描述)、定量信息(被触发的阈值及当前数值)、影响范围(受影响的endpoint 、链或服务)、持续时间(该状况已持续多长时间),以及运行手册的链接(用于诊断和解决问题的分步指南)。
运行手册是每个警报必不可少的文档。运行手册应引导响应人员逐步了解警报的常见原因、用于识别根本原因的诊断步骤、针对每种常见原因的修复措施,以及升级标准(即何时需要通知其他人)。维护良好的运行手册能显著缩短事件响应时间,并使经验较少的equipe 成员也能有效地履行值班职责。
减少警报干扰 警报疲劳是高效警报系统面临的最大威胁。当团队每天收到数十条警报,其中大部分是误报或低优先级警报时,他们就会开始忽略所有警报,包括关键警报。
医疗保健领域的研究(在该领域,警报疲劳已被公认为一个患者安全问题)表明,多达99%的警报可能是误报,这导致临床医生将其关闭或忽略。
减少噪音的策略包括:提高频繁触发且无需采取行动的警报的阈值;添加持续时间要求(仅当条件持续5分钟以上时才触发警报,而非因短暂峰值而触发);对相关警报进行去重(如果同一服务提供商下的五个端点都运行缓慢,则仅发送一条警报,而非五条);实施严重性分级 (关键警报立即发送页面通知;警告级警报发送至 Slack 频道,供工作时间内审查),以及定期审查并停用那些始终被忽略或无需采取行动即可解决的警报。 一个有用的做法是审查过去一个月内触发的每条警报,并自问:“这条警报是否促成了有用的行动?”如果答案始终是否定的,则应删除或调整该警报。
区块链专用警报 区块链应用程序除了需要标准的应用程序和基础设施警报外,还需要能够覆盖链级状况的警报。
当您的节点(或服务提供商的节点)与区块链末端之间的同步延迟超过可配置的区块数时,应触发警报。对于Ethereum ,当落后 3 个及以上区块时触发警报;对于Solana ,当落后 10 个及以上时槽时触发警报。同步延迟意味着您的应用程序正在提供过时的数据。
Gas 价格飙升会影响任何提交交易的应用程序。当基础费用超过某个阈值(该阈值会导致交易成本高得不符合您的使用场景经济性)时,系统会发出警报。这使您的应用程序能够主动向用户发出警告、推迟非紧急交易,或调整 Gas 参数。
当提交的交易未在预期时间内得到确认时,系统会触发“交易卡住”警报。在正常情况下,如果交易在Ethereum 上挂待处理超过 10 分钟,很可能是因为 gas 价格不足,需要提高手续费后重新提交。
当应用程序所依赖的区块链上发生区块重组时,重组检测警报会通知您。如果您的数据管道在区块链末端处理区块时未等待最终确认,那么重组意味着最近处理的数据可能不正确,需要进行更正。
提供商健康警报用于监控您的 RPC 提供商的整体健康状况。如果该提供商的错误率骤升至超过您的阈值,您的应用程序应做好切换到备用提供商或进入降级服务状态的准备mode 。
哪些区块链状况应触发警报? 除了标准的基础设施警报外,区块链应用还需要针对链状态进行调整的警报。下表列出了常见的条件及阈值示例。诸如重组(reorgs)之类的条件需要特殊处理,相关内容我们在“什么是区块链重组 ”一节中进行了说明;而同步延迟则直接关系到节点的可靠性 。
状况
阈值示例
为何这很重要
节点同步延迟
3个及以上区块(Ethereum )或10个及以上插槽(Solana )
您提供的数据已过时
汽油价格飙升
Base 超出您经济承受能力的费用
交易成本过高
卡住的交易
已挂起超过10分钟
价格可能偏低,需要重新提交
链重组
比你的确认次数更深层
最近处理过的数据可能有误
服务提供商错误率
高于你的基准线
是时候切换到备用系统了
值班最佳实践 只有当有人能及时、妥善地响应警报时,警报系统才有效。 建立健全的值班机制,需要制定公平的轮值表,将负担在equipe 之间合理分配;建立清晰的升级流程,确保复杂问题能迅速转交至合适的专家;配备充足的工具,使值班工程师能够即时访问仪表盘、日志和部署工具;开展事后复盘,以此推动系统和告警配置的改进;以及制定相应的薪酬或休假政策,以认可值班所带来的实际成本。
告警和高可用性是如何协同工作的? 警报会在系统出现故障时通知您,而高可用性则能在您采取应对措施的同时确保服务持续运行。这两者相辅相成:当您已准备好备用系统随时接管时,服务提供商的健康状态警报才能发挥最大作用。请将警报机制与高可用性 设计、自动故障转移 以及能够支持快速响应的基础设施冗余 相结合。
Quicknode 如何实现高效的警报功能 Quicknode其内置分析功能为区块链基础设施告警提供了指标基础。仪表盘上可查看请求量、响应延迟、错误率以及方法级别的详细数据,这些数据可用于设置告警阈值。对于拥有自定义告警基础设施的团队,Quicknode 的专用Clusters 可导出与 Prometheus 兼容的指标,这些指标可直接与 Alertmanager、Grafana Alerts、PagerDuty 或您技术栈中的任何告警系统集成。
Quicknode Streams 提供数据传输健康指标,可针对数据管道问题(如传输失败、处理延迟和目标错误)触发警报。结合 RPC 层的警报功能,这使团队能够全面覆盖其实时 API 访问和流式数据基础设施。
延伸阅读
常见问题解答
什么样的警报才具有可操作性? 当响应人员确切知道该如何处理时,警报才具有可操作性。警报应说明症状、已超出的阈值及当前数值、受影响的范围、该状况持续的时间,并附有包含诊断和修复步骤的操作手册链接。
什么是警报疲劳? 警报疲劳是指当equipe 接收到的警报过多(尤其是误报)时,系统开始忽略所有警报(包括关键警报)的现象。提高阈值、添加持续时间要求、去除重复警报以及使用严重性级别等措施均可缓解这一问题。
是否应该对 CPU 使用率设置告警? 通常不需要设置页面通知。CPU 是一项基于原因的指标,在正常工作期间经常会出现突增,但不会影响用户。将其保留在仪表盘中,而对于用户可见的症状(如错误率升高或延迟增加)则应设置页面通知。
如何对区块链重组进行预警? 在您依赖的链上配置重组检测功能,并在重组深度超过您设定的确认数时触发警报。如果您的处理管道处理的是区块链最前沿的区块,那么重组意味着需要对近期数据进行更正。有关相关风险,请参阅“区块链常见故障模式” 。
警报应采用哪些严重性级别? 一个简单而有效的模式分为两个级别:关键警报会立即发送页面通知,而警告警报则发送到一个频道,供工作时间内进行审查。这样可以确保页面通知仅用于真正需要紧急人工响应的问题。
// Publisher
Quicknode
更新于2026年6月2日
2026年3月20日 — 阅读时间9分钟