如何使用阿里云ARMS诊断Java服务端报错问题

摘要: 这是ARMS团队推出的“网站常见问题1分钟定位系列篇”第二文。

 

1533625806953_28aeadd4_f9c8_4b76_8506_bd2ce62fcbcd

我的网站为什么一错再错

网页报错,尤其是5XX错误是互联网应用最常见的问题之一。5XX错误通常发生于服务端。服务端是业务逻辑最复杂,也是整条网络请求链路中最容易出错、出了错最难排查的地方。

运维工程师与研发工程师排查此类问题,通常要通过登录机器查看日志来定位问题。对于一般的Java应用错误日志,通常是这幅模样:

1533627938016_69333c17_98d0_4076_9931_b25ecac03303

一般来说,对于逻辑不算太复杂、历史不算“太悠久”的应用来说,登录机器看日志的方式能够很大程度上地解决网站报错的问题。但遇到下列情况时,使用传统的方式可能就有些困难:

  • 在一个分布式Java应用集群中,我想知道这类错误每分钟发生了多少次,什么时候开始发生的;
  • 系统太老,遗留异常我不想管了,我只想知道,今天和昨天相比,发布前和发布后相比,多了哪些异常;
  • 我想知道这个错误对应的是哪个Web请求,Web请求的参数是什么;
  • 客服给了我一个用户下单失败的订单号,我想知道这个用户下单为啥失败,到底哪里错了;

使用阿里云ARMS的0埋点技术,1分钟定位“错”问题

利用阿里云ARMS(应用实时监控 - 链接)的异常自动捕捉、收集、统计、溯源能力,您只需要在您的应用启动脚本中增加几行探针加载逻辑 - 链接,不需要对您的应用代码做任何改动,即可以让应用中所有“错”调用无处可逃。

