web应用监控_如何使用 OneAPM 代码级应用服务端性能监控平台 Ai 进行问题定位跟踪?...

8b16c24738e7634bfb4a50b5d183d42f.gif

关于全新版本的代码级应用服务端性能监控平台( Application Insight 简称 Ai),在上一篇文章中,我们以Ai的产品架构为维度讲述了如何发现应用性能问题,这一篇,将详述如何排查这些问题。

0 1  问题的排查

问题的排查可以分为两部分:

第一部分:具体tier排查,当你从应用拓扑图中发现有问题的tier时,通过通过弹框从节点、web事务入口、web事务、主机、容器五个维度了解概要,再通过概要进行下钻;

第二部分:综合排查,在web事务入口、web事务、调用链追踪、数据库列表、远程服务汇总了应用运行过程中所产生的数据,用户可直接进入某一模块,通过查看有问题的节点排查问题。

7d17bc9a1b1bd35750f8e93cdc5bf168.png

0 2  问题排查的步骤

Step1:具体tier排查

点开tier弹框查看具体内容,节点弹框包括总览部分、节点、web事务入口、web事务、主机、容器。

9cd674266c545f751fe9f89118e71fc0.png

  • 在节点部分可以查看部署探针实例的 tier 的 apdex、响应时间等,如果出现 apdex<0.9,说明该节点异常,可以点击节点名称查看详情;

  • 在web事务入口可以查看该tier相关的web事务入口,如果出现响应时间较长,可以点击web事务入口名称查看详情;

  • 在web事务可以查看该节点相关的web事务名称,如果出现响应时间较长的事务,可以点击web事务名称查看详情;

  • 在主机页面可以查看该tier部署的主机资源使用情况,如果出现cpu、内存、磁盘空间、磁盘io使用率较高(大于75%),可以点击主机名称查看详情;

  • 在容器页面(当应用部署容器时)可以查看该tier部署的容器资源使用情况,如果出现cpu、内存、磁盘空间、磁盘io使用率较高(大于75%),可以点击主机名称查看详情;

A 具体WEB事务入口排查

通过弹框定位到web事务入口的响应时间较长时,点击web事务入口名称进入详情。详情包括两部分:

1. 总览,包括调用拓扑图,显示web事务入口的该节点调用了哪些 web 事务,对于响应时间长的web事务可以点击名称进入查看详情;

2. 调用链追踪,调用链追踪页面按时间倒序排列显示抓取到的调用链情况,对于颜色为红色的调用链表明为不健康,用户可点击查看详情。

0c4218a5b2827273e328e9cd1ce7a843.png

  • web事务入口-调用链追踪

    进入调用链追踪入口后,点击图形中的“可钻取”,进行更深一步的定位(即trace或snapshot)

1e0a1f7bb0243e8f9444a012f71c21cc.png

  • web事务入口-调用链追踪-trace查看

    Trace部分包括四个模块,概要、详情、参数、SQL。在概要部分包括曲线图和最慢组件两部分,用户通过曲线图可以直接看到耗时占比最多的方法(或外部服务或数据库调用);通过最慢组件部分,可以直观的看到耗时最长的慢方法(或外部服务或数据库调用)。比如在下图中我们可以看到/ rest 方法耗时特别长,执行时间花了10.07s。点击进入详情可以查看到是调用外部服务时耗时最长,即可对此外部服务的调用进行优化。

849002439a00ed9819a38e5ac51ce111.png

ef4bfb933c086699fea3f8ce6940c88c.png

B 具体节点排查

通过弹框定位到节点的 apdex 较低或响应时间较长时,点击节点名称查看节点详情。在 OneAPM 中,一个节点对应一个 tier。点击进入tier后,排查顺序如下:

查看总览部分的响应时间图,该图包括了该 tier 的整体响应时间、该tier每个组成部分的响应时间和调用次数,比如 webapp 服务由 jvm 、数据库、外部调用、应用内部调用组成,直接可以看到数据库的调用时间比较长,因此可能 mysql 数据库产生了问题。

5826db0387090fa670893a1155a4e783.png

用户可点击查看该时间点的 trace 列表

c506bb90ed6d739e5a66c33b4903125e.png

ac12e4542cdf653608cecaa71630f56a.png

