监控的沉默面:任务未运行、数据未上报与零产出

简介: 失败条数为 0 不代表系统正常,它可能代表一次都没跑。本文把「该响却没响」归成四种来路,给出三个与业务结果解耦的计数器(心跳、新鲜度、零产出周期数)和一张规则体检表。

适用场景**:定时同步、批量推送、库存与轨迹更新这类「按周期发生」的后台任务。

核心判断:监控只能看见发生过的事,看不见没发生的事;要补上后者,指标必须与业务结果解耦。

一、四种沉默

一条链路停摆时,面板上的表现往往是「更健康」而不是「更异常」:

形态 实际发生 面板表现 可发现指标
调用没发生 调度未触发、实例迁移、任务被关 失败数 0、曲线平滑 任务心跳
调用了没产出 上游返回 0 条、源表为空 成功 0、失败 0 零产出周期数
数据没上报 上报进程挂、指标改名、标签变更 曲线断线或规则匹配为空 数据新鲜度
消息没送达 通道失效、机器人被移除、通知被关 告警产生,人没收到 通道周测

第三种有一处默认值值得单独确认:不少告警引擎对「匹配不到数据」的默认动作是跳过,而不是告警。于是指标改名这件事,会被系统理解为「没有问题」。核心规则上,这个默认值应当改成告警。

二、三个计数器

它们不看业务结果,只看有没有发生。

image.png

from datetime import datetime
def check_heartbeat(last_run_at, now, period_sec, tolerance=2):
    if last_run_at is None:
        return "从未运行过"
    gap = (now - last_run_at).total_seconds()
    if gap > period_sec * tolerance:
        return f"已 {gap / 3600:.1f} 小时未运行"
    return None
def check_freshness(latest_at, now, max_age_sec):
    age = (now - latest_at).total_seconds()
    if age > max_age_sec:
        return f"数据已陈旧 {age / 3600:.1f} 小时"
    return None
def check_zero(success_count, zero_streak, limit=3):
    if success_count == 0 and zero_streak >= limit:
        return f"连续 {zero_streak} 个周期零产出"
    return None

心跳的阈值只与时间有关,与业务量无关,所以不需要按业务波动反复调参——这是它比「失败率」可靠的地方。新鲜度针对数据表,一个「最新写入时间」就能覆盖整条链路的停摆。零产出针对「跑了但没结果」,它填补的正是失败数为 0 的那块空白。

三、规则体检表

规则要能响,依赖四件事同时成立:指标在上报、名字没改、阈值有意义、通道还通。任一项变化,规则就变成摆设。

规则名 依赖指标 最近评估 最近触发 负责人
入库同步失败 sync_fail_total 今天 从未 仓配组
库存未更新 stock_update_ts 今天 10-14 仓配组
下单错误率 order_err_ratio 两天前 10-26 交易组

判读口径三条:评估时间为空说明规则已死;触发时间超 90 天说明规则多余或阈值失配;评估时间停滞说明依赖的指标已经不再更新。

四、验收标准

  1. 关掉调度:两个周期内应收到「未运行」,而不是安静数天。
  2. 上游返回空列表:三个周期后应收到「零产出」,即使失败数为 0。
  3. 改掉指标名一个字符:体检表该行「最近评估」应为空并进入待修列表。
  4. 移除通知机器人:本周通道周测失败,且失败能通知到第二联系人。

上线检查清单

  • 每个定时任务都有与结果解耦的心跳
  • 关键表有新鲜度指标
  • 零产出是独立告警,不挂在失败数上
  • 核心规则的无数据动作配成告警
  • 体检表每周生成,90 天未触发进复核
  • 通道周测要求人工回执
相关文章
|
云安全 安全 网络安全
|
7天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
2005 1
|
14天前
|
JSON 程序员 数据格式
最新版Notepad++下载、安装、配置保姆级教程(附官网安装包)
Notepad++ 是一款免费开源、轻量快速的 Windows 文本编辑器,支持多标签、语法高亮、代码折叠与宏录制,体积小、启动快、资源占用低,兼容 x64/x32/ARM 架构,是程序员和文字工作者的高效利器。
3139 0
|
13天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
2255 44
|
10天前
|
Web App开发 人工智能 前端开发
2026 年 AI 浏览器怎么选?Ego Lite、Tabbit、Chrome DevTools MCP 深度对比,开发者到底该用哪个?
2026年AI浏览器选型指南:Ego Lite专注多Agent协同(Mac优先),Tabbit国产首选,原生支持Windows与Codex控制;Chrome DevTools MCP非浏览器而是开发者利器,深度集成Console/Network/Performance调试能力,让AI真正“看懂并验证”前端代码。
1416 3
|
7天前
|
安全 应用服务中间件 Go
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
PHP2Shell 双 RCE 已遭在野利用:WordPress、Drupal 全在射程内,nginx 其实另有洞。拆成因与修复顺序
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
|
7天前
|
开发者 索引
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
Open Plugin Market 是一个开放插件索引平台,收录800+优质DSH插件,支持分类浏览、智能推荐与随机发现。无需安装市场,粘贴索引地址即可一键接入,网页版直访 dshopen.org,助力小开发者被看见。(239字)
1692 1
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
|
6天前
|
人工智能 Linux API
Magpie, 轻量本地AI网关!免费Token用不完!
Magpie 是开源AI编程模型调度网关,上线一月获1.8万Star。它通过本地高性能网关统一托管多平台API密钥、账号与免费额度,实现跨Agent的模型秒级切换、静默额度轮换与资源复用,显著降低碎片化管理成本。(239字)
Magpie, 轻量本地AI网关!免费Token用不完!
|
6天前
|
安全 程序员 应用服务中间件
PHP 被曝两大致命漏洞,请所有程序员抓紧做这件事!
PHP 官方发布了紧急安全更新,一口气修复了两个严重漏洞。如果网站和服务器用了 PHP 应该怎么处理?漏洞的原理是什么?本文给你讲清楚
696 0

热门文章

最新文章