Cubic 项目介绍
什么是 Cubic?
Cubic 是一个一站式问题定位平台,其最大特点是通过无侵入的方式接入应用。它以 agent(代理)的形式运作,提供多种指标监控、动态线程堆栈追踪,完整集成了 Arthur 功能模块,专注于应用级别的监控,从而帮助开发者快速定位问题。
在兼容性方面,Cubic 可以与 IDC、ECS、Docker 等不同的部署方式完美兼容。这款平台的设计以易用性为核心,无需复杂的配置,用户可以立即开箱即用。通过 agent 技术,能够在应用端不产生明显影响的情况下进行升级。Cubic 的强大性能表现在其对应用进行基本监控、堆栈和线程池监控等众多支持,并且它还为用户提供了良好的扩展接口。
部署步骤
要在开发环境中部署 Cubic,只需要简单的两步:
- 执行
cubic-proxy
中的resources -> db -> init.sql
来创建数据库表。 - 使用脚本
build-start.sh
来打包并部署应用。
如果在使用过程中遇到任何问题,可以通过其 Q&A 部分获得帮助。
结构与技术架构
Cubic 的架构层次清晰,包含以下主要组件:
- cubic-agent:负责应用数据的采集。
- config:包含 agent 的配置文件。
- cubic-proxy:接收 agent 数据的代理应用。
- cubic-proxy-websocket:用于接收页面与 proxy 之间数据通信的代理应用。
- cubic-ui:提供丰富的前端功能展示。
- scripts:打包脚本和启动脚本的集合。
Cubic 项目采用了最新的 Spring Boot 技术栈,认证模块基于 Spring Boot Security 和 JWT 技术。WebShell 则使用了 Vue Xterm、Websocket 和 Netty 技术,而 Proxy 与 agent 之间的通信则通过 Netty 和 GRPC 实现。
功能特性
Cubic 已实现的功能包括:
- 权限认证
- 实例心跳监测与基础信息采集
- 服务器信息与 JVM 基础信息采集
- 启动参数和依赖包检测
- 支持 Arthas 动态命令集
- 提供历史和实时线程栈获取
- 线程池监控
功能展示
实例中心
展示当前实例的基本信息。
基础信息展示
点击某个实例,可以查看其详细的基础信息。
依赖监控
展示当前实例的依赖包信息。
Arthas 命令操作
简便的命令交互界面,供用户实时操作。
线程池与线程栈监控
提供线程池和线程栈的实时与历史监控。
支持与社区
Cubic 官方鼓励用户通过微信公众号获取每日技术知识,并积极参与开源社区讨论。用户可以通过 QQ 群加入 Cubic 开源交流群,与其他开发者交流心得与经验。对于技术方面的问题和帮助,Cubic 也提供了详细的 Q&A 指南以供参考。
Cubic 旨在为开发者提供一个便捷、高效的问题定位工具,并持续优化和扩展其功能以满足用户多样化的需求。通过社区的支持和共同努力,Cubic 将不断进步,与广大开发者一起成长。