选择某条 trace 进入查看详情,我们可以直观的看到在 customer 表中进行了 select 操作耗时24.88s,用户点击“SQL”可以查看该 sql 语句是怎么写的,或者直接查看代码是否该语句写的有问题。

8b4212134ca9933482d1429ab7eeaa21.png

a29870c6a6096a8f120d8b80ae641b00.png

C 具体WEB事务排查

通过弹框定位到响应时间较长的web事务,可以点击进入web事务查看详情。Web 事务包括三部分,总览、trace(或 snapshot )、性能剖析。

  • 具体 Web 事务排查-总览页面

    总览页面可以查看该 Web 事务执行组件的响应时间图、最慢组件总览。(注:组件一般为慢方法、慢外部调用、慢数据库调用)在响应时间图表中以该 Web 事务的组成方法为单位,绘制出每个方法的调用耗时图,用户可点击进行钻取查看所选时间内的 trace 列表,或者直接查看总览部分,快速定位是哪部分产生问题。最慢组件部分包括慢 sql、慢内部调用、慢远程调用等,对于慢 sql ,可以在数据库列表查看该 sql 数据的相关详情;对于慢远程调用,可以在远程服务列表查看该语句的调用详情。

a7478b343ccb8cba77c5e8f3fae80f20.png

  • 具体 Web 事务排查- trace 页面

    在 trace 页面选择某条 trace,点击进入详情,在总览页面-最慢组件看到某方法执行耗时长耗时长达75.06秒,点击“详情”查看代码级别的调用详情,可以在执行此方法时进入了循环,因此可能是此处代码有问题,需要进行代码排查及优化。

755f341f8c4967d5808a6f31c507f7c9.png

887c034f90174e2db675f8c6dd047616.png

OneAPM 系统支持快照功能,过去两分钟内 Web 事务的响应时间超过2s则会触发快照机制,产生系统快照。快照采集时将应用系统进行了中断,因此捕获了更全面的代码堆栈信息,可以更深层次的定位到应用系统问题。

034c42224f9fc0030d1a73ffd02145ed.png

55e801c10461d36201776122e28bbdce.png

  • 具体 Web 事务排查-性能剖析页面

    当使用 trace 功能无法定位问题原因时,用户可以使用“性能剖析”功能,查看代码正在运行时的线程栈和代码栈。

11adb0792f5e78e97e7cc1178a9f3943.png

D 具体主机排查

通过弹框定位到主机资源耗费较大,可以点击主机名称进入主机详情,查看具体主机资源使用情况。

在主机详情页中,我们看到在 Web 事务响应时间调用图中的某些点的响应时间较大,鼠标悬停时同步看到 cpu 使用率较高,那么有可能是系统资源产生了瓶颈从而导致用户请求的响应时间变慢。

e69177ff292abf241564a672201eae6c.png

E 具体容器排查

通过弹框定位到容器资源耗费较大时,可以点击容器名称进入容器详情,查看具体容器资源使用情况。

在容器详情页中,我们看到 Web 事务响应时间调用图中的某些点的响应时间较大,鼠标悬停时可以看到该点容器的 cpu 使用率也非常高,有可能是容器资源到达瓶颈从而导致用户请求访问时间慢,用户可以进行该容器和其所在主机资源的排查,从而进行应用资源的重分配。

550aab207266156b58e320911d526e49.png

0 3  其他妙用

妙用1:主机容器资源监控管理

在 OneAPM Ai 中我们提供了对主机资源、容器资源的监控,用户可以查看主机资源的使用情况,包括 cpu、内存、load average、文件打开数、TCP 连接数、磁盘各分区 IO 使用率/空间使用率/ IO 读写次数/ IO 吞吐量、网络发送接收速度/发送接收包数,对主机资源进行一定的管理。当应用运行正常且主机资源耗费不高时,可以更换配置较低的机器;当测试团队在进行性能测试时亦可以使用 OneAPM Ai 查看主机资源的瓶颈,找到瓶颈点。

在容器监控中提供了 cpu 使用率、内存使用率、磁盘读写速度/读写次数、网络发送接收速度/发送接收次数指标的监控,用户还可以按主机进行过滤,查看某台主机上容器的相关情况,便于合理分配容器资源。

妙用2:探针资源监控管理

