在线性能分析工具Arthas基于Springboot安装配置使用和Arthas Tunnel安装配置使用

news2024/9/25 9:30:27

概要

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

        通过 Arthas Tunnel Server/Client 来远程管理/连接多个 Agent。

安装配置

  • 项目pom中引入Arthas组件,版本参考:Maven Central - Search
        <dependency>
            <groupId>com.taobao.arthas</groupId>
            <artifactId>arthas-spring-boot-starter</artifactId>
            <version>3.6.9</version>
        </dependency>
  • 基本配置
    arthas: 
      agent-id: cipher-server-local #自定义服务在arthas中的名称
      tunnel-server: ws://192.168.11.160:7777/ws  # 远程管理平台arthas tunnel的地址
      app-name: lizz-test # 当前服务名,如果不配置agent-id会自动生成服务名加下划线随机值的agent-id
  • 启动服务
  • 访问服务Arthas Web Console对服务进行Arthas相关操作,默认地址端口8563;正式使用一般使用Arthas Tunnel进行远程统一管理,参考后续逻辑。

使用命令

参考官方:命令列表 | arthas

dashboard-查看服务运行汇总面板

# 每10秒输出一次面板数据,一共输出2次
dashboard -i 10000 -n 2
  • -i :展示数据刷新间隔时间,单位ms,默认5000ms
  • -n : 展现次数,默认不停止

输出结果

  • ID: Java 级别的线程 ID,注意这个 ID 不能跟 jstack 中的 nativeID 一一对应。
  • NAME: 线程名
  • GROUP: 线程组名,主线程
  • PRIORITY: 线程优先级, 1~10 之间的数字,越大表示优先级越高
  • STATE: 线程的状态
  • CPU%: 线程的 cpu 使用率。比如采样间隔 1000ms,某个线程的增量 cpu 时间为 100ms,则 cpu 使用率=100/1000=10%
  • DELTA_TIME: 上次采样之后线程运行增量 CPU 时间,数据格式为
  • TIME: 线程运行总 CPU 时间,数据格式为分:秒
  • INTERRUPTED: 线程当前的中断位状态
  • DAEMON: 是否是 daemon 线程
  • Memory :jvm 内存分区
  • used:已使用的大小
  • total :总量
  • max:最大使用量
  • usage:已使用占比,used/total
  • GC : 垃圾回收类型、次数和时间
  • Runtime:运行环境

查看当前 JVM 信息

$ jvm

远程统一管理工具Arthas Tunnel

下载服务jar
wget https://github.com/alibaba/arthas/releases/arthas-tunnel-server-3.6.9-fatjar.jar
 移动到指定目录下启动
  • 默认端口8080
nohup java -jar  arthas-tunnel-server-3.6.9-fatjar.jar --server.port=8071 &
使用Arthas Tunnel
  • 访问127.0.0.1:8071地址,在AgentId框中输入需要操作了服务id,再点击Connect按钮即可远程链接到远程服务Arthas控制台中。
  • 如需切换服务器,需要先Disconnect断开后重连。

 查看AgentId

查看服务链接信息127.0.0.1:8071/actuator/arthas,登录名arthas,密码在Arthas Tunnel启动日志中

{
    "clientConnections": {},
    "version": "3.6.9",
    "properties": {
        "server": {
            "host": "0.0.0.0",
            "port": 7777,
            "ssl": false,
            "path": "/ws",
            "clientConnectHost": "192.168.11.160"
        },
        "embeddedRedis": null,
        "enableDetailPages": true,
        "enableIframeSupport": true
    },
    "agents": {
        "cipher-encode_1JRGW8SBNAQOW5DIPVF2": {  # 远程服务agentid
            "host": "10.0.1.184",
            "port": 57464,
            "arthasVersion": "3.6.9"
        }
    }
}
 服务列表操作页面
  • arthas.enable-detail-pages=true 开启展示页面
  • 由于这个页面没有权限管理,谨慎使用
nohup java -jar arthas-tunnel-server-3.6.9-fatjar.jar --server.port=8071 --arthas.enable-detail-pages=true &

也可以通过127.0.0.1:8071/apps.html查看服务列表和服务节点

 

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

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

相关文章

Python Web开发入门教程(非常详细)

Python是一种非常流行的编程语言&#xff0c;被广泛应用于数据科学、Web开发、人工智能、机器学习等领域。Python语言易学易用&#xff0c;是许多初学者进入编程世界的入门选择。然而&#xff0c;学习Python并不是一件简单的事情&#xff0c;尤其是对于初学者而言。在本文中&am…

深度学习——优化器Optimizer

代码以及详细注释&#xff1a; import torch import torch.utils.data as Data import torch.nn.functional as F import matplotlib.pyplot as plt# torch.manual_seed(1) # reproducible """超参数 """ # 学习率 LR 0.01 # 批大小 BATCH_…

API测试之Postman使用完全指南

前言 Postman是一个可扩展的API开发和测试协同平台工具&#xff0c;可以快速集成到CI/CD管道中。旨在简化测试和开发中的API工作流。 Postman 工具有 Chrome 扩展和独立客户端&#xff0c;推荐安装独立客户端。 Postman 有个 workspace 的概念&#xff0c;workspace 分 pers…

16、Python读取气象数据的正确姿势

文章目录 一、气象数据格式&#xff08;常用&#xff09;二、单个文件读取1. 常规格式2. CSV格式3. NetCDF格式4. GRIB格式 一、气象数据格式&#xff08;常用&#xff09; 常规格式&#xff08;Plain Text&#xff09;&#xff1a;气象数据可以使用纯文本格式进行存储&#xf…

漏洞复现 || 某友文件上传

