ARMS业务监控以代码无侵入的方式,可视化定义业务请求,提供贴合业务的丰富性能指标与诊断能力。在完成接入业务监控的操作后,您可以开始使用业务监控,包括创建业务监控任务和查看业务监控数据等。

适用场景

业务监控的适用场景如下所示:

  • 业务人员需要监控所关注的业务,但已有的监控系统无法表达业务语义。
  • 应用系统包含很多业务语义,运维人员需要快速配置并监控各个业务的流量数据。
  • 新业务接口上线后,接口不稳定导致出现异常或错误,开发人员需要针对此接口的每个调用分析定位问题。
  • 业务负责人需要梳理某个业务的依赖情况,并基于业务依赖进行相关业务优化,保障重点业务的稳定性。

其中,业务监控的典型场景如下所示。

在某电商中台化架构中,交易中心服务负责支撑所有上层业务的下单处理逻辑。不同类目的商品交易处理逻辑可能有很大差异,导致业务链路也完全不同。随着业务发展复杂度的增加,依靠传统的人力方式很难快速梳理出相关业务的交易链路。此外,由于不同类目的商品交易量存在差距,例如业务A今日的交易流量明显下跌,但业务A占整体交易流量的比重较低,所以单纯从整体交易下单的监控流量变化无法准确发现某些业务的问题。

在此场景下,您可借助ARMS业务监控,在交易中心的下单入口处配置按照商品类目分组的业务监控,例如按照女装类目和家电类型分组,即可监控任意类目的商品交易情况,以及快速梳理某一类目商品的交易链路。

dg_business_typical_case

限制条件

  • 业务监控仅支持监控Java应用。
  • 只有2.6.2+版本的应用探针支持ARMS业务监控功能。

操作流程

dg_business_workflow
说明 欢迎您使用钉钉扫描下方二维码或者搜索钉钉群号30004969加入钉钉群进行反馈。
dg__business_dingding

创建业务监控任务

  1. 登录ARMS控制台
  2. 在左侧导航栏选择业务监控 > 应用接入,并在页面顶部选择目标地域。
  3. 应用接入页面的右上角单击创建业务监控
  4. 新建业务监控页面的基础信息区域,填写以下信息。
    dg_business_create_btask
    参数 描述 示例
    业务名称 业务监控任务的名称,必填。 下单入口。
    入口应用 入口应用列表显示所有已安装应用监控探针的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. 单击高级设置,在高级设置区域设置以下参数后,单击保存
    新建业务监控-高级设置
    参数 描述
    向下游透传 染色标记是否在调用链中向下游应用节点透传。
    Dump业务参数 是否将业务参数记录到带染色标记的调用链上。
    是否全量采集 是否对带染色标记的调用链进行全量采集。

查看监控数据

  1. 登录ARMS控制台
  2. 在左侧导航栏选择业务监控 > 应用接入,并在页面顶部选择目标地域。
  3. 应用接入页面的业务监控任务列表中,单击目标任务名称所在行,查看对应应用业务的响应时间请求数错误数的时序曲线图。
  4. 应用接入页面的业务监控任务列表中,单击任务名称。
  5. 业务监控详情页面,查看该应用的详细调用拓扑。您还可以按照应用名称接口名称业务参数进一步筛选过滤。
    dg_business_detail_overview
    • 单击SQL分析页签,查看SQL请求列表。借助此标签页,您可以找出是哪一个SQL造成某个服务过慢。您还可以单击某个SQL中的接口快照查看此SQL执行逻辑所处的完整代码链路。
    • 单击异常分析页签,查看应用抛出的Java异常。您还可以单击某个异常中的接口快照查看异常堆栈所处的完整代码链路。
    • 单击错误分析页签,查看应用的错误数和HTTP状态码统计数据。您还可以单击TraceId查看调用链路相关信息。
    • 单击链路上游链路下游页签,查看应用上游或下游的接口及其调用性能指标。
    • 单击接口快照页签,查看接口调用的快照,可帮助您根据接口名称查找历史调用记录。您还可以单击TraceId查看调用链路相关信息。

修改业务监控任务

  1. 登录ARMS控制台
  2. 在左侧导航栏选择业务监控 > 应用接入,并在页面顶部选择目标地域。
  3. 应用接入页面的业务监控任务列表中,单击任务名称。
  4. 在左侧导航栏单击业务监控设置
  5. 规则配置页签修改业务监控参数,然后单击保存

关闭业务监控

  1. 登录ARMS控制台
  2. 在左侧导航栏选择应用监控 > 应用列表,并在页面顶部选择目标地域。
  3. 应用列表页面,单击目标应用的操作列的设置
  4. 应用设置页面单击自定义配置页签。
  5. 业务监控区域关闭业务监控开关
    sc_business_close_switch

删除业务监控任务

  1. 登录ARMS控制台
  2. 在左侧导航栏选择业务监控 > 应用接入,并在页面顶部选择目标地域。
  3. 应用接入页面的业务监控任务列表中,单击任务名称。
  4. 在左侧导航栏单击业务监控设置,在右侧页面单击删除
  5. 删除页签单击删除,在弹出的提示对话框中单击确定
    注意 此操作将会清除该业务监控的所有数据,删除之后无法恢复!