当前位置: 首页 > 工具软件 > Bistoury > 使用案例 >

IDE快速启动Bistoury

陆文斌
2023-12-01

IDE快速启动Bistoury

Bistoury是去哪儿网的java应用生产问题诊断工具,提供了一站式的问题诊断方案,本文介绍如何通过IDE里面直接启动各个组件,github地址:https://github.com/qunarcorp/bistoury

前提准备

  • JDK1.7或1.8
  • MySQL数据库
  • ZooKeeper

在以上各项条件满足之后,需要在MySQL中创建名为bistoury的数据库,然后执行script/h2/data.sqlscript/h2/schema.sql两个SQL文件,初始化信息,需要注意的是,在执行data.sql之前,要替换里面的几个变量:

  • ${local_ip}:替换为本机的IP,如果是本机的话,其实替换为127.0.0.1就可以,或者在本机执行以下官方脚本ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"|tail -1,看看获取的是什么
  • ${local_host}:替换为本机的名称,执行命令hostname获取
  • ${log_dir}:替换为待诊断应用的日志路径

编译

按照编译脚本中的,分别执行maven命令编译以下三个模块

Agent

mvn clean package -am -pl bistoury-dist -Pprod -Dmaven.test.skip -Denforcer.skip=true

UI

mvn clean package -am -pl bistoury-ui -Pprod -Dmaven.test.skip=true -Denforcer.skip=true

Proxy

mvn clean package -am -pl bistoury-proxy -Pprod -Dmaven.test.skip=true -Denforcer.skip=true

启动

按照Proxy,UI,Agent的顺序启动,当然,被诊断应用要提前启动

Proxy

主入口是qunar.tc.bistoury.proxy.container.Bootstrap,执行该文件的main方法即可。需要注意添加以下VM参数:

  • -Dbistoury.conf=这里替换为你项目保存的路径/bistoury/bistoury-proxy/conf

同时,要记得修改上述目录中的jdbc.properties文件中连接信息为最开始初始化的那个MySQL

UI

主入口是qunar.tc.bistoury.ui.container.Bootstrap,添加以下VM参数:

  • -Dbistoury.conf=这里替换为你项目保存的路径/bistoury/bistoury-ui/conf

同样,修改上述目录中的jdbc.properties文件中连接信息为最开始初始化的那个MySQL

Agent

主入口是qunar.tc.bistoury.indpendent.agent.Main,需要添加以下VM参数:

  • -Dbistoury.user.pid=26749:这里是待诊断应用的PID
  • -Dbistoury.proxy.host=100.81.140.76:9090:这里是Proxy的地址和端口
  • -Dbistoury.agent.jar.path=这里替换为你项目保存的路径/bistoury/bistoury-dist/target/bistoury-agent-bin/lib/bistoury-instrument-agent-2.0.5.jar:这里是instrument的jar包地址,当时编译的版本为2.0.5,可以检查一下是否存在该文件
  • -Dbistoury.arthas.core.jar.path=这里替换为你项目保存的路径/bistoury/bistoury-dist/target/bistoury-agent-bin/lib/arthas-core-3.1.1.jar:这里是arthas的jar包地址,同样,check一下文件是否存在
  • -Dbistoury.app.lib.class=org.springframework.web.servlet.DispatcherServlet:这里替换为待诊断应用已经加载的一个类,如果是Spring应用的话,可以直接按照这个配置

结束

理论上按照上述顺序启动完成后,就可以访问UI的地址:localhost:9091体验了。因为并没有考虑到脚本的位置,所以qjtopqjdumpqjmap等这些命令无法使用,但是体验大部分功能已经没问题了

 类似资料: