业务监控支持对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等HTTP Method。使用方式如下:

  1. 登录ARMS控制台
  2. 在左侧导航栏单击业务监控 > 自定义
  3. 自定义页面的右上角单击创建业务监控
  4. 新建业务监控页面,服务类型选择HTTP入口,从过滤规则分组规则下拉列表中选择Method
    说明
    • 过滤规则选择Method时,阈值文本框允许输入GET、POST、PUT、DELETE和PATCH(需大写)等常见的HTTP Method,表示按照指定Method进行过滤。
    • 分组规则选择Method时,表示按照指定Method分组展示监控数据。
    pg_business_create_task_http
    其他参数配置请参见以下参数列表。
    参数 描述 示例
    业务名称 业务监控任务的名称,必填。 下单入口。
    入口应用 入口应用列表显示所有已安装应用监控探针的Java应用,必选。选中所需应用后,ARMS自动检测其应用探针的版本号。
    说明 应用探针升级至2.6.2+版本才能使用业务监控功能,若检测到探针版本非2.6.2+时,请您先升级探针,具体操作,请参见升级探针
    arms-k8s-demo。
    服务类型 设置服务类型。
    • HTTP入口:适用于按HTTP流量特征进行业务链路染色场景。
    • Kubernete Pod Metadata: 适用于按照K8s Pod环境特征进行业务链路染色场景。当选择的入口应用为K8s部署时才会显示此参数。
    HTTP入口
    服务名称 即应用提供的接口名称,必填。仅当服务器类型设置为HTTP入口时才会显示此参数。ARMS会根据您设置的入口应用自动匹配出该应用最近提供的接口列表以便您选择。如果推荐的接口不满足需求时,您也可以编辑修改。
    服务名称的匹配模式支持以下4种类型:
    • 等于:完全匹配服务名称的业务接口,默认匹配模式。
    • 开始等于:匹配以服务名称为前缀的业务接口。若您需要监控具备相同前缀的业务接口时,可选择此模式。
    • 包含:匹配包含服务名称的业务接口。若您的应用提供大量业务接口时,可选择此模式快速监控您所需的业务接口。
    • 结束等于:匹配以服务名称为后缀的业务接口。以“.do”和“.action”配置结尾的典型Web框架比较适合使用此模式。
    • 模式匹配:匹配动态URI Path,支持Ant-style路径模式匹配规则,可实现对某一类模式的URI的监控及分析。
    等于 /api/buy。
    过滤规则关系 可以选择同时满足下述规则满足下述一条规则 同时满足下述规则
    过滤规则 对配置的业务接口进一步筛选过滤,选填。
    • 服务器类型设置为HTTP入口时:过滤规则需要设置匹配参数(ParameterCookieMethodPathVariableHeader)、匹配Key值、匹配方式(==!=contains)和阈值,其中,只有在服务名称选择模式匹配时,且输入的字符串中包含占位符大括号({}),则匹配参数会出现PathVariable选项。

    • 服务器类型设置为Kubernete Pod Metadata时:过滤规则需要设置匹配参数(podLabelpodAnnotationpodNamepodNamespacepodUIDpodIpnodeNamehostIppodServiceAccount)、匹配方式(==!=contains)和阈值。

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

    假设您的应用提供 /api/buy?brand=*** 这样的URL,您希望监控brand=Alibaba的接口调用时,可在表单中设置服务名称等于 /api/buy,过滤规则Parameter brand == Alibaba。
    分组规则 对配置的业务接口进一步细化统计并分组,必填。
    • 服务器类型设置为HTTP入口时:分组规则需要设置匹配参数(ParameterCookieMethodPathVariableHeader)和匹配Key值,其中,只有在服务名称选择模式匹配时,且输入的字符串中包含占位符大括号({}),则匹配参数会出现PathVariable选项。
    • 服务器类型设置为Kubernete Pod Metadata时:分组规则需要设置匹配参数(podLabelpodAnnotationpodNamepodNamespacepodUIDpodIpnodeNamehostIppodServiceAccount)。

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

    注意 分组规则设置的参数需是枚举类型。如果参数无法枚举,则运行时会增加应用内存占用率。常见的无法枚举的字段例如某个业务模型的ID字段。
    假设您的应用提供 /api/buy?brand=*** 这样的URL,您希望对接口 /api/buy的调用按brand分别统计时,可在表单中设置服务名称等于 /api/buy,分组规则Parameter brand。
  5. 配置完成后,单击保存
  6. 在左侧导航栏单击业务监控 > 自定义,单然后在自定义页面单击刚才创建的业务监控名称。
    业务监控详情页面,查看此监控任务对应的指标数据。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. 自定义页面的右上角单击创建业务监控
  4. 新建业务监控页面,服务名称选择模式匹配,在服务名称的文本框中输入Ant-style路径模式的字符串。
    说明
    • 服务名称选择模式匹配时,如果输入的字符串中包含占位符大括号({}),则过滤规则分组规则可以选择配置路径变量,即PathVariable
    • 过滤规则选择PathVariable时,key值下拉列表会自动识别出路径变量,选择所需路径变量并在阈值文本框输入路径参数后,则可以按照指定的路径变量进行过滤。
    • 分组规则选择PathVariable时,key值下拉列表会自动识别出路径变量,选择所需路径变量后,则可以按照指定的路径变量分组展示监控数据。
    • 其他参数配置请参见以上新建业务监控任务参数列表
    pg_business_create_task_uri
  5. 配置完成后,单击保存
  6. 在左侧导航栏单击业务监控 > 自定义,然后在自定义页面单击刚才创建的业务监控名称。
    业务监控详情页面,查看此监控任务对应的指标数据。sc_business_detail_metric_uri