en un clic
obproxy-log-analysis
// 标准 SOP:OBProxy 日志采集(gather_obproxy_log)、包内解读(file_list/file_read/run_shell 解压)、可选巡检。用户提到 OBProxy/代理/obproxy_diagnosis 等时使用;与 observer 侧 observer-log-analysis 互斥 analyze_log。
// 标准 SOP:OBProxy 日志采集(gather_obproxy_log)、包内解读(file_list/file_read/run_shell 解压)、可选巡检。用户提到 OBProxy/代理/obproxy_diagnosis 等时使用;与 observer 侧 observer-log-analysis 互斥 analyze_log。
| name | obproxy-log-analysis |
| description | 标准 SOP:OBProxy 日志采集(gather_obproxy_log)、包内解读(file_list/file_read/run_shell 解压)、可选巡检。用户提到 OBProxy/代理/obproxy_diagnosis 等时使用;与 observer 侧 observer-log-analysis 互斥 analyze_log。 |
gather_log,统计类分析用 analyze_log(obdiag analyze log)。gather_obproxy_log。不要用 analyze_log 分析 OBProxy 日志——analyze_log 在实现上固定拉取 target=observer 的日志,解析逻辑也面向 observer 日志格式,不支持 OBProxy。obdiag_gather_pack_* 目录,想分析其中 OBProxy 内容模型常在 gather_obproxy_log 成功后就说「采集完成」并结束本轮,不会自动再调 file_list / file_read。若用户一句里包含 采集 + 分析/解读,或明确要 分析 OBProxy 日志,必须在 同一轮 agent 运行里 连续调用工具:gather_obproxy_log → file_list(采集输出目录)→ file_read(相关文件)→ 最后再用自然语言总结。仅当用户只要采集、不要解读时,才可以 gather 后直接回复。
gather_obproxy_log(不要调用 gather_log)。since / from_time + to_time:时间范围scope:obproxy、obproxy_diagnosis、obproxy_error、obproxy_slow、obproxy_digest、obproxy_stat、obproxy_limit、all 等grep:关键词过滤store_dir:输出目录(可选)obdiag_gather_pack_...)。gather_obproxy_log,除非用户明确要求重新拉取(换时间窗、换 scope、或确认包里缺文件)。file_list 列出子目录与文件;必要时用 pattern(如 *.tar.gz、*.zip、*diagnosis*)缩小范围。*.tar.gz、*.tgz、*.zip):日志往往在包内,先解压再读。
run_shell(需用户审批)在采集目录或子目录执行解压,例如:
tar -tzf xxx.tar.gz | head(先看包内结构)mkdir -p ./extracted && tar -xzf xxx.tar.gz -C ./extractedunzip -l xxx.zip / unzip -q xxx.zip -d ./extracted./extracted(或实际解压目录) 再 file_list → file_read。run_shell,则明确告诉用户在本机终端执行上述命令,解压后再用 file_list/file_read 指向解压后的路径。file_read(注意单文件大小上限;过大时用 run_shell 执行 head/tail/grep 抽样,或让用户缩小范围)。since、换 scope、或结合 check_cluster)。check_cluster 工具,传入 obproxy_tasks(指定任务名,优先级高)或 obproxy_cases(指定检查项,优先级低)以运行 OBProxy 内置检查项:
check_cluster(obproxy_tasks="obproxy_task1,obproxy_task2")
# 或
check_cluster(obproxy_cases="obproxy_check1,obproxy_check2")
与「读原始 diagnosis 文本」不同,走的是 obdiag check run 的内置规则引擎。check_list 查看完整列表,再按需传参。| 阶段 | 完成标准 |
|---|---|
| 1 采集 | 已调用 gather_obproxy_log 且掌握 输出 pack 路径(或明确失败原因)。 |
| 2 解读 | 已对目标目录 file_list,对明文日志 file_read 或 run_shell 解压/抽样;不得对 .tar.gz/.zip 直接当文本读。 |
| 3 巡检(若做) | 已执行对应 check 工具或已给出 CLI 替代说明。 |
gather_log / analyze_log 处理 OBProxy 正文。gather_obproxy_log。| 目的 | 工具 |
|---|---|
| 拉 OBProxy 日志 | gather_obproxy_log |
| 在采集结果目录里找文件 | file_list |
解压 .tar.gz / .zip、查看包内列表、head/grep 抽样 | run_shell(需用户确认,勿执行破坏性/无关命令) |
| 读取日志内容 | file_read |
| Observer 日志统计/分析 | analyze_log(仅 observer 侧,勿用于 OBProxy) |
gather_log 采 OBProxy → 错误,应改为 gather_obproxy_log。analyze_log「分析 OBProxy」→ 错误,应对采集目录 file_list / file_read(或由模型基于内容解读)。gather_obproxy_log(..., scope=all) 的包,又只说「分析 obproxy_diagnosis」→ 优先在包内 定位 diagnosis 文件 再读,避免无意义重复采集。.tar.gz / .zip 仍直接用 file_read → 错误;应先 run_shell 解压 或让用户解压,再读解压出的文本日志。备份、日志归档、物理恢复、恢复时间窗、NFS/OSS/COS 归档路径、对象存储权限、备租户恢复源、ob_admin 读取归档位点、oblogminer schema_meta 等问题;OMS 迁移同步问题不使用本 skill。
标准 SOP:集群巡检 check_cluster/check_list 与 RCA 入口(rca_run/rca_list)。用户要健康检查、巡检时使用;RCA 场景映射与手动降级详见 obdiag-rca skill;与 observer-log-analysis、observer-sql-analysis、obproxy-log-analysis 分工明确。
标准 SOP:多集群发现 list_obdiag_clusters、当前会话 show_current_cluster、/use 切换与 cluster_config_path 定向。多套 ~/.obdiag/*.yml、切换默认集群、或一句话点名某集群时使用。
性能类采集与主机 IO:ASH、AWR、perf 火焰图、sysstat、磁盘 IO。在用户说卡顿、慢、会话堆积、要看 ASH/AWR/火焰图或主机负载时使用;与 observer-sql-analysis、observer-log-analysis 互补。
OceanBase 集群所有根因分析场景的统一 SOP。覆盖事务超时/回滚/断连、内存不足、合并卡住、日志盘满、DDL 失败、Schema 泄漏、GC 异常、弱一致性读、OMS 等。始终先执行 rca_run,如 RCA 脚本无法给出结论再按本 skill 降级到手动日志采集分析。
未知/未分类问题的统一分诊 SOP:用户描述集群异常但症状不明确、不知从何入手,或问题无法直接对应 rca/observer-log-analysis/observer-sql-analysis 等专项 skill 时,强制先执行全量巡检 check_cluster,再根据巡检结果决定下一步路径。