阿里云Arthas使用——通过watch命令查看类的返回值 捞数据出来

在这里插入图片描述

前言

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。

本篇博客介绍如何通过watch命令查看调用方法的输出参数。

其他的Arthas博客文章如下:

  • 阿里云的Arthas的使用 & 安装和使用 & 死锁查找案例,重新加载案例,慢调用分析

目录

  • 前言
  • 引出
  • as.sh方式的安装
      • 报错:telnet is not installed
      • 报错:unzip is not installed
      • 报错:no available java process to attach
  • 通过Arthas进行捞数据
    • 分析出要watch的类
    • watch命令
  • 总结

引出


1.JVM调优的工具阿里云的Arthas的使用,安装和使用;
2.watch命令查看调用方法的输出参数

https://arthas.aliyun.com/doc/install-detail.html

as.sh方式的安装

报错:telnet is not installed

[root@iZuf61wy7p4tbr7lmwv18iZ software]# ./as.sh 
Error: telnet is not installed. Try to use java -jar arthas-boot.jar
 yum install -y telnet-server.x86_64yum install -y telnet.x86_64

在这里插入图片描述

在这里插入图片描述

报错:unzip is not installed

[root@iZuf61wy7p4tbr7lmwv18iZ software]# ./as.sh 
Error: unzip is not installed. Try to use java -jar arthas-boot.jar
yum -y install telnet.x86_64 unzip zip

在这里插入图片描述

报错:no available java process to attach

Error: no available java process to attach

在这里插入图片描述

通过Arthas进行捞数据

分析出要watch的类

一步一步分析要watch的类

在这里插入图片描述

找到是哪个类的哪个方法

在这里插入图片描述

watch命令

https://arthas.aliyun.com/doc/commands.html

让你能方便的观察到指定函数的调用情况。能观察到的范围为:返回值抛出异常入参,通过编写 OGNL 表达式进行对应变量的查看。

观察表达式,默认值是{params, target, returnObj}

在这里插入图片描述

通过as.sh启动arthas

在这里插入图片描述

启动arthas成功

在这里插入图片描述

watch com.wattsonic.iot.gateway.modbus.command.GroupCommand parseResult 'returnObj' -x3

在这里插入图片描述

[arthas@5418]$ watch com.wattsonic.iot.gateway.modbus.command.GroupCommand parseResult 'returnObj' -x3
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 120 ms, listenerId: 5
method=com.wattsonic.iot.gateway.modbus.command.GroupCommand.parseResult location=AtExit
ts=2023-11-29 17:27:41; [cost=0.336862ms] result=@HashMap[@String[L2加热器目标水温]:@Long[0],@String[L3加热器目标水温]:@Long[0],@String[L1加热器24h用电量]:@Long[0],@String[L2加热器24h用电量]:@Long[0],@String[加热器状态STATE1]:@Long[1500],@String[最大总功率]:@Long[0],@String[L2加热器负载功率]:@Long[0],@String[L3加热器负载功率]:@Long[0],@String[加热器状态STATE2]:@Long[0],@String[L3加热器24h用电量]:@Long[0],@String[L2加热器当前温度]:@Long[1500],@String[L1加热器负载功率]:@Long[0],@String[L1加热器目标水温]:@Long[0],@String[L1加热器当前温度]:@Long[0],@String[L3加热器当前温度]:@Long[1500],
]

在这里插入图片描述


总结

1.JVM调优的工具阿里云的Arthas的使用,安装和使用;
2.watch命令查看调用方法的输出参数;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/186047.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

交互思路之“大象冰箱”

前言 是时候往往会思考一些工作的方法论,每个设计师都都自己搭建方法论的思路,笔者更擅长巨像化的设计思路,今天就介绍一个设计思路:如何把大象装进冰箱里? 来源 这个思路来源于宋丹丹与赵本山合作的小品“送水工”…

计算机体系结构----指令系统(二)

本文仅供学习,不作任何商业用途,严禁转载。绝大部分资料来自----计算机系统结构教程(第二版)张晨曦等 计算机体系结构----指令系统(二) 2.1 指令系统结构的分类2.2 寻址方式2.3 MIPS 指令系统结构2.3.1 MIPS的寄存器2.3.2 MIPS的…

PLC:200smart(13-16章)

