{"id":13526080,"url":"https://github.com/dromara/cubic","last_synced_at":"2025-04-01T06:31:20.839Z","repository":{"id":41423837,"uuid":"265436725","full_name":"dromara/cubic","owner":"dromara","description":"一站式问题定位平台，分布式实例监控、线程栈监控、线程池监控、动态arthas命令集、依赖分析等等等，助你快速定位问题","archived":false,"fork":false,"pushed_at":"2024-01-24T06:39:57.000Z","size":38891,"stargazers_count":495,"open_issues_count":1,"forks_count":92,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-11-02T10:34:10.999Z","etag":null,"topics":["agent","monitor"],"latest_commit_sha":null,"homepage":"http://cubic.jiagoujishu.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dromara.png","metadata":{"files":{"readme":"README.md","changelog":"changes/changes-1.5.x.md","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}},"created_at":"2020-05-20T03:14:35.000Z","updated_at":"2024-10-25T08:44:54.000Z","dependencies_parsed_at":"2024-01-24T07:45:23.852Z","dependency_job_id":null,"html_url":"https://github.com/dromara/cubic","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dromara%2Fcubic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dromara%2Fcubic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dromara%2Fcubic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dromara%2Fcubic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dromara","download_url":"https://codeload.github.com/dromara/cubic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246596851,"owners_count":20802907,"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":["agent","monitor"],"created_at":"2024-08-01T06:01:25.045Z","updated_at":"2025-04-01T06:31:15.824Z","avatar_url":"https://github.com/dromara.png","language":"Java","funding_links":[],"categories":["Java","DevOps","性能分析"],"sub_categories":[],"readme":"\u003ch3\u003e您的star是我继续前进的动力，如果喜欢请右上角帮忙点个star\u003c/h3\u003e\n\n![输入图片说明](https://images.gitee.com/uploads/images/2021/0331/140113_74894751_1168339.png \"证书 2020.png\")\n## Cubic是什么\n  \n`Cubic` 一站式问题定位平台，以agent的方式无侵入接入应用，提供各种指标，动态线程堆栈追踪，完整集成arthas功能模块，致力于应用级监控，帮助开发人员快速定位问题。\n\n官方网站：https://cubic.jiagoujishu.com\n\nGitee: https://gitee.com/dromara/cubic\n\nGithub: https://github.com/dromara/cubic\n\nDemo: http://43.138.50.220:6080\n\n特性：\n- 1、兼容性：整体监控不管你是IDC、ECS、Docker部署，都可完美兼容\n- 2、易用： 无需任何配置，开箱即用，基于agent无侵入接入，升级应用端无感知\n- 3、强大： 支持对应用的基础监控、堆栈监控、线程池监控等等\n- 4、高扩展：提供良好的扩展接口，给你自主选择\n\n## 开发环境部署\n\n**只需两步：**\n - 执行cubic-proxy -\u003e resources -\u003e db -\u003e init.sql 创建表\n - 执行运行脚本 build-start.sh 打包部署应用\n\n**如有问题？**\n\n请看Q/A章节y\n \n \n## 文档\n- [快速开始](docs/cn/quick_start.md)\n- [远程主机命令下发（动态arthas）](docs/cn/arthas_tools.md)\n\n\n## 结构\n| cubic-agent      | 应用数据采集agent                                            |\n| ---------------- | ------------------------------------------------------------ |\n| config           | 存放agent配置文件                                            |\n| cubic-proxy      | 代理应用，用于接收agent数据                                  |\n| cubic-proxy-common      | 公共基础参数                                 |\n| cubic-proxy-websocket      | 代理应用，用于接收页面与proxy之间的数据通信                             |\n| cubic-ui         | 页面UI，提供前端各种功能展示,打包完 将dist目录数据拷贝到cubic-proxy |\n| docs             | 文档                                                         |\n| scripts          | 包含打包脚本、启动脚本                                       |\n| agent-dist       | 存放打包后的agent完整组件                                    |\n| agent-proxy-dist | 存放打包后 proxy 部署 jar                                    |\n| arthas-dist      | 用于支持arthas命令集                                         |\n\n\n## 技术体系：\n- 基于最新Spring Boot 整体技术栈\n- 认证模块是基于Spring Boot Security JWT 技术\n- WebShell 基于 Vue Xterm 、Websocket、Netty 技术\n- Proxy 与 agent 通信基于Netty 、GRPC\n\n\n## 功能\n\n#### 已完成\n| 功能                 |\n| -------------------- |\n| 权限认证            |\n| 实例列表             |\n| 实例心跳监测         |\n| 实例基础信息采集     |\n| 服务器信息采集       |\n| JVM基础信息采集      |\n| 启动参数采集         |\n| 依赖包检测           |\n| arthas动态命令集支持 |\n| 历史线程栈获取（分钟级） |\n| 实时线程栈获取 |\n| 线程池监控 |\n\n \n \n\n\n## 功能展示\n\n#### 实例中心（展示当前实例信息）\n![输入图片说明](https://images.gitee.com/uploads/images/2021/0422/222223_33ec65f5_1168339.png \"屏幕截图.png\")\n\n#### 基础信息（点击实例-》展示当前实例的基础信息）\n![输入图片说明](https://images.gitee.com/uploads/images/2021/0422/222247_5834ffcb_1168339.png \"屏幕截图.png\")\n\n#### 依赖监控（点击实例-》展示当前实例的依赖包信息）\n\n![输入图片说明](https://images.gitee.com/uploads/images/2021/0410/232902_d6698559_1168339.png \"屏幕截图.png\")\n#### Arthas命令操作\n\n![输入图片说明](https://images.gitee.com/uploads/images/2020/1116/181250_4f502c7e_1168339.png \"屏幕截图.png\")\n \n ![输入图片说明](https://images.gitee.com/uploads/images/2020/0605/190447_b3cd9e91_1168339.png \"屏幕截图.png\")    \n\n#### 线程池监控\n![输入图片说明](https://images.gitee.com/uploads/images/2021/0414/204133_52788815_1168339.png \"屏幕截图.png\")\n\n#### 实时线程栈\n![实时线程栈](https://images.gitee.com/uploads/images/2021/0410/165039_18aa56ab_1168339.png \"屏幕截图.png\")\n\n#### 历史线程栈\n![历史线程栈](docs/pic/dump-history.png)\n\n## Q\u0026A\n**1、Q : 为什么页面迭代这么慢？**\n\nA : 因为目前自己抽时间在写，所以前端UI 有些小BUG ,功能、部署、脚本等等都在完善中，马上准备使用最新的VUE 那一套来进行页面的输出迭代了，欢迎各位大牛贡献代码。\n\n**2、Q : 为什么最近几个月未更新？**\n\nA : 因为换工作等问题导致的，后面会严格按照每月一个大版本进行更新\n\n**3、Q : 编译后protobuf文件找不到？**\n\nA : 重新执行下 mvn compile\n\n\n**4、Q : 环境依赖**\n\nA : JDK 1.8、 MySQL 5.5+\n\n\n**5、 Q : 报JDK版本错误或tools.jar不存在问题**\n\nA : cubic使用的java为JAVA_HOME/bin/java, 需要JDK8及以上，但\"不要求\"与目标应用的JVM使用相同的JDK版本。\n\ncubic需要依赖JAVA_HOME/lib/tools.jar\n\nJAVA_HOME的定位，通过读取环境变量JAVA_HOME，如果没有定义，则尝试通过\"which java\"定位java从而获得相对路径。\n\n可通过echo $JAVA_HOME 查看当前配置\n\n**6、Q : 如果linux 上出现java.lang.NoClassDefFoundError: com/sun/tools/attach/VirtualMachine**\n\nA: 此时`echo $JAVA_HOME `发现也已经配置，请在应用启动参数上增加 `-Xbootclasspath/a:$JAVA_HOME/lib/tools.jar`\n\n**7、Q : 下载后有些编译报错 **\n\nA: 不要怕，可以使用scripts里面的build.sh打包下即可。如果还有报错，点下IDEA的build(绿锤子)\n## 组织\n 让我们一起学习成长，关注公众号获得每日一个知识点的储备，让我们一起成长\n\n\n#### 知识获取\n\n ![输入图片说明](docs/pic/qrcode_for_gh_13314ac27929_258.jpg)\n#### 问题交流\n[点击链接加入群聊【Cubic开源交流群】](https://jq.qq.com/?_wv=1027\u0026k=eS6c8HkS)\n\n ![输入图片说明](docs/pic/WechatIMG11.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdromara%2Fcubic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdromara%2Fcubic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdromara%2Fcubic/lists"}