arthas安装和简单使用
介绍
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。
--- --- --- 截取arthas官网
安装
外网
说明: 运行环境可以访问外网.下载: https://arthas.aliyun.com/arthas-boot.jar
内网
说明: 运行环境访问不到外网.下载: https://arthas.aliyun.com/download/latest_version?mirror=aliyun
运行
指令:java -jar arthas-boot.jar- 通过列表前的数字选择需要监视对应的java项目. 比如: 输入
1->回车 - 命令行提示符变成
[arthas@36092]$便算是已经启动了arthas服务器并自动连接上.
访问
- 授权远程用户, 修改
arthas.properties文件- 文件位置: 与
arthas-boot.jar同级或者在user home(也即cd ~)下.arthas/lib/版本号/arthas下 arthas.ip(监听地址): 将值127.0.0.1修改成主机ip地址(只可通过主机ip地址连接服务器)或者0.0.0.0arthas.username和arthas.password: 将注释#取消, 修改用户名和密码(默认本地连接不需要验证)
- 文件位置: 与
- 命令行访问
- 直接在上一步
运行成功之后就可以输入指令执行 - 通过
java -jar arthas-client.jar 127.0.0.1 3658 - 也可通过
arthas tunnel
- 直接在上一步
- 浏览器访问: http://127.0.0.1:8563/
- 参考:
指令
记录常用的指令和参数, 更详细见:
在使用中慢慢补充
- 官网命令列表
- 查看所有指令:
help - 查看单个指令:
help 指令/指令 -h/指令 --h/指令 --help
退出
- 指令:
exit/quit/q/logout: 退出当前会话, 不影响其他客户端连接;java -jar arthas-client.jar 127.0.0.1 3658 -c "stop": 不连接情况下停止服务器.stop: 完全退出, 关闭arthas服务器.
- 官网: quit 和 stop
dashboard
- 含义: 查看系统的实时数据面板
- 参数:
参数名称 示例 参数说明 [i:] dashboard -i 10000 刷新实时数据的时间间隔(ms), 默认5000ms [n:] dashboard -n 2 刷新实时数据的次数 - 官网: https://arthas.aliyun.com/doc/dashboard.html
thread
- 含义: 查看当前JVM的线程堆栈信息
- 特点: 可以在展示堆栈信息的同时, 带上各个线程的cpu的使用率
- 参数:
参数名称 示例 参数说明 id thread 2 线程 id, 查看指定线程的堆栈信息 [n:] thread -n 4 指定最忙的前 N 个线程并打印堆栈 [b] thread -b 找出当前阻塞其他线程的线程 [i <value>]thread -i 1000 指定cpu采样间隔 [--all] thread -all 显示所有匹配的线程 - 官网: https://arthas.aliyun.com/doc/thread.html
- 引申记录: 网站Fast Thread, 传入堆栈文件(jstack -l pid > pid.log), 可在线分析线程堆栈信息.
watch
- 含义: 让你能方便的观察到指定函数的调用情况。能观察到的范围为:返回值、抛出异常、入参,通过编写 OGNL 表达式进行对应变量的查看。
- 特点: 能观察到方法的返回值、抛出异常、入参。
- 参数:
参数名称 参数说明 class-pattern 类名表达式匹配 method-pattern 函数名表达式匹配 express 观察表达式, 默认值: {params, target, returnObj}condition-express 条件表达式 [b] 在函数调用之前观察, 默认关闭 [e] 在函数异常之后观察, 默认关闭 [s] 在函数返回之后观察, 默认关闭 [f] 在函数结束之后(正常返回和异常返回)观察, 默认打开 [x:] 指定输出结果的属性遍历深度, 默认为1, 最大值是4 [n:] 被监察函数执行的次数 - 使用
- 结构: watch class-pattern method-pattern express condition-express
- 观察表达式: 使用时需要用
'或者"括起来- 方法参数信息:
params/params[0] - 方法返回值:
returnObj - 异常信息:
throwExp - 对象属性消息:
params[0].name/params[0][0].name - 参考: https://arthas.aliyun.com/doc/advice-class.html
- 方法参数信息:
- 条件表达式:
- 参数:
params[0].id == 1 - 返回值:
returnObj != null && returnObj.success - 耗时:
#cost > 200 - 正则:
#method.toString().matches(".*get.*") - 在未执行方法 和 条件表达式结果是false时都会不打印, 可配合
-v在调用方法时打印表达式是true or false
- 参数:
- 官网: https://arthas.aliyun.com/doc/watch.html
monitor
- 含义: 统计符合条件的类或方法的调用次数
- 用法: 监测5秒内tomcat请求数量:
monitor -c 5 org.apache.catalina.connector.CoyoteAdapter service - 官网: https://arthas.aliyun.com/doc/monitor.html
扩展
idea插件
Arthas Spring Boot Starter
Spring Boot Admin 整合 Arthas
参考
arthas安装和简单使用的更多相关文章
- (转)python requests的安装与简单运用
requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的: python的标准库urllib ...
- MongoDB在Windows下安装、Shell客户端的使用、Bson扩充的数据类型、MongoVUE可视化工具安装和简单使用、Robomongo可视化工具(2)
一.Windows 下载安装 1.去http://www.mongodb.org/downloads下载,mongodb默认安装在C:\Program Files\MongoDB目录下,到F:\Off ...
- python requests的安装与简单运用
requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的: python的标准库urllib ...
- memcache的windows下的安装和简单使用
原文:memcache的windows下的安装和简单使用 memcache是为了解决网站访问量大,数据库压力倍增的解决方案之一,由于其简单实用,很多站点现在都在使用memcache,但是memcach ...
- 【RabbitMQ】RabbitMQ在Windows的安装和简单的使用
版本说明 使用当前版本:3.5.4 安装与启动 在官网上下载其Server二进制安装包,在Windows上的安装时简单的,与一般软件没什么区别. 安装前会提示你,还需要安装Erlang,并打开下载页面 ...
- Thrift的安装和简单演示样例
本文仅仅是简单的解说Thrift开源框架的安装和简单使用演示样例.对于具体的解说,后面在进行阐述. Thrift简述 ...
- libmemcached安装及简单例子
libmemcached安装及简单例子 1.下载安装libmemcached $ wget http://launchpad.net/libmemcached/1.0/0.44/+download/ ...
- [hadoop系列]Pig的安装和简单演示样例
inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish ).(来源:http://blog.csdn.net/inkfish) Pig是Yaho ...
- Redis 安装与简单示例
Redis 安装与简单示例 一.Redis的安装 Redis下载地址如下:https://github.com/dmajkic/redis/downloads 解压后根据自己机器的实际情况选择32位或 ...
- Redis 安装与简单使用
安装 Redis 一般系统都会有软件管理工具,但是通常版本都不会太新,况且 Redis 的安装很简单,因此下面使用源码的安装方式. 下载源码 wget http://download.redis.io ...
随机推荐
- Mac安装MySQL详细教程
1.MySQL安装包下载 还没下载的话请前往官网下载 我们可以看到这里有两个不同架构的dmg的安装包,如果不知道自己电脑是ARM还是X86的话可以打开终端输入:uname -a 或者 uname -a ...
- w3cschool-Hibernate 教程
什么是 ORM? ORM 表示 Object-Relational Mapping (ORM),是一个方便在关系数据库和类似于 Java, C# 等面向对象的编程语言中转换数据的技术.一个 ORM 系 ...
- Apollo架构设计
Apollo架构设计 Apollo有一点很好,就是它是由国内携程团队开发,而且文档写的很全,代码也完全开源.如果去了解它也可以直接去看它的官方文档. 一.配置中心概念 1.背景 在实际开发中都会与配置 ...
- C语言中的窗口滑动技术
学习文章:C语言中的窗口滑动技术 滑动窗口法 C语言中的窗口滑动技术 循环几乎是每个复杂问题的一部分.太多的循环/嵌套循环会增加所需的时间,从而增加程序的时间复杂性.窗口滑动技术是一种计算技术,用于减 ...
- bazel学习
bazel学习 a fast, scalable, multi-language and extensible build system bazel就是一个编译打包工具,类似于make.cmake等 ...
- Hutch PG walkthrough Intermediate window
NMAP └─# nmap -p- -A -sS 192.168.196.122 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-16 01 ...
- TCP协议的三次握手-4次挥手
TCP的连接建立是一个三次握手过程,目的是为了通信双方确认开始序号,以便后续通信的有序进行.主要步骤如下: 连接开始时,连接建立方(Client)发送SYN包,并包含了自己的初始序号a: 连接接受方( ...
- 打造有效安全闭环,天翼云MDR来了!
随着网络攻-防对抗形势愈演愈烈,传统的安全防护模式已难以应对频率暴增.昼夜不停的网络安全攻-击,提升组织安全防护能力势在必行.事实上,一些单位在网络安全建设工作中经验不足,在安全组件/设备采购方面大量 ...
- idea插件仓库连接不到网络
IDEA的插件中心连不上网 打开:设置-插件 选择:设置按钮-HTTP代理设置 勾选自动设置 输入 https://plugins.jetbrains.com/或者 http://127.0.0.1: ...
- mybatis之生命周期及作用域
SqlSessionFactoryBuilder 一旦创建了SqlSessionFactory之后就没有作用了 局部变量 SqlSessionFactory 可以理解为数据库的连接池 SqlSessi ...