PLC:200smart 第十三章2、带参子程序3、将子程序设置成库文件 第十三章 项目ValueValue主程序MAIN一个项目只能有一个,循环扫描子程序SBR_0项目中最多有128个,只有在调用时 才执行(子程序可以嵌套其他子程序,最多八层…

SSD-FTL算法学习总结1

SSD核心技术:FTL算法。 1、什么是FTL? FTL是Flash Translation Layer(闪存转换层),完成主机(HOST)逻辑地址空间到闪存Flash物理地址空间的翻译,或者说映射(Mapping)。 FTL算法分成…

K3S环境搭建

中文官网https://docs.k3s.io/zh/更适合中国宝宝体质 k3s是轻量化的容器编排工具,跟k8s有一定区别,但是用法类似 名词差异: k8s master worker k3s server agent安装前修改/etc/hosts,使每一个节点都有一个名称,不允…

Linux常用命令----mkdir命令

文章目录 1. 基础概念2. 参数含义3. 常见用法4. 实例演示5. 结论 在Linux操作系统中,mkdir 命令是用来创建目录的基础命令。这个命令简单但极其强大,是每个Linux用户都应当熟悉的工具之一。以下是对mkdir命令的详细介绍,包括其参数含义、常见…

各种与梅洛相关的葡萄酒知识

梅洛葡萄是可以通过其松散的大浆果串来识别的,与赤霞珠葡萄相比,这种颜色的蓝色/黑色调更少,皮肤更薄,单宁更少。与赤霞珠相比,梅洛葡萄的糖含量往往更高,苹果酸含量较低。梅洛在寒冷的土壤中茁壮成长&…

App测试、H5测试及小程序测试

文章目录 前言一、App常见测试要点1.App功能测试1.1.App安装与卸载1.2.App升级测试1.3.App登陆测试1.4.离线测试1.5.触屏及操作测试1.6.App消息推送测试 2.AppUI界面测试3.App兼容性测试-适配/手机适配4.App中断测试5.App网络测试6.App安全测试7.App性能测试8.App测试与web测试…

实战中jrtplib发送rtp包,时间戳处理大坑

系列文章目录 文章目录 系列文章目录前言一、jrtp是什么?大坑是什么?二、发送rtp over udp码流包,卡顿,跳帧问题三、jrtp源码得到结论总结前言 一、jrtp是什么?大坑是什么? RTP 是目前解决流媒体实时传输问题的最好办法,如果需要在Linux平台上进行实时流媒体编程,可以…

关于实验室招生的一些吐槽

最近在帮实验室招生,面试了很多保研的学生。 我自己也是保研生,清楚一路走来不容易。但是最后还是没收多少学生。 太多学生受应试教育的影响,觉得前进的方向一定是有一个模板的,要有GPA,要有竞赛,要有科研…

4进制思路。。。。。。。。

猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有 1010 种配料(芥末、孜然等),每种配料可以放 11 到 33 克,任意烤…

GPU逻辑管线

文章目录 前言一、渲染流水线二、英伟达显卡简化概念图(GPU)1、我们的Shader会调用英伟达提供的 API2、调用API后,把Shader用到的指令存储在Pushbuffer中3、然后图元分配器,会把 模型数据 和 Shader 指令传入GPU中4、这个SM是每个…

【开源存储】OpenZFS文件系统部署实践

一、前言 参考文档: ZFS源码:Github ZFS部署文档:ZFS-WiKi、ZFS-freebsd OpenZFS 是一个高级文件系统和卷管理器,最初是为 Solaris 开发的,现在由 OpenZFS 社区维护。 1、简介 ZFS是一种先进的现代文件系统&#xff…

Vue2学习笔记(事件处理)

事件的基本使用: 1.使用v-on:xxx 或 xxx 绑定事件,其中xxx是事件名;2.事件的回调需要配置在methods对象中,最终会在vm上;3.methods中配置的函数,不要用箭头函数!否则this就不是vm了&#xff1b…

修复电脑中缺失的VCRUNTIME140.dll文件的5个有效方法

vcruntime140.dll丢失5个修复方法与vcruntime140.dll是什么以及丢失对电脑的影响 引言: 在日常使用电脑的过程中,我们可能会遇到一些错误提示,其中之一就是“vcruntime140.dll丢失”。那么,什么是vcruntime140.dll?它…

如何搭建外网可访问的Serv-U FTP服务器,轻松远程共享文件!

目录 1. 前言 2. 本地FTP搭建 2.1 Serv-U下载和安装 2.2 Serv-U共享网页测试 2.3 Cpolar下载和安装 3. 本地FTP发布 3.1 Cpolar云端设置 3.2 Cpolar本地设置 4. 公网访问测试 5. 总结 1. 前言 科技日益发展的今天,移动电子设备似乎成了我们生活的主角&am…

hutool的bug之 DateUtil.endOfDay(DateUtil.date())

hutool 工具类DateUtil 使用时谨慎 DateUtil.endOfDay 得到的时间保存到数据时会增加一秒 首先比较下时间的long值: 这样就很明显的看出来,hutool工具类的date是毫秒位多了.999,保存到mysql 的时候,MySQL数据库对于毫秒大于500的数据进行…

力扣 --- 删除有序数组中的重复项 II

题目描述: 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的…

甘草书店记:2023年10月24日 星期二 「在完美和高效之间寻求平衡」

书店装修设计图出了第一版,不能够完全满意也在不在预料之外。 中国人的哲学是中庸的哲学。在高效中去追逐完美,在追逐完美中提升效率。 分享余华先生在节目中的一段话: 一种阅读和一本书的相遇有时候也是一种缘分。但也可能就是所有人都说…

2023-11-30 通过中缀表达式转换后缀表达式, 用C语言完成一个简单的计算器

点击 <C 语言编程核心突破> 快速C语言入门 通过中缀表达式转换后缀表达式, 用C语言完成一个简单的计算器 前言一、中缀表达式和后缀表达式 (AI辅助)二、中缀转后缀规则及后缀运算规则 (AI辅助)总结 前言 要解决问题: 在练习用Qt完成一个简单的计算器时, 需要将一个文本…