去哪儿网开源的一个对应用透明,无侵入的Java应用诊断工具

这篇具有很好参考价值的文章主要介绍了去哪儿网开源的一个对应用透明,无侵入的Java应用诊断工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天 V 哥给大家带来一款开源工具Bistoury,Bistoury 是去哪儿网开源的一个对应用透明,无侵入的java应用诊断工具,用于提升开发人员的诊断效率和能力。

Bistoury 的目标是一站式java应用诊断解决方案,让开发人员无需登录机器或修改系统,就可以从日志、内存、线程、类信息、调试、机器和系统属性等各个方面对应用进行诊断,提升开发人员诊断问题的效率和能力。

Bistoury 在公司内部原有agent的基础上集成Alibaba开源的arthas和唯品会开源的vjtools,提供了更加丰富的功能,感谢他们做出的优秀工作。

自从 V 哥发现了这款工具,就赶紧用了一下:
去哪儿网开源的一个对应用透明,无侵入的Java应用诊断工具,Java架构栈技术团队,开源,java,开发语言

先来看一下Bistoury的简介:

  • Arthas和vjtools已经是很优秀的工具,我们为什么还要开发Bistoury?
  • Arthas和vjtools通过命令行或类似的方式使用,不可否认命令行在很多时候具有比较高的效率;但图形化界面也有其自身的优点,特别是在参数复杂时使用起来更加简单,效率更高。Bistoury在保留命令行界面的基础上,还对很多命令提供了图形化界面,方面用户使用。
  • Arthas和vjtools针对单台机器,从机器的维度对系统进行诊断,没有提供全局的视角;而在线应用往往部署在多台机器,Bistoury可以和使用方应用中心整合,从应用的维度对系统进行诊断,提供了更多的可能。
  • Arthas和vjtools在使用上,要么登录机器,要么需要使用者提供相应的ip和端口;Bistoury去掉各种设置,提供统一的web入口,从页面上选择应用和机器即可使用。
  • 除了这些针对性优化,Bistoury在保留arthas和vjtools的所有功能之外,还提供了更加丰富的功能。
  • Bistoury的在线debug功能去掉了各种复杂参数,模拟ide调试体验,通过web界面提供断点调试的功能,可以在不阻塞应用的情况下捕获断点处的信息(包括本地变量、成员变量、静态变量和方法调用栈)。
  • Bistoury提供了线程级cpu使用率监控,可以监控系统每个线程的分钟级cpu使用率,并提供最近几天的历史数据查询。
  • Bistoury可以动态对方法添加监控,监控方法的调用次数、异常次数和执行时间,同时也保留最近几天的监控数据。
  • Bistoury提供了日志查看功能,可以使用tail、grep等命令对单台或同时对多台机器的日志进行查看。
  • Bistoury提供可视化页面实时查看机器和应用的各种信息,包括主机内存和磁盘使用、cpu使用率和load、系统配置文件、jar包信息,jvm信息、内存使用和gc等等。

(简介来源于Github 上的介绍)

也许你正面对一个难以捉摸的线上问题束手无策,不妨来试试Bistoury的快捷部署脚本,在一分钟内启动Bistoury然后插入断点开始调试吧!

1. 环境准备:

确保你的系统是 Linux(支持 Mac OS),因为 Bistoury 目前只支持这些系统。
确保已安装 JDK 1.7+ 或 1.8+,并且设置了 JAVA_HOME 环境变量。

2. 端口准备:

确保本机的9090、9091、9880、9881端口未被占用,因为这些端口将被 Bistoury 使用,如果当端口冲突了怎么解决?

  • 修改自己占用的端口
  • 修改 bistoury 的端口

3. Java 应用准备:

如果你有一个待诊断的 Java 应用,确保它已经启动。如果是非 Spring Web 应用,可能需要配置启动脚本的 -c 参数。

4. 下载 Bistoury:

从 Bistoury 的官方 GitHub 或 Gitee 页面下载快速部署包。如无法下载,请联系 V 哥给你下载链接。

5. 解压部署包:

将下载的快速部署包 bistoury-quick-start.tar.gz 拷贝到你希望安装的位置,并解压。

6. 启动 Bistoury:

使用 quick_start.sh 脚本启动 Bistoury。如果待诊断的应用以当前用户启动,可以使用 ./quick_start.sh -p <pid> start 命令启动,其中 是待诊断应用的进程 ID。

如果应用以其他用户启动,需要使用

sudo -u <username> ./quick_start.sh -p <pid>vstart 命令,其中 <username> 是应用启动的用户名称。

7. 访问 Bistoury UI:

通过浏览器访问 Bistoury 的 UI 界面,通常是 http://:9091,其中 是部署 Bistoury 的服务器 IP 地址。

8. 在线 Debug:

如果需要在线 Debug,可以在 Bistoury UI 中设置断点,模拟 IDE 调试体验,查看断点处的信息。

9. 线程级 CPU 监控:

使用 Bistoury 提供的线程级 CPU 监控功能,监控系统每个线程的 CPU 使用率,并查询历史数据。

10. 动态监控:

对系统的方法添加动态监控,查看方法的调用次数、异常次数和执行时间,并生成监控图。

11. 应用中心管理:

