首页/系统与基础设施/自动化运维速查/批量执行的可观测性埋点
批量执行与作业50 条

批量执行的可观测性埋点

可观测性埋点指在批量执行链路的关键位置输出结构化数据,并带上作业、批次、主机与追踪标识,让「跑到哪了、哪台失败、慢在哪一步」都能被查询与聚合。核心不是打多少日志,而是字段统一、能关联、能聚合;缺了关联标识,日志再多也串不成一条执行链。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​​​‌​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​​​‌‌​‌‌​‌​​​​​‌​‌‌​‌​‌‌​​‌​‌​‌‌‌‌​​​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​‌‌‌‌​‌‌​​​‌​​‌‌‌​​‌‌​‌‌​​‌​‌​‌‌‌​​‌​​‌‌‌​‌‌​​‌‌​​​​‌​‌‌​​​‌​​‌‌​‌​​‌​‌‌​‌‌​​​‌‌​‌​​‌​‌‌‌​‌​​​‌‌‌‌​​‌​​‌​‌‌​‌​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌‌​‌​‌​‌‌​‌‌​‌​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌‌​‌​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

埋点埋什么

埋点分三层:作业层记录整体开始与结束、目标总数、成功失败跳过数、总耗时;批次层记录批次编号、并发度、批次耗时与是否被屏障等待阻塞;主机层记录单台执行开始与结束、退出码、重试次数与关键事件。所有记录都要带统一的关联标识——作业标识、批次标识、主机标识,时间统一用 UTC。埋点的产出形态通常是结构化日志(每行一个 JSON)加少量指标,前者便于逐条追溯,后者便于阈值告警。

基本信息

埋点层级作业层、批次层、主机或执行单元层
关键字段作业标识、批次标识、主机、开始与结束时间、耗时、退出码、重试次数
产出形态结构化日志、指标暴露、事件流供告警与看板消费
关键约束字段命名统一、时间统一 UTC、日志中不得出现凭据

典型使用场景

  • 长时作业可见:中途能看出进度与卡在哪一步,不必等到结束
  • 失败定位:直接从数据里筛出失败主机与退出码,无需逐台登录
  • 耗时分析:按主机与步骤看耗时分布,指导并发与窗口设置
  • 告警联动:失败率或耗时超阈值时自动告警
  • 复盘取证:作业执行时间线与变更记录对齐,支撑事故复盘
  • 演练对比:同一作业两次执行的指标对比,验证优化是否有效

结构化打点示例

结构化打点示例
#!/bin/bash
# 每行一个 JSON,字段名固定,便于后续聚合;时间一律用 UTC
log_event() {   # 参数:主机 事件 退出码
  printf '{"ts":"%s","job":"%s","batch":"%s","host":"%s","event":"%s","code":%s}\n' \
    "$(date -u +%FT%TZ)" "$JOB_ID" "$BATCH_ID" "$1" "$2" "${3:-0}"
}

JOB_ID=publish-20261017 BATCH_ID=canary-1
log_event web-01 start
ssh -n web-01 'systemctl restart app'; rc=$?
log_event web-01 finish "$rc"        # 结束事件带退出码,成功失败可一并统计

# 聚合示例:按退出码统计失败台数
# jq -r 'select(.event=="finish") | .code' /var/log/jobs/*.json | sort | uniq -c
# 聚合示例:找出耗时最长的十台(需在 start 与 finish 中带上同一主机标识)

各层关注点与用途

层级关注数据典型阈值用途
作业层总数、成功失败数、总耗时失败率超过设定比例即告警判断作业整体是否可用
批次层批次耗时、并发度、等待时长单批耗时超预期即降速调整节拍与并发
主机层退出码、重试次数、步骤耗时连续重试或非零退出即上报定位到具体主机与步骤
对比层两次执行差值耗时或失败数显著上升验证优化与发现劣化
关联标识是埋点能否用好分水岭:作业标识把一次批量串起来,批次标识区分灰度与全量批次,主机标识定位具体节点。三者齐备时,任何一条日志都能被还原到「哪次作业、哪一批、哪台机器、哪一步」。
埋点日志常在图省事时把认证信息、连接串或令牌一并打出,这些日志会被集中采集并长期保存,泄露面比配置文件更大。写入前过滤敏感字段。

易错点

  • 只记录作业开始与结束,中途无进度:长时作业卡住时无法判断是执行慢还是已经死锁
  • 日志缺少关联标识:同一天多批作业的输出混在一起,无法还原单次执行链路
  • 打点过密:每台每步都写一条,日志量爆炸,检索与存储成本超过收益
  • 时间字段混用本地时区:跨机房作业的时间线错乱,无法与变更记录对齐
  • 字段命名随意(同一含义出现多个名字):聚合统计失败,看板数字对不上

数据来源与参考

  • OpenTelemetry 官方文档:日志、指标与追踪三信号
  • Prometheus 官方文档:指标命名与标签约定
  • Google SRE 工作手册:可观测性与告警设计

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/batch-execution-observability-instrumentation.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​​​‌​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​​​‌‌​‌‌​‌​​​​​‌​‌‌​‌​‌‌​​‌​‌​‌‌‌‌​​​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​‌‌‌‌​‌‌​​​‌​​‌‌‌​​‌‌​‌‌​​‌​‌​‌‌‌​​‌​​‌‌‌​‌‌​​‌‌​​​​‌​‌‌​​​‌​​‌‌​‌​​‌​‌‌​‌‌​​​‌‌​‌​​‌​‌‌‌​‌​​​‌‌‌‌​​‌​​‌​‌‌​‌​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌‌​‌​‌​‌‌​‌‌​‌​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌‌​‌​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​