arthes—线上debug好帮手

news/2025/1/11 16:22:05/

arthes简介

以下是arthes官网原文:

通常,本地开发环境无法访问生产环境。如果在生产环境中遇到问题,则无法使用 IDE 远程调试。更糟糕的是,在生产环境中调试是不可接受的,因为它会暂停所有线程,导致服务暂停。

开发人员可以尝试在测试环境或者预发环境中复现生产环境中的问题。但是,某些问题无法在不同的环境中轻松复现,甚至在重新启动后就消失了。

如果您正在考虑在代码中添加一些日志以帮助解决问题,您将必须经历以下阶段:测试、预发,然后生产。这种方法效率低下,更糟糕的是,该问题可能无法解决,因为一旦 JVM 重新启动,它可能无法复现,如上文所述。

Arthas 旨在解决这些问题。开发人员可以在线解决生产问题。无需 JVM 重启,无需代码更改。 Arthas 作为观察者永远不会暂停正在运行的线程。                        

 官网原文把功能写的已经很通透易懂了,我这边主要是补充一下它的用法和一些插件。

官网地址:简介 | arthas

用法介绍

1. 启动arthes

下载arthas-boot.jar,然后用java -jar的方式启动:

curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

启动之后arthes会将当前运行的所有应用都列举出来,如下:

 然后从1、2、3中选择一个进入,这里我选择3进入,但是报错了,没关系按照它第三条提示的命令重启一下 ,成功进入。

 这里的SpringBoot-query-0.0.1-SNAPSHOT.jar就是我写的一个测试应用。

2. 反编译java类

命令格式:jad 包路径+类名

3. 函数执行数据观测

这个一般使用它的watch指令,但是自己去拼实在是太麻烦了。下面介绍一个插件,如果你的开发工具是idea,那么可以去插件市场搜索arthes

 安装之后,打开编辑器,选中方法名,右键打开工具条

 这样就会生成一条监测命令,粘贴到刚才的arthes控制台即可,调用一下该方法,就可以看到出入参数了,非常的便捷好用。

watch指令使用的最多,多用于调试功能。

 4. 方法内部调用路径,并输出方法路径上的每个节点上耗时

使用idea插件生成方法的trace命令,贴到arthes控制台,如下:

这样就可以很清楚看到这个方法调用了哪些类、哪些方法并且把耗时打印出来了。 

5. 方法执行监控

使用idea插件生成方法的monitor命令,贴到arthes控制台,如下:

monitor命令一般用于统计方法的平均耗时。


http://www.ppmy.cn/news/7247.html

相关文章

Linux | 套接字(socket)编程 | TCP协议讲解 | 通信模型搭建

文章目录TCP模型的特性TCP接口介绍TCP服务器套接字设置TCP客户端套接字设置TCP模型的特性 TCP是属于传输层协议的一种,上篇博客介绍了另一种传输层协议——UDP,关于它们之间的区别,这里再提一下 TCPUDP传输层协议传输层协议有连接无连接可靠…

Python爬虫入门 ~ selenium访问元素信息与交互基本使用

访问元素信息 前面我们成功定位到了页面的标签元素,那接下来就该轮到获取元素的信息了,常用的函数有以下几种: get_attributetexttag_name 前置准备 from selenium import webdriver from selenium.webdriver.chrome.service import Service from sel…

【Spring(一)】初识Spring(史上最详细的Spring介绍!)

文章目录前言1.初识Spring2.Spring Framework系统架构3.核心概念前言 在学习 Spring 之前,我们需要先知道为什么要学习它?    IT业的任何一门技术,它只有抢占了很强的市场占有率,才会有更多的人使用和学习它,Spring技术在我们Java开发界拥…

167. 两数之和 II - 输入有序数组(暴力+二分查找+相向双指针)

目录 前言 一、 暴力求解 二、 二分查找 三、相向双指针 前言 题目描述: 给你一个下标从 1 开始的整数数组 numbers,该数组已按非递减顺序排列(即从小到大排列,中间可以有数字重复),请你从数组中找出…

易基因|动物发育过程中顺式调控区域的活性DNA去甲基化早于脊椎动物起源:重磅研究

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 2022年12月02日,澳大利亚悉尼加尔文医学研究所基因组学和表观遗传学系Ozren Bogdanovic研究团队在《SCIENCE ADVANCES》杂志发表了题为“Active DNA demethylation of develo…

【OpenCV-Python】教程:9-1 级联分类器训练

OpenCV Python 级联分类器训练 【介绍】 使用增强的弱分类器级联包括两个主要阶段: 训练和检测阶段。使用基于HAAR或LBP模型的检测,在object detection tutorial中进行了描述。本文档概述了训练您自己的增强弱分类器级联所需的功能。当前的手册将走过所有不同的阶段: 收集训练…

全志 芯片 Linux MIPI CSI摄像头接口开发指南 VIN DVP CSI MIPI V4l2

1 前言 1.1 文档简介 介绍 VIN(video input)驱动配置,API 接口和上层使用方法。 1.2 目标读者 camera 驱动开发、维护人员和应用开发人员。 1.3 适用范围 ​ 表 1-1: 适用产品列表 内核版本驱动文件Linux-4.9drivers/media/platform/s…

Himall商城文件操作接口Commons

/// <summary> /// 删除文件 /// </summary> /// <param name="fileName">文件名称</param> void DeleteFile(string fileName); /// <summary> /// 删除多个文件 /// </summary&…