业务监控支持对RESTful API的解析,配置业务监控规则时,支持HTTP Method解析和URI Path解析。

前提条件

您的应用已接入业务监控,详情请参见准备工作概述

背景信息

REST是用URI表示资源,用HTTP方法(GET、POST、PUT和DELETE)描述对资源的操作,而RESTful API就是REST风格的API。随着REST架构的流行,越来越多的互联网应用开始采用RESTful API这种比较成熟的API设计理念。

相对于传统API设计,行为和资源分离的RESTful API带来了以下变化:

  • HTTP Method
    REST架构的核心是资源,并且通过HTTP动词即HTTP Method来实现资源的状态转换:
    • GET:用来获取资源
    • POST:用来新建资源
    • PUT:用来更新资源
    • DELETE:用来删除资源
  • URI Path

    资源是网络上的一个实体,例如文本、图片和音视频等。而URI是统一资源标识符,可以唯一标识一个资源。因此,设计URI时,仅需将资源通过合理方式暴露出来即可。一些典型的URI设计如下:

    GET /orders:列出所有订单
    POST /orders:新建一个订单
    GET /orders/ID:获取某个指定订单的信息
    PUT /orders/ID:更新某个指定订单的信息(提供该订单的全部信息)
    PATCH /orders/ID:更新某个指定订单的信息(提供该订单的部分信息)
    DELETE /orders/ID:删除某个订单
    GET /orders/ID/goods:列出某个指定订单的所有商品
    DELETE /zoos/ID/goods/ID:删除某个指定订单的指定商品

业务监控通过支持HTTP Method解析配置监控规则

业务监控支持对HTTP Method的解析能力,可解析常用的GET、POST、PUT、DELETE和PATCH等方法。使用方式如下:

  1. 登录ARMS控制台
  2. 在左侧导航栏单击业务监控,在业务监控页面的右上角单击创建业务监控
  3. 新建业务监控页面,服务类型选择HTTP入口,从过滤规则分组规则下拉列表中选择Method
    说明
    • 过滤规则选择Method时,阈值文本框允许输入GET、POST、PUT、DELETE和PATCH(需大写)等常见的HTTP方法,表示按照指定Method进行过滤。
    • 分组规则选择Method时,表示按照指定Method分组展示监控数据。
    pg_business_create_task_http
    其他参数配置请参见以下参数列表。
    参数 描述 示例
    业务名称 业务监控任务的名称,必填。 下单入口。
    入口应用 入口应用列表显示所有已安装应用监控探针的 Java 应用,必选。选中所需应用后,ARMS 自动检测其应用探针的版本号。
    说明 应用探针升级至 2.6.2+版本才能使用业务监控功能,若检测到探针版本非 2.6.2+时,请您先升级探针,详情请参见准备工作概述
    demo-order-center。
    服务类型 目前仅支持 HTTP 入口,必选。 HTTP 入口
    服务名称 即应用提供的接口名称,必填。ARMS 会根据您设置的入口应用自动匹配出该应用最近提供的接口列表以便您选择。如果推荐的接口不满足需求时,您也可以编辑修改。
    服务名称的匹配模式支持以下 4 种类型:
    • 等于:完全匹配服务名称的业务接口,默认匹配模式。
    • 开始等于:匹配以服务名称为前缀的业务接口。若您需要监控具备相同前缀的业务接口时,可选择此模式。
    • 包含:匹配包含服务名称的业务接口。若您的应用提供大量业务接口时,可选择此模式快速监控您所需的业务接口。
    • 结束等于:匹配以服务名称为后缀的业务接口。以“.do”和“.action”配置结尾的典型 Web 框架比较适合使用此模式。
    等于 /api/buy。
    过滤规则关系 可以选择同时满足下述规则满足下述一条规则 同时满足下述规则
    过滤规则 对配置的业务接口进一步筛选过滤,选填。 过滤规则需要设置匹配参数(ParameterCookieHeader)、匹配 Key 值、匹配方式(==!=contains)和阈值。

    支持设置多条过滤规则,多条过滤规则之间逻辑关系由您设置的过滤规则关系决定。

    假设您的应用提供 /api/buy?brand=*** 这样的 URL,您希望监控 brand=Alibaba 的接口调用时,可在表单中设置服务名称等于 /api/buy,过滤规则Parameter brand == Alibaba。
    分组规则 对配置的业务接口进一步细化统计并分组,必填。分组规则需要设置匹配参数(ParameterCookieHeader)和匹配 Key 值。

    分组规则仅支持设置单条规则,可与过滤规则同时设置。

    注意 分组规则设置的 Key 值需是枚举类型。如果 Key 值无法枚举,则运行时会增加应用内存占用率。常见的无法枚举的字段例如某个业务模型的 ID 字段。
    假设您的应用提供 /api/buy?brand=*** 这样的URL,您希望对接口 /api/buy 的调用按brand 分别统计时,可在表单中设置服务名称等于 /api/buy,分组规则Parameter brand。
  4. 配置完成后,单击保存
  5. 业务监控页面,单击刚才创建的业务监控名称。
    业务监控详情页面,查看此监控任务对应的指标数据。sc_business_detail_metric

业务监控通过支持URI Path解析配置监控规则

对于动态URI Path,使用等于开始等于包含结束等于匹配模式都无法准确匹配。因此,业务监控新增模式匹配匹配模式,可支持Ant-style路径模式匹配规则,帮助您实现对某一类模式的URI的监控及分析。

表 1. Ant-style路径模式匹配规则
字符 描述 示例
? 匹配任意单个字符 com/t?st.jsp:表示匹配com/test.jspcom/tast.jspcom/txst.jsp, 但不包括com/tst.jsp
* 匹配任意零个或多个字符 com/*.jsp:表示匹配com目录下的.jsp文件。
** 匹配路径中的零个或多个目录 com/**/test.jsp:表示匹配com/test.jspcom/foo/test.jspcom/foo/bar/test.jsp,即com目录下任一层级的test.jsp文件。
{example:[a-z]+} 匹配符合正则表达式[a-z]+的字符,并将对应的路径变量命名为example。英文冒号(:)及正则表达式为非必填项。 com/{filename:\w+}.jsp:表示匹配com/test.jsp,并将test赋值给路径变量filename。
  1. 登录ARMS控制台
  2. 在左侧导航栏单击业务监控,在业务监控页面的右上角单击创建业务监控
  3. 新建业务监控页面,服务名称选择模式匹配,在服务名称的文本框中输入Ant-style路径模式的字符串。
    说明
    • 服务名称选择模式匹配时,如果输入的字符串中包含占位符大括号({}),则过滤规则分组规则可以选择配置路径变量,即PathVariable
    • 过滤规则选择PathVariable时,key值下拉列表会自动识别出路径变量,选择所需路径变量并在阈值文本框输入路径参数后,则可以按照指定的路径变量进行过滤。
    • 分组规则选择PathVariable时,key值下拉列表会自动识别出路径变量,选择所需路径变量后,则可以按照指定的路径变量分组展示监控数据。
    • 其他参数配置请参见以上新建业务监控任务参数列表
    pg_business_create_task_uri
  4. 配置完成后,单击保存
  5. 业务监控页面,单击刚才创建的业务监控名称。
    业务监控详情页面,查看此监控任务对应的指标数据。sc_business_detail_metric_uri