{"id":29571861,"url":"https://github.com/oceanbase/obdiag","last_synced_at":"2025-07-19T04:36:24.695Z","repository":{"id":63606105,"uuid":"569127630","full_name":"oceanbase/obdiag","owner":"oceanbase","description":"obdiag (OceanBase Diagnostic Tool)  is designed to help OceanBase users quickly gather necessary information and analyze the root cause of the problem.","archived":false,"fork":false,"pushed_at":"2025-07-18T09:27:43.000Z","size":7565,"stargazers_count":154,"open_issues_count":111,"forks_count":37,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-07-18T12:10:35.522Z","etag":null,"topics":["hacktoberfest","obdiag","oceanbase","python","toolkit"],"latest_commit_sha":null,"homepage":"https://www.oceanbase.com/docs/obdiag-cn","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mulanpsl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oceanbase.png","metadata":{"files":{"readme":"README-CN.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-11-22T06:18:53.000Z","updated_at":"2025-07-18T09:27:47.000Z","dependencies_parsed_at":"2023-02-19T03:46:10.756Z","dependency_job_id":"86f1ae7e-a3ac-423a-b8be-19f33a46a053","html_url":"https://github.com/oceanbase/obdiag","commit_stats":null,"previous_names":["oceanbase/obdiag"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/oceanbase/obdiag","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oceanbase%2Fobdiag","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oceanbase%2Fobdiag/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oceanbase%2Fobdiag/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oceanbase%2Fobdiag/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oceanbase","download_url":"https://codeload.github.com/oceanbase/obdiag/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oceanbase%2Fobdiag/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265889158,"owners_count":23844539,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","obdiag","oceanbase","python","toolkit"],"created_at":"2025-07-19T04:36:24.104Z","updated_at":"2025-07-19T04:36:24.683Z","avatar_url":"https://github.com/oceanbase.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/oceanbase/obdiag/blob/master/LICENSE\"\u003e\n        \u003cimg alt=\"license\" src=\"https://img.shields.io/badge/license-MulanPubL--2.0-blue\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/oceanbase/obdiag/releases/latest\"\u003e\n        \u003cimg alt=\"license\" src=\"https://img.shields.io/badge/dynamic/json?color=blue\u0026label=release\u0026query=tag_name\u0026url=https%3A%2F%2Fapi.github.com%2Frepos%2Foceanbase%2Fobdiag%2Freleases%2Flatest\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://img.shields.io/badge/python%20-3.11.0%2B-blue.svg\"\u003e\n        \u003cimg alt=\"pyversions\" src=\"https://img.shields.io/badge/python%20-3.11.0%2B-blue.svg\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/oceanbase/obdiag\"\u003e\n        \u003cimg alt=\"stars\" src=\"https://img.shields.io/badge/dynamic/json?color=blue\u0026label=stars\u0026query=stargazers_count\u0026url=https%3A%2F%2Fapi.github.com%2Frepos%2Foceanbase%2Fobdiag\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/oceanbase/obdiag\"\u003e\n        \u003cimg alt=\"forks\" src=\"https://img.shields.io/badge/dynamic/json?color=blue\u0026label=forks\u0026query=forks\u0026url=https%3A%2F%2Fapi.github.com%2Frepos%2Foceanbase%2Fobdiag\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.oceanbase.com/docs/obdiag-cn\"\u003e\n        \u003cimg alt=\"Chinese doc\" src=\"https://img.shields.io/badge/文档-简体中文-blue\" /\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n# OceanBase Diagnostic Tool (obdiag)\n\n## 简介\nOceanBase Diagnostic Tool (obdiag) 是一款专门为OceanBase打造的敏捷诊断工具，功能包括诊断信息收集、分析、巡检，可以在OceanBase集群不同的部署模式下（OCP，OBD或用户根据文档手工部署）实现一键执行。\n\n## 项目价值 \u0026 愿景\n\n![项目价值](./images/obdiag_cn.png)\n\n# 安装 obdiag\n\n可通过如下方式安装obdiag\n\n## 方式一: 通过rpm包安装\n```shell script\nsudo yum install -y yum-utils\nsudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo\nsudo yum install -y oceanbase-diagnostic-tool\nsh /opt/oceanbase-diagnostic-tool/init.sh\n```\n\n## 方式二：源码安装\n源码安装需要在python \u003e= 3.11的环境下进行\n\n```shell\n./dev_helper.sh init\nsource ~/.bashrc\n```\n\n# obdiag config\n配置文件的默认路径是`~/.obdiag/config.yml` . 可直接编辑配置文件或者通过`obdiag config \u003coption\u003e` 命令快速生成配置\n```shell script\nobdiag config -h \u003cdb_host\u003e -u \u003csys_user\u003e [-p password] [-P port]\n```\n\n# obdiag 功能\n- 一键集群巡检\n- 一键诊断分析\n- 一键根因分析\n- 一键信息采集\n- 一键集群洞察\n\n\n# 参与贡献\n\nobdiag 期望构建一个开放的社区，我们欢迎任何形式的贡献，您可以：\n- 通过 [Issues](https://github.com/oceanbase/obdiag/issues) 提交 bug。\n- 通过 [Discussion](https://github.com/oceanbase/obdiag/discussions) 参与或发起讨论。\n- 通过 [Pull requests](https://github.com/oceanbase/obdiag/pulls) 提交问题修复或者功能特性。\n\n# Roadmap Ahead\n\n| 版本 | 迭代周期 |发布日期| 功能点 | \n|---------|--------|-------|---------|\n|1.6.0| 2024.01|2024.01.31| \u003cul\u003e\u003cli\u003e 场景化信息采集 \u003c/li\u003e\u003cli\u003e 场景化根因分析 \u003c/li\u003e\u003c/ul\u003e |\n|2.0.0|2024.03| 2024.04.11|\u003cul\u003e\u003cli\u003e context改造，场景化扩展能力增强 \u003c/li\u003e\u003cli\u003e 支持在线更新巡检、采集的task \u003c/li\u003e\u003cli\u003e 根因分析二期 \u003c/li\u003e\u003c/ul\u003e|\n|2.1.0|2024.04| 2024.05.13|\u003cul\u003e\u003cli\u003e 根因分析场景扩展 \u003c/li\u003e\u003cli\u003e 新增 ash 报告 采集 \u003c/li\u003e\u003c/ul\u003e|\n|2.2.0|2024.05| 2024.06.14 |\u003cul\u003e\u003cli\u003e 根因分析场景扩展 \u003c/li\u003e\u003cli\u003e 巡检场景扩展 \u003c/li\u003e\u003c/ul\u003e|\n|2.3.0|2024.06| 2024.07.24 |\u003cul\u003e\u003cli\u003e 根因分析场景扩展 \u003c/li\u003e\u003cli\u003e 新增基础采集功能: tabledump \u003c/li\u003e\u003cli\u003e 新增参数/变量比对分析功能 \u003c/li\u003e\u003cli\u003e 执行底座改造，支持 k8s 部署的 OceanBase 集群诊断 \u003c/li\u003e\u003c/ul\u003e|\n|2.4.0|2024.07| 2024.09.03 |\u003cul\u003e\u003cli\u003e 易用性改造 \u003c/li\u003e\u003cli\u003e 索引空间分析 \u003c/li\u003e\u003c/ul\u003e|\n|2.5.0|2024.09| 2024.10.18 |\u003cul\u003e\u003cli\u003e 场景化一键展示集群信息功能 \u003c/li\u003e\u003cli\u003e 队列积压分析 \u003c/li\u003e\u003cli\u003e 支持对收集的observer日志按指定规则进行敏感内容脱敏 \u003c/li\u003e\u003c/ul\u003e|\n|2.6.0|2024.10| 2024.11.28 |\u003cul\u003e\u003cli\u003e 新增 obdiag analyze memory 功能 \u003c/li\u003e\u003cli\u003e obdiag display 二期迭代 \u003c/li\u003e\u003c/ul\u003e|\n|3.0.0|2024.12| 2024.12.31 |\u003cul\u003e\u003cli\u003e 插件化改造 \u003c/li\u003e\u003cli\u003e 支持 OMS 诊断 \u003c/li\u003e\u003c/ul\u003e|\n|3.1.0|2025.01| 2025.01.22 |\u003cul\u003e\u003cli\u003e obdiag display 三期迭代 \u003c/li\u003e\u003c/ul\u003e|\n|3.2.0|2025.01| 2025.03.14 |\u003cul\u003e\u003cli\u003e obdiag 适配 ipv6 \u003c/li\u003e\u003cli\u003e obdiag gather stack 支持 arm 机器 \u003c/li\u003e\u003cli\u003e 巡检场景扩展 \u003c/li\u003e\u003c/ul\u003e|\n|3.3.0|2025.04| 2025.04.18 |\u003cul\u003e\u003cli\u003e obdiag check 支持 python 脚本以适应复杂场景的巡检 \u003c/li\u003e\u003c/ul\u003e|\n|3.4.0|2025.05| 2025.05.15 |\u003cul\u003e\u003cli\u003e obdiag rca 支持 OMS obcdc 通用问题根因分析 \u003c/li\u003e\u003cli\u003e 新增 obdiag gather dbms_xplan \u003c/li\u003e\u003c/ul\u003e|\n|3.5.0|2024.06| 2025.06.20 |\u003cul\u003e\u003cli\u003e 根因分析场景扩展 \u003c/li\u003e\u003cli\u003e 巡检场景扩展 \u003c/li\u003e\u003c/ul\u003e|\n|3.6.0|2024.07| - |\u003cul\u003e\u003cli\u003e 根因分析场景扩展 \u003c/li\u003e\u003cli\u003e 支持 MCP \u003c/li\u003e\u003c/ul\u003e|\n|4.0.0|2025.12| - |\u003cul\u003e\u003cli\u003e AI 化探索 \u003c/li\u003e\u003c/ul\u003e|\n\n# 支持\n\n如果您在使用 obdiag 时遇到任何问题，欢迎联系我们寻求帮助：\n\n- [GitHub Issue](https://github.com/oceanbase/obdiag/issues)\n- [官方网站](https://www.oceanbase.com/docs/obdiag-cn)\n\n# 开发者专区\n\n## 加入我们\n请添加 OB社区小助手（微信号：obce666）并备注“obdiag SIG”，工作人员会联系并指引您加入 SIG 的相关事宜。期待您的积极参与与宝贵贡献！\n\n## 开发者行动指南\n\n1. Fork并克隆你的专属副本：在我们的GitHub仓库页面右上角点击“Fork”按钮，这样就在你的账号下创建了一份仓库副本。接下来，使用Git命令将这份副本克隆到你的本地计算机上：\n\n```bash\ngit clone https://github.com/your_username/your_repo_here.git\n```\n\n2. 修改代码：无论是修正漏洞还是增添新功能，你的每一份贡献都至关重要。\n\n3. 通过 black 工具统一格式化你的代码 🎨\n\n```bash\n./dev_helper.sh format\n```\n\n4. 提交你的改动：完成优化后，利用Git提交你的修改。\n\n5. 推送到你的Fork仓库：将你的改动推送到GitHub上的Fork仓库中。\n\n6. 发起合并请求（PR）：回到你的GitHub分叉页面，点击“Open pull request”按钮。对比你的分支与原始仓库的主分支，描述你的改动内容，然后提交PR！\n\n7. 🚀 自动化流程接棒此处 🤖\n\n接下来，就交给我们的GitHub Actions流水线：\n- 代码检查：PR一旦触发，流水线会自动代码格式化检查以及安全检查。\n- 自动构建：PR一旦触发，就会自动将你的改动编译成RPM和DEB两种软件包。\n\n\n# 许可证\n\nOceanBase Diagnostic Tool 使用 [MulanPSL - 2.0](http://license.coscl.org.cn/MulanPSL2) 许可证。\n您可以免费复制及使用源代码。当您修改或分发源代码时，请遵守木兰协议。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foceanbase%2Fobdiag","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foceanbase%2Fobdiag","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foceanbase%2Fobdiag/lists"}