1、对应用中的所有错误进行全方位监控,只需要安装ARMS Java探针(如果您的应用托管于EDAS,您甚至可以跳过这一步 - 链接

  • 开通ARMS,并创建应用;
  • 下载Java探针包并解压;
  • 在Java应用启动脚本中增加 -javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey=xxx -Darms.appId=xxx (appId和licenseKey根据页面分配的信息填写,详情可看 - 链接)
    打开ARMS页面,数据开始上报,验证Java探针安装成功。

1533209461367_8f1194b0_58e2_4066_956b_8ae177672ecb_jpeg

2、所有“错”一览无余

  • 成功安装探针后,在应用概览中我们立即就能看到系统中发生的所有“异常”,异常类型的分布以及发生次数。

1533630070606_1811d6b0_c512_42c5_9ac5_15b7d10aeee9_1_jpeg
1533630082917_a4a6adba_46f9_4063_aea6_c302bf923bee_jpeg

  • 点击“应用详情”,可以看到更详细的异常分布图,您可以看到集群或者单台机器的错误详情,从下图中,我们可以看到从11点开始系统的错误发生了激增的现象!

3、错误溯源:找到导致错误的原因

  • 光看到错误的分布还远远不够,我们需要知道这个错误发生的原因。虽然日志中Java的异常堆栈中包含了调用的代码片段,但并不包含这次调用的完整上下游和请求参数。
  • ARMS的探针技术,通过字节码增强技术,可以以很小的性能开销完整捕获异常上下游的完整调用快照,让异常的原因更加清晰。
    1533828533560_fc568ef8_a94c_4d39_a114_73756abd5974

1533828827691_e68ff0c8_db8b_4793_8b48_b3244b19f46b

  • 我们可以从调用链快照中清晰地看到一次异常中的完整链路,我们甚至可以看到这次调用的详细的请求参数和异常日志,以获得更加详细的问题上下文信息。
  • 至此,我们完成了一次全白屏化的线上错误诊断过程,通过ARMS探针诊断工具,再也不需要登录机器诊断线上错误问题了。

4、防患于未然 -- 设置告警

当然,您可以在ARMS的告警设置中对某一个接口或全部接口设置告警,让页面接口出现错误时第一时刻通知到您的运维团队。

原文链接

本文为云栖社区原创内容,未经允许不得转载。

 

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

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

相关文章

.iml文件_jetbrains误删maven 项目.iml文件后的处理方法

jetbrains 打开maven项目, 出现如下提示这个时候打开 Terminal在提示符下输入:mvn idea:module 回车运行,就可以修复。Relationship between .iml file and pom.xml fileThe intelliJ idea doesnt understand the maven project model (POM.x…

亚马逊消费者业务宣布永久关闭 Oracle 数据库,去O新进展;华为发布最新5G全系列解决方案;苹果正研究新设备“智能戒指”……...

戳蓝字“CSDN云计算”关注我们哦!嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周五第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

vs未能找到程序集platform.winmd_PP体育直播大连人VS恒大:新老8冠王首尾对决竟有十大看点...

北京时间8月25日,中超大连赛区的第7轮较量,广州恒大迎战大连人,恒大取胜即可继续位列榜首,同时获得半程冠军。而对于前6轮不胜的大连人来说,已经被逼上了绝境。虽然大连人晋级争冠组的前景极为渺茫,但一胜难…

Sentinel如何通过限流实现服务的高可用性

摘要: 在复杂的生产环境下可能部署着成千上万的服务实例,当流量持续不断地涌入,服务之间相互调用频率陡增时,会产生系统负载过高、网络延迟等一系列问题,从而导致某些服务不可用。如果不进行相应的流量控制&#xff0c…

京信通信:数据智能为生产调试“增效瘦身”

摘要: “数据驱动测试优化,突破自动测试边界,赋能智慧测试新模式。”——京信智能制造副总经理葛鑫 “进入车间,映入眼帘的是一条长约20 米的 O 型生产线,产线前三名工人和几个机器人正协同工作,将各种元器…

c++代码好玩_一行Python代码能干嘛?快来看看吧!有表白利器哦

python有很多优雅有趣的代码写法,同时还很简短,以至于当我刚开始接触这个编程语言的时候,就爱不释手。而前几天的编程语言榜单中python也超越了java成为了第一,挺替python开心的。python到底有多有趣呢?一行代码告诉你…

探秘HDFS —— 发展历史、核心概念、架构、工作机制 (上)| 博文精选

戳蓝字“CSDN云计算”关注我们哦!作者 | Mr-Bruce转自 | CSDN博客责编 | 阿秃几周前,笔者做了一个与HDFS有关的技术分享,以知识普及为目的,主要分享了Hadoop发展历史、HDFS核心概念、整体架构、工作机制等内容。本文大…

linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(配置数据库监听_09)

修改dbca.rsp响应文件中的重要参数 su - oracle cd response/ vim dbca.rsp本次安装过程中设置了下列参数:(注意下面参数视情况而定,不要照抄,原文件都有说明的) RESPONSEFILE_VERSION "11.2.0" #不能更改 OPERATION_TYPE "…

如何量化考核技术人的 KPI?

摘要: 为什么需要技术KPI? 在业务技术团队,有一个不好的趋势就是团队越来越业务,越来越没有技术味道。每个人都在谈业务,技术大会上在谈业务,周会上在聊业务,周报里写的是业务项目...... 唯独少…

pandas绘图_pandas与seaborn可视化对比小案例

Python网络爬虫与文本数据分析(视频课)之前分享过pandas也是可以作图的,今天复习一下pandas作图,并与seaborn做对比,熟悉下各自绘图的特点。导入用到的库import pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns%matplotli…

docker安装zookeeper_Docker安装Zookeeper以及Zookeeper常用命令

Docker安装Zookeeper下载并运行$ docker search zookeeper # 查看一下镜像$ docker pull zookeeper:3.4.9 # 拉取指定版本zk镜像$ docker images # 查看image ID$ mkdir -p /root/docker/zookeeper/data $ docker run -d -p 2181:2181 -v /root/docker/zookeeper/data:/data/…

复杂 SQL 查询跑不动?DRDS 只读实例来解决!

摘要: 在实际业务生产环境中,业务应用系统在使用 OLTP 数据库将数据进行存储后,均会存在如后台运营类系统进行统计报表分析等场景的复杂 SQL 查询诉求。 背景 在实际业务生产环境中,业务应用系统在使用 OLTP 数据库将数据进行存储…

三年一跳槽、拒绝“唯学历”,火速 Get 这份程序员求生指南!

戳蓝字“CSDN云计算”关注我们哦!作者 | 郭芮责编 | 阿秃根据埃文斯数据公司(Evans Data Corporation)2019 最新统计的数据显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640 万。但在这…

Oracle的instantClient的安装配置(都是64位)

背景:本地没有安装oracle客户端和服务端(最简单) 文章目录一、远程连接方案二、软件下载2.1. 官网下载instantclient2.2. 解压2.3. 位置前移2.4. 创建目录和监听文件2.5. 添加监听信息2.6. 设置以下环境变量2.7. plsql配置2.8. 重启启动一、远…

如何利用阿里视频云开源组件,快速自定义你的H5播放器?

摘要: Aliplayer希望提供一种方便、简单、灵活的机制,让客户能够扩展播放器的功能,并且Aliplayer提供一些组件的基本实现,用户可以基于这些开源的组件实现个性化功能,比如自定义UI和自己App server的交互等等&#xff…

vmware 蓝屏_网络安全小百科--利用微软CVE 2019-0708漏洞让对方系统蓝屏死机

漏洞背景:Windows 系列服务器于 2019 年 5 月 15 号,被爆出高危漏洞,该服务器漏洞利用方式是通过远程桌面端口3389进行攻击的。这个漏洞是今年来说危害严重性最大的漏洞,跟之前的永恒之蓝病毒差不多。2019年9月7日晚上凌晨 1 点左右&#xff…

instantclient使用步骤

1、 解压缩instantclient后(假定目录为:G:\instantclient_11_2_64) 把oracle安装目录下的G:\oracle\product\11.2.0\dbhome_1\NETWORK 文件夹复制到instantclient安装目录, 修改instantclient目录下的NETWORK\ADMIN\tnsnames.ora文…

NLP中的迁移学习

摘要: 迁移学习正在各个领域大展拳脚,NLP领域正在受到冲击! 在我们之前的文章中,我们展示了如何使用CNN与迁移学习为我们自己创建图片构建分类器。今天,我们介绍NLP中迁移学习的最新趋势,并尝试进行分类任…

Linux Shell脚本专栏_服务器系统配置初始化脚本_01

文章目录一、服务器系统配置初始化1. 设置时区并同步时间① 脚本编写②脚本说明2. 禁用selinux① 脚本编写②脚本说明3. 关闭防火墙① 脚本编写②脚本说明4. 历史命令显示操作时间① 脚本编写②脚本说明5. 禁止root远程登录① 脚本编写②脚本说明6. 禁止定时任务发送邮件① 脚本…

公文字体字号标准2020_手把手教你写公文——红头文件的制作技巧

前言:不管你是在行政部门、事业单位,国企,还是在私企,只要是在办公室工作,一定会接触到公文处理的相关事务。大家都知道,红头公文作为一种有法律效力的文书,其规范性尤为重要,而国家…