如果有内部的应用中心,可以通过 Bistoury 的应用中心功能管理应用与机器的信息。

请注意,部署步骤可能会根据 Bistoury 的版本更新和具体的使用环境有所变化,建议查看最新的官方文档以获得最准确的部署指导。文章来源地址https://www.toymoban.com/news/detail-857942.html

到了这里,关于去哪儿网开源的一个对应用透明,无侵入的Java应用诊断工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开源|用 Java 实现一个生成 Markdown 文本的工具

    公司的 IM 每天有许多机器人推送的消息,我也在使用,这个功能是好的,但是当我们想去发送一些格式优美的消息时,却要费许多功夫,主要来源于字符串拼接,如果要拼接出 Markdown 格式的那就更费力了,另外由拼接带来的是混乱的代码,为了解决这个痛点,我写了一个

    2023年04月15日
    浏览(27)
  • 基于doipclient设置一个简易的诊断服务工具

    python-doipclient: doipclient is a pure Python 3 Diagnostic over IP (DoIP) client which can be used for communicating with modern ECU\\\'s over automotive ethernet. It implements the majority of ISO-13400 (2019) from the perspective of a short-lived synchronous client. The primary use case is to serve as a transport layer implementation for the udsoncan library

    2023年04月22日
    浏览(30)
  • 【Python数据科学 | 11】应用实战:我的第一个开源项目-基金定投回测工具

    这是机器未来的第60篇文章 原文首发地址:https://robotsfutures.blog.csdn.net/article/details/127712752 【Python数据科学快速入门系列 | 01】Numpy初窥——基础概念 【Python数据科学快速入门系列 | 02】创建ndarray对象的十多种方法 【Python数据科学快速入门系列 | 03】玩转数据摘取:Numpy的索引

    2024年02月02日
    浏览(24)
  • java agent 实战 监控Elasticsearch(只需依赖一个jar 完全无侵入式)解决jar启动问题

    agent是什么大家应该很熟悉了,今天我们来实战下,效果就是为项目所有elasticsearch请求方法增加耗时告警! 学会Java Agent你能做什么? 自动添加getter/setter方法的工具lombok就使用了这一技术 btrace、Arthas和housemd等动态诊断工具也是用了instrument技术 Intellij idea 的 HotSwap、Jrebel 等也

    2024年02月16日
    浏览(27)
  • 微软开源了一个 助力开发LLM 加持的应用的 工具包 semantic-kernel

    在首席执行官萨蒂亚·纳德拉(Satya Nadella)的支持下,微软似乎正在迅速转变为一家以人工智能为中心的公司。最近微软的众多产品线都采用GPT-4加持,从Microsoft 365等商业产品到“新必应”搜索引擎,再到低代码/无代码Power Platform等面向开发的产品,包括软件开发组件Power

    2024年02月03日
    浏览(34)
  • 推荐一个日历转换开源工具库,支持C#、Java、PHP等主流的语言

    日历对我们来说,最熟悉的就是阳历和农历,在中国每年都有固定的节日、节气、中国特有传统节日,有些节日是固定的,但是节气这些都需要我们经过一定规则换算出来。 所以,今天给大家推荐一个开源库,它支持阳历、阴历、佛历和道历的日历转换,可以满足我们的所有

    2024年02月06日
    浏览(55)
  • Java 性能诊断工具你好

    Java 性能诊断工具, 从java自带的工具到单机图形化诊断工具再到分布式诊断工具 Java自带了许多诊断工具,例如JConsole、JVisualVM、jmap、jstack、jcmd等。这些工具都是非常常用的工具,它们可以帮助开发人员诊断Java应用程序的性能问题。其中,JConsole和JVisualVM是图形化工具,可以

    2023年04月08日
    浏览(35)
  • Java问题诊断工具——JVisualVM

    这篇文章源自一次加班改bug的惨痛经历=[,,_,,]:3 负责的一个项目占用不断增加,差点搞崩服务器(╥﹏╥)…… 一下子有点懵,不能立刻确定是哪里导致的问题,所以决定好好研究下这个之前一直被我忽视的问题诊断工具🔧——JVisualVM 嘿嘿我们开始吧(。・ω・。)ノ JVisualVM是一

    2023年04月22日
    浏览(67)
  • Istio是一个开源的基于 envoy proxy 的服务网格工具,它通过提供应用层面的流量管理和安全保障能力,帮助企业构建一个完整的服务网络体系

    作者:禅与计算机程序设计艺术 容器编排工具通常都提供微服务架构,其中包括服务注册与发现、负载均衡、流量控制和熔断等功能。随着云计算的普及,越来越多的人开始使用这些容器编排工具,包括Docker Swarm、Kubernetes、Mesos等。除了提供容器集群管理之外,许多容器编排

    2024年02月07日
    浏览(34)
  • 小景的工具使用--Java诊断工具Arthas的使用说明

    小景最近在做程序和数据库的压测工作,期间监控压测数据,分析程序原因变成了一个待解决的问题,根据公司小伙伴的建议,接触了阿尔萨斯这个诊断工具,下面小景分别基于Linux操作系统和Windows操作系统,来详细的说下使用说明和使用心得。   Arthas(阿尔萨斯)是一个用

    2024年02月08日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包