java应用诊断工具bistoury本地源码编译、构建及启动完整步骤

本文档详细介绍了Bistoury系统的部署步骤,包括创建MySQL数据库、导入数据、执行构建脚本、启动各组件(bistoury-proxy、bistoury-ui、bistoury-agent)以及配置相关环境变量。在启动bistoury-agent时,需要设置多个参数,如数据存放路径、代理域名等。最后,通过访问bistoury-ui来验证系统是否正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 第一步:创建MySQL数据库bistoury,并导入script/schema.sql script/data.sql 两个脚本。在导入data.sql之前,需要先配置一下如下三个变量

    • set @local_ip="127.0.0.1";
      set @local_host="localhost";
      set @log_dir="/D/CACHE/ruoyi/logs";
      
  • 第二步:执行构建脚本 script/build.sh 检查根目录下.mvn目录是否存在,不存在就从源工程中cp

  • 第三步:启动bistoury-proxy。执行 /D/Workspace/Java/bistoury/bistoury-proxy/target/bistoury-proxy-bin/bin/bistoury-proxy.sh start 启动之前先修改bistoury-proxy-env.sh中JAVA_HOME的值

  • 第四步:启动bistoury-ui . 启动之前,先要保证zookeeper可用,默认在/D/Workspace/Java/bistoury/bistoury-ui/conf/registry.properties中进行zookeeper的配置。执行/D/Workspace/Java/bistoury/bistoury-ui/target/bistoury-ui-bin/bin/bistoury-ui.sh start 启动直线先修改bistoury-ui-env.sh中JAVA_HOME的值

  • 第五步:启动bistoury-agent

    • Agent启动前需要在 /D/Workspace/Java/bistoury/bistoury-dist/target/bistoury-agent-bin/bin/bistoury-agent-env.sh的JAVA_OPTS设置以下参数

      参数名称是否必须默认值说明
      bistoury.store.pathbistoury-agent/storebistoury agent数据存放路径,包括rocksdb存放的监控、jstack及jmap数据和反编译代码临时文件的存放
      bistoury.proxy.hostproxy的域名,具体值请联系管理员,agent依赖该值获取proxy的连接配置信息
      bistoury.app.lib.class应用依赖的jar包中的一个类(推荐使用公司内部中间件的jar包或Spring相关包中的类,如org.springframework.web.servlet.DispatcherServlet),agent通过该类获取应用jar包路径
      bistoury.pid.handler.jps.symbol.classorg.apache.catalina.startup.Bootstrapattach的应用入口类,用于使用jps -l命令获取应用pid
      bistoury.pid.handler.jps.enabletrue是否打开通过jps -l获取pid的开关
      bistoury.pid.handler.ps.enabletrue是否打开通过ps aux
      bistoury.app.classes.pathbistoury.app.lib.class对应jar包目录同级的classes目录项目代码编译后字节码存放目录,一般情况下为classes目录
      bistoury.agent.workgroup.num2agent netty work group 线程数
      bistoury.agent.thread.num16agent执行命令的线程数
    • 启动bistoury-agent: /D/Workspace/Java/bistoury/bistoury-dist/target/bistoury-agent-bin/bin/bistoury-agent.sh -p 36196 start (36196是待诊断jvm进程pid)

  • 第六步:访问 bistoury-ui: http://127.0.0.1:9091 admin/admin 如果不能获取到信息,就访问http://localhost:9090/proxy.html - 【详细信息】中获取到AgentId,将其配置到http://localhost:9091/application.html - 【服务器列表】之中。(如果本机有多块网卡,一定要这么操作才能获取到正确的IP)


参考链接:

基于开源项目bistouryjava应用故障诊断工具预研demo源码.zip 故障诊断介绍 java应用故障诊断工具预研 demo ,基于开源项目bistoury修改,99.999%代码保持一致,原项目明显是为多节点大集群设计,对于小集群来说配置和调试略复杂。 改动的目的是简化少量节点和服务时开发和部署,支持kubernetes集群部署。 故障诊断工具的使用场景是定位解决一些极端情况下的问题,作为传统策略无法分析故障时的诊断工具,我们并不追求日常场景下的高频使用,还是建议大家好好写代码,认真做测试。 通过在线诊断工具发现、定位和解决应用问题。主要手段包括:实例信息的全方位展示、故障点的精确观察、故障代码实时修改和热加载。 这份源码作为 kubernetes 支持预研测试的 demo,基本功能测试可用,如果发现问题我会及时更新。 如果使用中遇到问题,可以联系我,我会提供力所能及的交流和帮助。 由来 bistoury 的功能和架构设计都十分优秀,但也存在源码复杂、组件依赖多、配置多的情况。入门有难度,有一点部署和维护门槛,尤其对于小集群少量服务的小团队。 我做了一些改动,试图保留优秀的功能设计,同时降低入门门槛,(真是想的美啊)。如果你看到这里,也试图简化或者丰富,不要藏着了,一起来吧。 改动的目的是简化开发和部署,bistoury 原项目地址为: qunarcorp/bistoury.git 主要做了以下改动: 修改启动类,改为 springboot 启动,删除 conf 文件,默认写在 map 里或者配置在 yaml 里 整理包目录层次结构 合并 ui 和 proxy 删除 zookeeper 和 gitlab 依赖 增加 kubernetes 支持,点击实例列表时,自动在对应 pod 执行命令启动 agent,等待 1-2 秒即可看到 jvm 信息 修改 ClassPathLookUp 配置 useDefaultClassPath 始终为 true 修改 bistoury-agent-env.sh ,配置 BISTOURY_PROXY_HOST 为 service 地址,增加 -Dbistoury.store.db=sqlite ,避免 alpine 缺包无法使用 rocksdb 修改 LoginController,默认使用 admin/123456 登录,所以即使不配置 mysql 地址也没有关系 启动 启动只需 ServersideApplication ,配置好 masterUrl 和 token ,调整 start_agent.sh 脚本的 proxy 地址为本地端口,且保证pod内能够访问到本地,会自己调 exec 拉起 agent (大概需要1-3秒)。 必要条件 jdk版本是 java 8 目前仅可以拉取到 deployment 类型的应用 目标 pod 镜像内需包含 bash 、wget 、 tar 命令
方案是为解决特定问题或达成特定目标而制定的一系列计划或步骤。它的作用是提供一种系统性的方法,以有效地应对挑战、优化流程或实现目标。以下是方案的主要作用: 问题解决: 方案的核心目标是解决问题。通过系统性的规划和执行,方案能够分析问题的根本原因,提供可行的解决方案,并引导实施过程,确保问题得到合理解决。 目标达成: 方案通常与明确的目标相关联,它提供了一种达成这些目标的计划。无论是企业战略、项目管理还是个人发展,方案的制定都有助于明确目标并提供达成目标的路径。 资源优化: 方案在设计时考虑了可用资源,以最大化其效用。通过明智的资源分配,方案可以在有限的资源条件下实现最大的效益,提高效率并减少浪费。 风险管理: 方案通常会对潜在的风险进行评估,并制定相应的风险管理策略。这有助于减轻潜在问题的影响,提高方案的可行性和可持续性。 决策支持: 方案提供了决策者所需的信息和数据,以便做出明智的决策。这种数据驱动的方法有助于减少不确定性,提高决策的准确性。 团队协作: 复杂的问题通常需要多个人的协同努力。方案提供了一个共同的框架,帮助团队成员理解各自的职责和任务,促进协作并确保整个团队朝着共同的目标努力。 监控与评估: 方案通常包括监控和评估的机制,以确保实施的有效性。通过定期的评估,可以及时调整方案,以适应变化的环境或新的挑战。 总体而言,方案的作用在于提供一种有序、有计划的方法,以解决问题、实现目标,并在实施过程中最大化资源利用和风险管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学亮编程手记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值