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

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

Tags

错误日志告警节流

工作流名称

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表和邮件推送服务,即可实现高效的错误管理和告警节流。

推荐模板

GitLab 代码变更自动审查与评论生成工作流

该工作流通过Webhook监听GitLab合并请求的评论事件,自动获取代码变更并解析差异。利用智能语言模型对每处变更进行审查与评分,生成专业的审查建议,并将结果以评论形式发布回GitLab,形成全自动化的代码评审流程。此流程显著提高了代码审查效率与质量,降低了人为遗漏风险,适用于软件开发团队的CI/CD流程及开源项目的维护。

代码审查自动化工作流

Create, update, and get an issue on Taiga

该工作流旨在实现Taiga项目管理平台上任务(Issue)的自动化管理,包括创建、更新和获取任务信息。用户可通过一次手动触发,完成任务的全流程操作,显著提高项目管理效率,减少手动操作的繁琐和错误。同时,适合软件开发团队、产品经理等需要快速同步和管理任务信息的用户,确保数据的及时更新和准确性。

Taiga自动化任务管理

PagerDuty 与 Jira 事件闭环及 Mattermost 通知自动化工作流

该工作流自动化了事件管理流程,确保在 PagerDuty 中标记为已解决的事件,能够实时更新对应的 Jira 任务状态为“已关闭”。同时,事件解决信息会即时推送至 Mattermost 指定频道,帮助团队成员及时获知处理进展。通过这一自动化流程,减少了人工操作带来的错误,提高了协作效率,解决了跨系统信息孤岛的问题,适用于运维、DevOps 和 IT 支持团队。

事件自动化系统集成

命令执行与条件判断工作流

该工作流实现了系统命令的自动执行与数据处理,通过解析命令行输出的JSON数据,进行条件判断和逻辑分支控制。适用于自动化监控和脚本结果处理,能够灵活整合命令行工具的输出,适合IT运维和DevOps人员,提升自动化处理效率,减少人为干预,实现复杂业务场景的动态决策。

命令执行条件判断

airflow dag_run

该工作流通过调用 Apache Airflow 的 REST API,自动触发和监控指定的 DAG 运行,实时获取任务执行结果。它内置状态判断和超时机制,能够智能处理不同状态,确保工作流的稳定性和可控性。适合需要远程触发和监控数据管道任务的场景,提高工作效率,减少人为干预,保证任务流程的顺利进行。

Airflow自动触发状态监控

puq-docker-n8n-deploy

该工作流提供了一整套API后端解决方案,专为管理和控制基于Docker的容器实例而设计,面向WHMCS/WISECP模块的集成需求。其功能包括容器的部署、启动、停止、挂载磁盘、权限管理、日志查看等操作,支持通过Webhook API接收指令,并实现动态配置和访问控制。同时,集成了错误处理机制,确保操作的高效与安全,为云服务商和IT运维团队提供了便利的自动化管理工具。

n8n自动化Docker容器管理

Automate assigning GitHub issues(自动分配 GitHub 问题)

该工作流旨在自动处理 GitHub 仓库中的问题和评论,通过智能判断是否需要分配负责人,自动将未指派的 issue 分配给合适的用户。它能够识别用户主动认领任务的请求,避免重复分配,显著提升项目管理效率。无论是在开源项目还是企业内部开发中,该工作流都有助于加快响应速度,减轻维护者的负担,实现更高效的团队协作。

GitHub自动分配任务管理

n8n workflow deployer

该工作流实现了自动化部署功能,通过监控Google Drive中的特定文件夹,自动下载和处理n8n工作流的JSON文件。经过格式化和清理后,利用API将工作流导入指定实例,并自动设置标签,最后将已部署的文件归档到另一个文件夹。整个过程无需人工干预,显著提升了工作流管理和部署的效率,适用于需要批量管理和更新工作流的团队。

n8n自动部署Google Drive集成