事务列表
事务表示一个HTTP请求,是从“用户请求 > webserver > DB > webserver > 用户请求”的完整过程。现实生活中,事务即一次任务,用户使用应用完成一项任务,比如电商应用程序中一次商品查询就是一个事务,一次支付也是一个事务。
在执行一个事务时,可能需要服务间多次调用来完成该事务,任何一次慢调用或错误调用都会导致系统响应较慢。在日常运维中,可通过对这些响应较慢的事务进行分析,从而定位、解决应用问题,以提升服务的用户体验。
事务界面操作说明
事务详情展示列表中,“错误数”是返回码大于等于400的请求的数量,其他请求不在错误数统计范围中。
- 在事务界面,可以展示设置时间内应用的事务详情。
- 展示应用中事务的调用次数、错误次数分布情况。
- 展示应用中事务的整体时延分布情况。
- 在事务界面,单击“新增分组”,勾选事务项,可以将已选择的事务项移至新组,命名分组名称。
- 在事务界面,单击“事务拓扑”,可以跳转到拓扑界面查看该事务的拓扑详情。
- 在事务界面,单击“查看调用链”,可以跳转到调用链界面查看该事务的调用链数据。
使用事务分析问题
以某事务极慢为例。
- 登录应用性能管理。
- 在左侧导航栏中选择“事务列表”。
- 在事务列表中选择事务组中极慢的事务。
- 单击操作列中“事务拓扑”查看该事务的全链路拓扑结构,在拓扑界面中查看实例具体情况。
- 右键单击极慢的实例,选择“调用链搜索”,跳转到调用链页面,通过参数、调用耗时等进一步定位问题。
自定义事务
为了更精准定义事务,精准采集事务相关的调用链数据,您可以利用URI模板自定义事务,将多个请求分类放至不同的事务中。当采集器接收到请求时,优先计算自定义事务。
- 在事务界面,单击“自定义事务”。事务是由请求方法和正则表达式组成的,事务格式为{Request Method}_/{pattern},例如:请求方法为GET、POST,正则表达式为 /{name},则事务为GET,POST_/{name}。
- 选择“请求方法”。请求方法是一个或多个请求的方法名,包括GET、PUT、DELETE、POST、HEAD、CONNECT、OPTIONS、PATCH、TRACE、ALL,其中ALL表示可以匹配所有的请求方法。
- 在“正则表达式”文本框中,输入事务规则,单击“确定”,自定义事务规则保存成功。
正则表达式采用Spring MVC框架的URI模板匹配方式,例如:@RequestMapping(path="/owners/{ownerId}/pets/{petId}", method=RequestMethod.GET),其中ownerId、petId为变量。
如果您需要添加多条自定义事务规则,请单击“添加正则匹配”。
- 事务规则只能由英文大小写字母、数字、特殊字符“?”“*”“|”“=”“{}”“&”组成,且以“/”开头,不以“/”结尾,长度限制为1~50个字符。
- “?”“*”支持模糊匹配,“?”可以匹配一个字符,“*”可以匹配一个URI中两个“/”中间的0到n个字符,“**”可以无限匹配字符。例如:输入/first/*,可以匹配/first/test,不能匹配/first/test/test,输入/first/**,可以匹配/first/test、/first/test/test。