免责声明 技术文章仅供参考&#xff0c;任何个人和组织使用网络应当遵守宪法法律&#xff0c;遵守公共秩序&#xff0c;尊重社会公德&#xff0c;不得利用网络从事危害国家安全、荣誉和利益&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此…

HarmonyOS学习路之开发篇—流转(跨端迁移 一)

跨端迁移开发 场景介绍 开发者在应用FA中通过调用流转任务管理服务、分布式任务调度的接口&#xff0c;实现跨端迁移。 1. 设备A上的应用FA向流转任务管理服务注册一个流转回调&#xff1a; Alt1-系统推荐流转&#xff1a;系统感知周边有可用设备后&#xff0c;主动为用户提…

网络版本的计算器

文章目录 1. TCP协议通讯流程2. 应用层2.1 再谈 "协议" 3. 网络版计算器3.1 服务器提供服务3.1.1 提取有效载荷3.1.2 服务器的反序列化3.1.3 计算服务3.1.4 服务器的序列化3.1.5 添加序列化后的长度 3.2 客户端发送请求3.2.1 填充客户端请求3.2.2 客户端进行序列化3.…

为什么我挖不倒sql注入啊!

为什么我挖不倒sql注入啊&#xff01; 背景一句话讲原理小白速挖注入 背景 不知道是不是初学安全的小伙伴都和我一样&#xff0c;刚开始学的时候&#xff0c;诶挺简单啊&#xff01;我咋这么聪明一学就会&#xff0c;靶场轻轻松松过关&#xff0c;到了实战根本挖不出来&#x…

【C++】float / double 与 0 值比较

【C】float / double 与 0 值比较 文章目录 【C】float / double 与 0 值比较1. 概述不同1.1 - float 与 double 实际存储1.2 - C 语言与 C 中不同 2. 比较方法2.1 - C 风格比较2.2 - 使用 limits 函数 3. 参考链接 References 1. 概述不同 当然使用普通的比较没有问题&#xf…

项目管理中,WBS与项目计划有什么区别?

为了成功完成项目并控制成本&#xff0c;我们有必要采取科学的项目管理方法。实现这一目标的工具是项目计划和工作分解结构&#xff08;WBS&#xff09;。 WBS 与项目计划是项目管理中必不可少的工具&#xff0c;但两者有不同的用途。WBS精确描述了项目工作和可交付成果&#…

前端vue入门(纯代码)26_多级路由

如果耐不住寂寞&#xff0c;你就看不到繁华。 【24.Vue Router--多级路由】 [可以去官网看看Vue Router文档](嵌套路由 | Vue Router (vuejs.org)) 在实际开发中&#xff0c;我们不单单会使用到一层路由&#xff0c;有时候会涉及到两层或两层以上的路由&#xff0c;多级路由…

带清除按钮的输入框

// index.html <!DOCTYPE html> <html> <head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, initial-scale1, maximum-scale1"><title>测试 - layui</title><link rel&…

Gof23设计模式之桥接模式

1.概述 桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;它将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。它的核心思想就是将一个大类或一系列紧密关联的类拆分成两个独立的抽象和实现部分&#xff0c;以便能够更加灵活地扩展…

html相关面试题

html相关面试题 1.html和css中的图片加载与渲染规则是什么样的&#xff1f;2.title与h1的区别、b与strong的区别、i与em的区别&#xff1f;title 和 h1 的区别b 和 strong 的区别i 和 em 的区别最后 3.script 标签为什么建议放在 body 标签的底部&#xff08;defer、async&…

Duplicate keys detected: ‘0‘. This may cause an update error.

问题 vue报错 Duplicate keys detected: ‘0‘. This may cause an update error. 原因 <div v-for“(item,id) in items” :key"id”>{{item.name}} </div><div v-for“(item,id) in items” :key"id”>{{item.address}} </div>:key重…

G1垃圾收集器

一、内存结构 G1将堆内存划分成2048个相同大小的内存Region&#xff0c;一般Region大小等于堆内存大小除以2048&#xff0c;比如堆内存有4个G&#xff0c;每个Region大小为2M&#xff08;-XX:G1HeapRegionSize参数可以设置Region大小&#xff0c;一般不推荐修改&#xff09; G…

C. Strong Password

Problem - C - Codeforces 思路&#xff1a;根据题意我们能够知道就是对于每一位都要再区间范围内&#xff0c;并且不是s的子序列&#xff0c;我们先看第一位&#xff0c;第一位有l[1]-r[1]这几种选择&#xff0c;假如说某一种选择在s中没有那么我们就选择以这个开头的作为答案…

一文讲透进销存管理,和4款值得推荐的进销存管理软件!

进销存管理已经成为当下很多企业和商户必须面对的问题&#xff0c;想要在激烈的市场竞争中取胜&#xff0c;告别混乱管理&#xff0c;必须要有完善合理的进销存管理方法。 那么&#xff0c;进销存管理具体指的是什么&#xff0c;如何做好进销存管理&#xff0c;以及市面上有哪些…

L1-033 出生年(c语言)

作者 陈越 单位 浙江大学 以上是新浪微博中一奇葩贴&#xff1a;“我出生于1988年&#xff0c;直到25岁才遇到4个数字都不相同的年份。”也就是说&#xff0c;直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求&#xff0c;自动填充“我出生于y年&#xff0c;直到…

【风险管理】认知风险管理

NLP技术的商业应用 介绍 机器学习 (ML) 应用程序已经无处不在。每天都有关于自动驾驶汽车人工智能、在线客户支持、虚拟个人助理等的新闻。然而&#xff0c;如何将现有的商业实践与所有这些惊人的创新联系起来可能并不明显。一个经常被忽视的领域是应用自然语言处理 (NLP) 和深…