2026-10-12 · 原文发布日
n8n实例健康与OpenAI花费看板
给自建n8n用户的自我监控模板:每小时调n8n API统计各流程的执行量、失败率、p95耗时和估算的OpenAI token花费,严重事故除了发Slack告警,还会自动停用出问题的流程(打了保护标签的除外),事故记入Google Sheets;每周一早上再汇总一周数据,抽样聚类相似报错后交给OpenAI写成结构化健康周报,经Gmail发出HTML版并在Slack发摘要。需要建Guard_Log和Metrics_History两张表并配置阈值与冷却时间。模板免费。
原文要点
来源是n8n.io免费模板,面向自建n8n自监控:每小时跑1小时guard窗口、每周一9点跑7天digest窗口;调n8n API列活动流程并拉执行,计算运行量、失败、错误率、p95耗时、在执行数据含usage时估算OpenAI花费;guard会查Guard_Log冷却抑制重复告警,critical时经API停用未打保护标签的流程并发Slack、写表;digest读Metrics_History、聚类相似报错,交OpenAI写周报,Gmail发HTML、Slack发TL;DR并写回历史。
这次做成什么
在测试n8n实例上搭一套「别把自己搞挂」的监控练习:每小时汇总流程健康指标,critical才自动停用未保护流程并留痕;每周生成一份结构化周报。重点是把阈值、冷却、保护标签、两张Google Sheet和五个凭据先配置对,而不是追求花哨看板。
准备什么
- 一个自建或可控的测试n8n实例,能创建API key,并允许监控流程读取执行列表;不要先对生产实例开自动停用
- Google Sheets、Slack、Gmail、OpenAI四类凭据;练习期Slack用测试频道,Gmail发给自己的别名地址
- 一个Google Sheet,含Guard_Log与Metrics_History两个tab,可写入审计和历史快照
- 明确哪些流程永不自动停:先给它们打no-auto-disable或critical标签,再启用监控
具体怎么做
建表与占位符替换
在Google Sheet建Guard_Log、Metrics_History两tab。Guard_Log字段建议logged_at、workflow_id、workflow_name、severity、failing_node、error_message、alert_key、cooldown_until、action_taken;Metrics_History字段建议week_start、workflow_id、runs、failures、error_rate、p95_ms、estimated_openai_cost、notes。把所有YOUR_GOOGLE_SHEET_ID、YOUR_SLACK_CHANNEL_ID换成测试ID。
建n8n API Header Auth凭据
在n8n生成API key,凭据类型用HTTP Header Auth,Header名严格按X-N8N-API-KEY,值为该key。监控流程调用的是本实例n8n API;具体请求路径以模板节点为准,不要凭记忆拼endpoint。先用一个只读测试确认能列流程,再开写权限。
设置监控配置
把模板配置区改为你的环境:n8n base URL、guard窗口1小时、digest周一09:00、warning/critical阈值、cooldown分钟数、OpenAI模型名、收件邮箱。练习建议error_rate warning≥10%、critical≥30%,p95_ms只做观察不告警,cooldown=120分钟,避免同一失败刷屏。
先跑只读guard演练
临时把停用动作改成仅写日志,造一个连续失败的测试流程。观察是否计算runs/failures/error_rate/p95_ms,是否从最近失败执行抽出failing_node和error_message,是否查Guard_Log冷却抑制重复。通过后才把critical分支改回可停用。
验证保护标签与自动停用
给一个重要流程打no-auto-disable或critical标签,另一个无标签测试流程制造critical失败。结果应是:有标签流程只告警不停用;无标签流程被API停用,Guard_Log写入action_taken=deactivated,Slack收到含workflow、节点、错误摘要的消息。
跑digest周报练习
向Metrics_History写入下方合成一周数据,手动执行digest分支。流程应抽样失败执行、把相似error_message聚类,连同趋势发给OpenAI生成结构化摘要;Gmail收到HTML,Slack收到TL;DR,最后把本周快照追加回Metrics_History。
可直接复制的材料
监控阈值练习配置
本站独立练习配置;域名、邮箱、模型名、阈值都要替换。auto_disable_dry_run_first建议先true,确认无误后再允许真停用。
{"n8n_base_url":"https://n8n.example.test","guard_window_minutes":60,"digest_cron":"0 9 * * MON","thresholds":{"warning_error_rate":0.10,"critical_error_rate":0.30,"min_runs_for_alert":5,"p95_observe_only_ms":120000},"alert_cooldown_minutes":120,"protected_tags":["no-auto-disable","critical"],"openai_model":"按原模板节点填写","digest_email":"ops-test@example.test","auto_disable_dry_run_first":true}OpenAI周报撰写提示词
本站编写;digest_payload字段需与你的汇总节点一致,未核实参数在原模板核对。
你是n8n运维周报编辑。只根据输入JSON写周报,不编造未提供的执行数、费用或原因。
输出固定四段:
1 本周总览:runs、failures、error_rate、p95_ms、estimated_openai_cost与上周相比的升降;没有上周数据就写「无对比」。
2 需要处理的前3个问题:按失败数或error_rate排序,给出workflow_name、最常见错误聚类、建议下一步。
3 已自动处置:列出Guard_Log中action_taken=deactivated的流程;没有就写「无」。
4 风险提示:费用只是估算,仅在执行数据含usage时有效;p95样本不足时不下结论。
输入:{{$json.digest_payload}}Metrics_History合成一周数据
本站合成;estimated_openai_cost为演示估算值,单位美元但仅练习,不代表账单。
week_start,workflow_id,workflow_name,runs,failures,error_rate,p95_ms,estimated_openai_cost
2026-10-05,wf_lead,Lead Sync,420,18,0.0429,1830,2.31
2026-10-05,wf_invoice,Invoice Mail,96,31,0.3229,5420,0.87
2026-10-05,wf_backup,Backup Check,168,0,0.0000,940,0.00
2026-10-05,wf_ai,Draft Writer,260,12,0.0462,3880,5.44输入与输出示例
本站虚构演示,非OpenAI返回;数字由合成输入直接汇总,不声称调用过真实API。
输入
digest_payload含上方4行Metrics_History,且Guard_Log本周有一条:workflow_name=Invoice Mail,severity=critical,failing_node=SMTP Send,error_message=535 auth failed,action_taken=deactivated,cooldown_until=2026-10-06T11:00:00Z。对应输出
周报关键行示意:总览写入总runs=944、failures=61、error_rate=6.46%、estimated_openai_cost=8.62美元且标注估算;前3问题第一为Invoice Mail,错误率32.29%,聚类为SMTP认证失败;已自动处置列Invoice Mail deactivated;风险提示写「usage缺失的流程不计入费用,p95样本少仅观察」。做完检查这些
- 只读演练时任何流程都不会被停用,但Guard_Log仍能写出alert_key与cooldown_until
- critical且无保护标签的流程被停用后,Guard_Log同条记录含failing_node、error_message、action_taken=deactivated
- 带no-auto-disable或critical标签的流程即使阈值超线也只告警,不停用
- 重复同一失败在cooldown内不重复发Slack,超过cooldown才再次告警
- digest发出的Gmail/Slack内容能回指Metrics_History行,费用明确标为估算,不写精确账单
容易卡住的地方
- 自动停用是高危动作;先dry-run,再给保护标签,最后小范围开启,否则监控可能把关键流程一起关掉
- Header名必须是X-N8N-API-KEY;key权限过大或实例URL指向生产,都会放大误操作半径
- OpenAI花费只有在执行数据含usage时才可估算,缺usage的流程不能按比例硬推总账
- p95在样本很少时不稳定;本练习把它设为观察项,不单独触发critical
- Gmail/Slack/Sheets限流或凭据过期会造成「告警发了但没写表」,要把三类写入结果都纳入检查
- 不要把监控流程自身算进被监控列表;来源明确排除this monitor,配置时要保留该排除
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Monitor n8n workflow health and OpenAI cost with Slack, Gmail and Sheets
- 原作者
- Rahul Joshi
- 原始发布日期
- 2026-10-12T07:10:34.277Z
- 来源
- https://n8n.io/workflows/20789