qunarcorp / bistoury

Bistoury是去哪儿网的java应用生产问题诊断工具,提供了一站式的问题诊断方案
GNU General Public License v3.0
4.01k stars 825 forks source link

大佬们好,我基于bistoury改了改,支持k8s,请指导! #108

Closed pnboot closed 3 years ago

pnboot commented 3 years ago

java应用故障诊断工具预研 demo ,基于开源项目bistoury修改,99.999%代码保持一致,原项目明显是为多节点大集群设计,对于小集群来说配置和调试略复杂。 改动的目的是简化少量节点和服务时开发和部署,支持kubernetes集群部署。

bistoury 的功能和架构设计都十分优秀,但也存在源码复杂、组件依赖多、配置多的情况。入门有难度,有一点部署和维护门槛,尤其对于小集群少量服务的小团队。

我做了一些改动,试图保留优秀的功能设计,同时降低入门门槛,(真是想的美啊)。如果你看到这里,也试图简化或者丰富,不要藏着了,一起来吧。

改动的目的是简化开发和部署,bistoury 原项目地址为: https://github.com/qunarcorp/bistoury.git

主要做了以下改动:

  1. 修改启动类,改为 springboot 启动,删除 conf 文件,默认写在 map 里或者配置在 yaml 里
  2. 整理包目录层次结构
  3. 合并 ui 和 proxy
  4. 删除 zookeeper 和 gitlab 依赖
  5. 增加 kubernetes 支持,点击实例列表时,自动在对应 pod 执行命令启动 agent,等待 1-2 秒即可看到 jvm 信息
  6. 修改 ClassPathLookUp 配置 useDefaultClassPath 始终为 true
  7. 修改 bistoury-agent-env.sh ,配置 BISTOURY_PROXY_HOST 为 service 地址,增加 -Dbistoury.store.db=sqlite ,避免 alpine 缺包无法使用 rocksdb
  8. 修改 LoginController,默认使用 admin/123456 登录,所以即使不配置 mysql 地址也没有关系

如何构建服务镜像

  1. 下载源码 git clone https://github.com/dupengcheng/gzzd.git
  2. 构建并安装 到本地仓库 mvn clean package install
  3. 切换ui 服务目录 cd serverside/serverside-ui/
  4. 构建 ui 服务镜像 mvn package jib:dockerBuild -am
  5. 打 tag 并推送到你的镜像仓库
    git clone https://github.com/dupengcheng/gzzd.git
    mvn clean package install
    cd serverside/serverside-ui/
    mvn package jib:dockerBuild -am