Implements or extends OceanBase obdiag observer-side Python check tasks under plugins/check/tasks/observer, syncs artifacts to ~/.obdiag for local runs, and validates with SQL plus obdiag check. Use when adding or changing observer check tasks, GV$OB_PARAMETERS inspections, TaskBase plugins, or observer_check_package.yaml cases.
在仓库根目录执行,保证从最新 master 派生功能分支:
git fetch origin master
git checkout master
git pull origin master
git checkout -b <branch-name> # 例:500-feature-1231、500-issue-1232
# 开发完成后首次推送:
git push -u origin <branch-name>
plugins/check/tasks/observer/ 下新增或修改 Python 巡检任务(继承 TaskBase)。GV$OB_PARAMETERS / SQL 行为。obdiag check run 时依赖 ~/.obdiag/check 下的任务与套餐文件。plugins/check/tasks/observer/ 同目录或 cluster/ 下找类似任务(例如参数类:memory_limit_percentage.py、memstore_limit_percentage.py),对齐 execute / get_task_info / 异常与 self.report.add_* 风格。plugins/check/tasks/observer/<category>/<task_stem>.py。ob_vector_memory_limit_percentage = ObVectorMemoryLimitPercentage()),供 CheckHandler 按 stem 动态加载。add_critical;版本不满足时用 add_warning 并说明不支持(与现有任务一致)。super().check_ob_version_min("x.y.z.w")(四段版本号)。TENANT_ID 一行);告警文案建议带 SVR_IP,多租户时带 tenant_id。plugins/check/observer_check_package.yaml 仅在需要把任务纳入某个 cases 套餐(如 k8s_basic)时修改。--observer_tasks=<folder>.<stem> 单独执行(例如 cluster.ob_vector_memory_limit_percentage)。运行时默认从 inner_config 的 check.work_path(常为 ~/.obdiag/check)加载:
{work_path}/tasks/observer/.../*.py{work_path}/observer_check_package.yaml仓库内源文件在 plugins/check/。改完仓库后需拷到用户目录(避免交互式覆盖提示可用 /bin/cp -f):
mkdir -p ~/.obdiag/check/tasks/observer/<category>
/bin/cp -f plugins/check/tasks/observer/<category>/<task>.py ~/.obdiag/check/tasks/observer/<category>/
# 若改了套餐 YAML:
/bin/cp -f plugins/check/observer_check_package.yaml ~/.obdiag/check/observer_check_package.yaml
source .venv/bin/activate;依赖不全时 pip install -e .。mysql -h... -P... -uroot@sys 等对 oceanbase.GV$OB_PARAMETERS(或任务所用视图)跑与巡检一致的 SQL,确认列名、多租户行、取值范围。obdiag check run --observer_tasks=<folder>.<task_stem> -c ~/.obdiag/config.yml --store_dir ./check_report/
查看输出中的 observer 报告路径;全量套餐巡检时用 --cases=<package>(仅当已在 observer_check_package.yaml 注册)。
.cursor/ 列入 .gitignore,提交 Skill 时需 git add -f .cursor/skills/.../SKILL.md,否则不会被纳入提交。observer_tasks 中 cluster.xxx 的 xxx 一致。get_task_info() 含 name、info,必要时 issue_link。observer_check_package.yaml,文档/说明中明确 仅支持 observer_tasks 显式调用。