cubic
您的 star 是我继续前进的动力,如果喜欢请右上角帮忙点个 star

Cubic 一站式问题定位平台,以 agent 的方式无侵入接入应用,提供各种指标,动态线程堆栈追踪,完整集成 arthas 功能模块,致力于应用级监控,帮助开发人员快速定位问题。
官方网站:https://cubic.jiagoujishu.com
Gitee: https://gitee.com/dromara/cubic
Github: https://github.com/dromara/cubic
Demo: http://43.138.50.220:6080
特性:
- 1、兼容性:整体监控不管你是 IDC、ECS、Docker 部署,都可完美兼容
- 2、易用: 无需任何配置,开箱即用,基于 agent 无侵入接入,升级应用端无感知
- 3、强大: 支持对应用的基础监控、堆栈监控、线程池监控等等
- 4、高扩展:提供良好的扩展接口,给你自主选择
开发环境部署
只需两步:
- 执行 cubic-proxy -> resources -> db -> init.sql 创建表
- 执行运行脚本 build-start.sh 打包部署应用
如有问题?
请看 Q/A 章节 y
文档
结构
| cubic-agent | 应用数据采集 agent |
|---|---|
| config | 存放 agent 配置文件 |
| cubic-proxy | 代理应用,用于接收 agent 数据 |
| cubic-proxy-common | 公共基础参数 |
| cubic-proxy-websocket | 代理应用,用于接收页面与 proxy 之间的数据通信 |
| cubic-ui | 页面 UI,提供前端各种功能展示,打包完 将 dist 目录数据拷贝到 cubic-proxy |
| docs | 文档 |
| scripts | 包含打包脚本、启动脚本 |
| agent-dist | 存放打包后的 agent 完整组件 |
| agent-proxy-dist | 存放打包后 proxy 部署 jar |
| arthas-dist | 用于支持 arthas 命令集 |
技术体系:
- 基于最新 Spring Boot 整体技术栈
- 认证模块是基于 Spring Boot Security JWT 技术
- WebShell 基于 Vue Xterm 、Websocket、Netty 技术
- Proxy 与 agent 通信基于 Netty 、GRPC
功能
已完成
| 功能 |
|---|
| 权限认证 |
| 实例列表 |
| 实例心跳监测 |
| 实例基础信息采集 |
| 服务器信息采集 |
| JVM 基础信息采集 |
| 启动参数采集 |
| 依赖包检测 |
| arthas 动态命令集支持 |
| 历史线程栈获取(分钟级) |
| 实时线程栈获取 |
| 线程池监控 |
功能展示
实例中心(展示当前实例信息)

基础信息(点击实例-》展示当前实例的基础信息)

依赖监控(点击实例-》展示当前实例的依赖包信息)

Arthas 命令操作

线程池监控

实时线程栈

历史线程栈

Q&A
1、Q : 为什么页面迭代这么慢?
A : 因为目前自己抽时间在写,所以前端 UI 有些小 BUG ,功能、部署、脚本等等都在完善中,马上准备使用最新的 VUE 那一套来进行页面的输出迭代了,欢迎各位大牛贡献代码。
2、Q : 为什么最近几个月未更新?
A : 因为换工作等问题导致的,后面会严格按照每月一个大版本进行更新
3、Q : 编译后 protobuf 文件找不到?
A : 重新执行下 mvn compile
4、Q : 环境依赖
A : JDK 1.8、 MySQL 5.5+
5、 Q : 报 JDK 版本错误或 tools.jar 不存在问题
A : cubic 使用的 java 为 JAVA_HOME/bin/java, 需要 JDK8 及以上,但"不要求"与目标应用的 JVM 使用相同的 JDK 版本。
cubic 需要依赖 JAVA_HOME/lib/tools.jar
JAVA_HOME 的定位,通过读取环境变量 JAVA_HOME,如果没有定义,则尝试通过"which java"定位 java 从而获得相对路径。
可通过 echo $JAVA_HOME 查看当前配置
6、Q : 如果 linux 上出现 java.lang.NoClassDefFoundError: com/sun/tools/attach/VirtualMachine
A: 此时echo $JAVA_HOME发现也已经配置,请在应用启动参数上增加 -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar
7、Q : 下载后有些编译报错
A: 不要怕,可以使用 scripts 里面的 build.sh 打包下即可。如果还有报错,点下 IDEA 的 build(绿锤子)
组织
让我们一起学习成长,关注公众号获得每日一个知识点的储备,让我们一起成长
知识获取

问题交流

