应用性能智能巡检最佳实践

本文介绍如何通过观测云应用性能智能巡检,分析应用程序服务的上下游信息,快速确认应用程序的根因异常问题。

最佳实践
banner.jpg

概述

应用性能检测基于 APM 异常根因分析检测器,选择要检测的 service 、 resource 、 project 、 env 信息,定期对应用性能进行智能巡检,通过应用程序服务指标异常来自动分析该服务的上下游信息,为该应用程序确认根因异常问题。

前提条件

在观测云上创建创建 API Key

1、登录观测云控制台,选择「管理」 - 「API Key管理」。

2、创建新 Key。

3、复制并保存相应的 API Key,后续会用到。

部署应用智能巡检脚本

1、登录 Func 平台,进入脚本市场,安装观测云自建巡检 core 核心包脚本。

2、安装观测云自建巡检(APM 性能)脚本。

3、根据提示输入 API key ID ,API key 和 Guance Node,然后点击部署。

Guance Node 默认为杭州节点,节点情况可以参考:https://func.guance.com/doc/ui-guide-development-module-guance-node/

4、点击前往启动脚本跳转到开发页面。

5、点击执行脚本。

6、脚本执行成功后,登录观测云,在「监控器」 - 「智能巡检」可以看到 APM 性能巡检成功开启。

巡检事件报告

在本次智能应用性能巡检中,我们检测到 ruoyi-gateway 服务的 P99 响应时间出现异常,具体异常情况如下:

  • 检测对象:ruoyi-gateway
  • 异常描述:P99 响应时间呈现异常上升趋势
  • 异常时间范围:2024-10-14 20:25 至 2024-10-14 21:15

根因分析

通过对 ruoyi-gateway 服务的深入分析,我们发现异常的主要原因如下:

  • 服务响应时间增加:P99 响应时间从正常水平显著增加至 150ms,而正常情况下应为 90ms 以下。
  • 请求处理延迟:在特定时间点,ValidateCodeHandler.handle 处理请求的时间超过了正常范围。

事件概览

在巡检期间,我们记录了以下关键性能指标:

  • 平均响应时间:9.28ms
  • 最小响应时间:162μs
  • 最大响应时间:139.45ms
  • 异常时段:21:25 至 21:15

异常详情

异常详情显示,ruoyi-gateway 服务在特定时段内响应时间显著增加,具体数据如下:

  • 21:10:响应时间开始上升
  • 21:10 - 21:15:响应时间达到峰值

异常影响

异常影响分析表明,以下服务和资源受到此次异常的影响:

  • 服务名称:ruoyi-gateway
    • 资源:GET /code
  • 服务名称:ruoyi-nginx
    • 资源:GET /prod-api/code
  • 服务名称:ruoyi_web_demo
    • 资源:/prod-api/code

异常链路采样

通过对异常链路的采样,我们发现以下链路 ID 相关的请求处理存在问题:

  • 时间:2024-10-14 21:06:33
  • 服务:ruoyi-gateway
  • 资源:ValidateCodeHandler.handle
  • 链路ID:8895535103034920389

告警通知

在异常发生时会收到如下告警信息:

点击“前往工作云空间查看”可以直接跳转到观测云事件查看器查看事件详情。

在根因分析页面,点击跳转链接,可以直接跳转到相应异常链路。

结论与建议

综上所述,ruoyi-gateway 服务在指定时段内经历了显著的性能下降,主要表现在 P99 响应时间的增加。这可能是由于后端服务处理延迟、资源竞争或配置问题导致的。建议采取以下措施:

  • 优化后端服务:检查 ValidateCodeHandler.handle 的实现,优化代码逻辑,减少不必要的处理时间。
  • 资源监控:增加对关键资源的监控,及时发现并解决资源瓶颈问题。
  • 配置审查:审查相关服务的配置,确保服务设置合理,能够应对高流量情况。
  • 性能测试:在修改后进行性能测试,确保优化措施有效,且未引入新的性能问题。
Get a tailored plan

Contact us

Join the community

Scan with WeChat
to join the community

Try Guance

Start online and pay only for what you use.

Get started

Choose a Guance plan

Code hosting