介绍

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

--- --- --- 截取arthas官网

安装

运行

  • 指令: 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.0
    • arthas.usernamearthas.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服务器.
  • 官网: quitstop

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[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安装和简单使用的更多相关文章

  1. (转)python requests的安装与简单运用

    requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的: python的标准库urllib ...

  2. MongoDB在Windows下安装、Shell客户端的使用、Bson扩充的数据类型、MongoVUE可视化工具安装和简单使用、Robomongo可视化工具(2)

    一.Windows 下载安装 1.去http://www.mongodb.org/downloads下载,mongodb默认安装在C:\Program Files\MongoDB目录下,到F:\Off ...

  3. python requests的安装与简单运用

    requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的: python的标准库urllib ...

  4. memcache的windows下的安装和简单使用

    原文:memcache的windows下的安装和简单使用 memcache是为了解决网站访问量大,数据库压力倍增的解决方案之一,由于其简单实用,很多站点现在都在使用memcache,但是memcach ...

  5. 【RabbitMQ】RabbitMQ在Windows的安装和简单的使用

    版本说明 使用当前版本:3.5.4 安装与启动 在官网上下载其Server二进制安装包,在Windows上的安装时简单的,与一般软件没什么区别. 安装前会提示你,还需要安装Erlang,并打开下载页面 ...

  6. Thrift的安装和简单演示样例

    本文仅仅是简单的解说Thrift开源框架的安装和简单使用演示样例.对于具体的解说,后面在进行阐述. Thrift简述                                           ...

  7. libmemcached安装及简单例子

    libmemcached安装及简单例子 1.下载安装libmemcached  $ wget http://launchpad.net/libmemcached/1.0/0.44/+download/ ...

  8. [hadoop系列]Pig的安装和简单演示样例

    inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish ).(来源:http://blog.csdn.net/inkfish) Pig是Yaho ...

  9. Redis 安装与简单示例

    Redis 安装与简单示例 一.Redis的安装 Redis下载地址如下:https://github.com/dmajkic/redis/downloads 解压后根据自己机器的实际情况选择32位或 ...

  10. Redis 安装与简单使用

    安装 Redis 一般系统都会有软件管理工具,但是通常版本都不会太新,况且 Redis 的安装很简单,因此下面使用源码的安装方式. 下载源码 wget http://download.redis.io ...

随机推荐

  1. 一个基于 Roslyn 和 AvalonEdit 的跨平台 C# 编辑器

    前言 今天大姚给大家分享一个基于 Roslyn 和 AvalonEdit 开源.轻量.跨平台的 C# 编辑器:RoslynPad. Roslyn介绍 Roslyn是一个强大的.NET编译器实现,为C# ...

  2. 深入探讨数据库索引类型:B-tree、Hash、GIN与GiST的对比与应用

    title: 深入探讨数据库索引类型:B-tree.Hash.GIN与GiST的对比与应用 date: 2025/1/26 updated: 2025/1/26 author: cmdragon ex ...

  3. 一个WPF下的虚拟键盘实现

    给上位机触摸屏做一个虚拟键盘,这玩意儿不就是一排的网格里面放满button嘛 .说归这样说 依然还是有一堆细节需要你去处理的.不论如何 先画个键盘吧. 简单的从网上找个键盘位图做参照使用 4行Grid ...

  4. SOUI4新版本的日志系统介绍

    原来的日志输出宏用法有点奇怪,感觉总是不够理想.这近有点时间终于把它重整了一下. 以前的用法就不介绍了,重点介绍一下新版本的用法. 在SOUI中使用的日志系统包含两个部分:日志输出宏及日志到文件的打印 ...

  5. Idea报错 【cannot access com.xxx】的【解决办法】

    正常操作代码,一个类突然标红,提示 cannot access com.xxx . 执行下面操作,执行完后项目变为正常 但是如果是你代码存在异常,可不是清缓存就能解决了,就要靠自己了哈哈 第一步Fil ...

  6. JMeter非GUI模式执行,jtl文件请求与响应数据为空?这里有答案!

    JMeter非GUI模式执行,jtl文件请求与响应数据为空?这里有答案! 问题描述 在使用JMeter进行性能测试时,很多用户会选择非GUI(图形用户界面)模式来执行测试,因为这样可以减少客户端的负担 ...

  7. [记录点滴]Spring Boot Admin源码分析笔记

    [记录点滴]Spring Boot Admin源码分析笔记 0x00 摘要 本文是过去使用Spring Boot Admin时候分析源码的笔记.虽然比较简单,但是也可以看出Spring Boot Ad ...

  8. 配置Slf4j

    1.maven添加 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api< ...

  9. CSP-J/S2023游记

    过了将近一年才回来补游记 Day -22 光速报名 Day -21~0 国庆假期+痛苦的whk Day 1 CSP-J 早上乘出租车风驰电掣赶到连大,在门口等半天发现已经可以进去了. 一路踩着爆浆的银 ...

  10. C#进行word模板占位符替换的几种工具

    word模板中,包含一些需要替换的项,比如{{姓名}} {{年龄}}或者$姓名$ $年龄$,从数据库获取信息后,对模板进行替换操作生成新的word文档. 简单对以下四种工具做了一下测试: 1.NPOI ...