要使用 OneAPM Ai 监控应用性能,探针是稀缺资源,那么如何知道哪些自己的探针资源耗费在哪些地方?哪些应用在活跃的上报数据?哪些应用因为没有授权而不能上报数据?等等。通过“探针管理”便可一目了然。用户可便捷的进行资源的授权与释放。

05a0c6f00f5d17890c8ce39cbaad1706.png

通过这2篇文章,你是不是已经掌握了如何使用 OneAPM Ai 来定位应用故障问题呢!是不是跃跃欲试要试用一下呢?

Ai即将推出基础版与专业版,这简直就是小团队、创业团队的福音啊,快速定位系统问题,给用户最好的体验。进入www.oneapm.com,即可注册使用,快快了解一下吧。

ps:如果您有任何使用问题或建议,都可以联系的我们 Ai 的产品经理:tanghong@oneapm.com

1a1882d3b7719912a040acdc6b95f9b2.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着信息产业的不断壮大,对软件的需求也越来越多,推动了软件开发行业的迅猛发展,团体开发软件已经是非常重要的软件开发手段,为了加强团体协作的高效性和对软件开发的同步和准确性,实现对软件开发过程的有效的管理和对开发事务的有效及时的处理,就需要一款适合软件开发团队协作使用的事务跟踪和管理系统。 系统主要基于.NET Framework的体系结构,应用ASP.NET开发技术以及C#语言和ADO.NET,实现了基于ASP.NET的事务跟踪系统,首先分析了团体开发软件时的协作中碰到的同步性、时效性等问题,分析并获取了本事务跟踪系统的原始需求,在设计系统时采用了表现层USL、业务逻辑层BLL、数据访问层DAL以及数据访问层接口IDAL的三层模型,另外采用了Log4net为系统的管理并记录日志。实现了对事务的及时跟踪,使得对信息的管理更加及时、高效,提高了工作效率,该系统的主要功能的功能有人员注册、密码修改及找回,项目的创建、人员配置、人员锁定解锁,任务的创建、状态修改、任务的搜索、关注,邮件提醒,以及后台线程对数据库的操作实现历史任务信息的自动存档功能。 系统布署上线以后运行良好,经过对使用者的使用调查,加入了任务留言时邮件提醒、新增了对任务类别的管理及搜索,使得系统有更好的用户体验。 关键词:ASP.NET,ADO.NET,C#,Log4net,IDAL,事务跟踪
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
21. GET 和 POST 的区别在于HTTP请求的方式和传输数据的方式。GET方法通过URL传递参数,数据量较小,数据传输速度快,但不适合传输敏感信息;POST方法通过HTTP请求发送数据,数据量较大,传输速度慢,但适合传输敏感信息。 22. Selenium自动化测试需要三个东西:浏览器驱动程序、Selenium库、测试代码。 23. 定位元素可以使用id、name、class、tag name、link text、partial link text、CSS selector和XPath等方式。 24. 在web自动化测试中,需要特殊处理的场景包括JavaScript异步加载、页面跳转、弹出窗口、页面滚动、多窗口操作等。 25. 可以尝试使用Appium的TouchAction或者adb命令来模拟手势解锁操作。 26. 性能测试场景的设计需要考虑用户量、并发量、业务场景、数据量等因素,并通过压力测试、负载测试、稳定性测试等方式进行验证。 27. JMeter常用函数包括字符串处理函数、日期时间函数、数学函数、随机函数等。 28. 代码运行结果的原因可能包括代码逻辑错误、参数错误、数据类型错误、网络连接问题等。 29. 单例模式是一种只允许创建一个实例的设计模式,适用于需要全局唯一的资源或对象的场景。Python代码实现单例模式可以使用装饰器或者元类。 ```python # 使用元类实现单例模式 class Singleton(type): _instances = {} def __call__(cls, *args, **kwargs): if cls not in cls._instances: cls._instances[cls] = super().__call__(*args, **kwargs) return cls._instances[cls] class MyClass(metaclass=Singleton): pass ``` 30. 实现Android客户端与服务端数据同步可以使用网络请求框架如OkHttp、Retrofit等,将数据以json或xml格式传输。同时,可以使用本地数据库如SQLite、Realm等保存数据,实现本地缓存,减少网络请求次数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值