Log errors and avoid sending too many emails(错误日志记录与邮件发送频率控制)

该工作流旨在自动捕获并记录系统错误,同时通过数据库统计控制错误通知的发送频率,以避免邮件警报的过多干扰。它将错误信息保存至Postgres数据库,并支持灵活集成到现有流程中。此外,工作流提供了自动清理错误日志的功能,确保开发环境的整洁,适合需要集中管理错误与监控通知的自动化系统,提升错误处理的效率与响应能力。

流程图
Log errors and avoid sending too many emails(错误日志记录与邮件发送频率控制) 工作流程图

工作流名称

Log errors and avoid sending too many emails(错误日志记录与邮件发送频率控制)

主要功能和亮点

该工作流设计用于捕获和记录系统中的错误事件,同时通过数据库统计控制错误通知的发送频率,避免因错误过多而导致邮件警报泛滥。它支持将错误详细信息保存到Postgres数据库中,并可配置为主错误处理器或作为子工作流集成到现有错误处理流程中。此外,提供了错误日志的自动清理功能,方便开发环境维护。

解决的核心问题

  • 自动记录所有错误,确保错误信息完整保存,便于后续排查。
  • 限制错误通知发送频率,防止因错误激增导致过多邮件干扰。
  • 支持灵活集成,适配不同的错误处理策略。
  • 提供开发环境下的错误日志清理机制,保持数据库整洁。

应用场景

  • 任何需要集中管理和监控系统错误的自动化流程。
  • 避免因短时间内频繁错误触发大量警报的业务系统。
  • 开发和测试阶段需要定期清理错误日志的环境。
  • 作为大型自动化系统错误处理链中的一环,统一错误日志记录。

主要流程步骤

  1. Error Trigger:捕获工作流执行中的错误事件。
  2. Insert Log:将错误详情(包括错误信息、堆栈、触发节点、调用URL等)写入Postgres数据库指定表。
  3. Count for 5 minutes:查询过去5分钟内记录的错误数量。
  4. If there is no logs in 5 minutes:判断过去5分钟内是否有错误记录,以控制是否发送通知。
  5. Insert your error handling logic after this:为用户预留错误处理逻辑插入点。
  6. CleanUp execution:清理执行状态,确保工作流可正常结束。
  7. Sometimes... just cleanup + Truncate Log Database:通过手动触发,实现错误日志数据库的清理操作。

此外,工作流中还预置了可选的邮件发送节点(Principal E-Mail、Fallback E-Mail)和移动推送通知节点(Push mobile notification),可根据需要启用,实现多渠道的错误提醒。

涉及的系统或服务

  • Postgres数据库(通过Postgres节点操作,记录与查询错误日志)
  • SMTP邮件服务(邮件发送节点,发送错误通知,节点默认禁用)
  • Pushover推送服务(移动端推送通知,节点默认禁用)

适用人群或使用价值

  • DevOps工程师和自动化运维团队,帮助在自动化流程中实现高效、可控的错误监控与告警。
  • 开发者在开发和测试阶段管理错误日志,避免警报泛滥且保持环境整洁。
  • 企业IT管理人员希望通过集中日志和智能告警减少误报,提高响应效率。
  • 任何需要稳定错误记录且避免邮件骚扰的自动化系统用户。

该工作流由Davi Saranszky Mesquita设计,详细文档和示例DDL附带,方便用户快速部署并根据自身需求调整。通过合理配置Postgres表和邮件推送服务,即可实现高效的错误管理和告警节流。