全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
业务实时监控服务 ARMS

监控任务故障诊断最佳实践

更新时间:2017-11-21 11:45:26

在日常运维中,用户可能会由于各种各样的原因导致监控任务出现异常。本文将详细介绍出现问题的各种场景,原因,以及处理方法,旨在帮助用户快速解决问题。

ARMS 的任务处理环节介绍

如前面章节所介绍,ARMS 的监控任务主要由三个环节组成:

  1. 数据拉取:ARMS 计算集群朝数据源,如 Loghub, ECS Log,进行数据抓取。

  2. 数据清洗:ARMS 在抓取数据后,成功清洗(或者说切分)了多少条数据。

  3. 数据聚合:ARMS 在清洗数据之后,在内存中成功的进行了多少次数据聚合以及数据持久化操作。

在以上每个步骤中,创建和启动任务以后 ARMS 都有监控显示运行详情。在监控任务管理页面点击目标任务,将展示任务运行详情,如下图所示。

数据详情图

此页面上各图表展示的是对应系统时间内,ARMS 处理的数据行数。

当任务出现异常时,可以从该页面进行异常诊断。以下详细介绍各种情况。

任务异常诊断的一般过程

任务运行详情页所有豆腐块显示“暂无数据”

此时可以检查以下几点:

  1. 如果对应的监控任务是刚启动,那么稍等 1-2 分钟,等待数据拉取。
  2. 可能这段时间确实没有数据,点击面板上时钟图标,拉长时间范围查看一下,看看是否有历史数据。

任何豆腐块显示有红色异常线条

正常情况下,3 个面板都只会有一条蓝色线条。如果出现异常状况,在相应的面板里面会多出一条红色线条。在任务运行的三个环节中,都有可能出现异常。点击惊叹号按钮可以查看异常的抽样详情,用于判断异常原因。以下以数据清洗和数据聚合为例来展示如何来进行异常的诊断。

  1. 数据清洗异常诊断。在此我们给出一个比较常见的案例,如下图:

    数据切分异常线条

    出现红色曲线之后,请先点击面板上的叹号按钮,查看异常类型。如下图, code 为 SG10100 的字段,出现了类型转换异常

    SG10100错误

    在上述例子中,产生该问题的原因通常是,使用智能切分的时候,提供的字段值被判定为 long 型,而实际产生数据的时候,出现了不能转换为 long 的 string 类型。

    解决该问题的方案是暂停监控任务之后,编辑监控任务,在第 2 步日志清洗页面,选择自定义切分,将 LongKey 的 code 换成 StringKey ,保存后恢复监控任务。

    切分器

    重新运行之后,可以发现后续的红色线条数值变为 0,切分异常得到解决。

    数据切分恢复

  2. 数据聚合异常诊断。

    紧接刚才例子,通过调整切分模型,切分的异常消失,但是出现了数据聚合的异常。

    聚合错误曲线

    单击叹号按钮查看,可以看到一个 String 无法转换为 Number 类型的异常,如下图:

    聚合异常

    此时需要回忆一下,在建立数据集时是否对刚才 LongKey 的 code 做过一些算术运算。经过排查,发现在某个数据集中,我们对 code 这个字段进行了 SUM 。

    编辑数据集

    当时进行 SUM 运算只是为了试试 SUM 的效果。分析之后,将 SUM 去除,异常消失。

本文导读目录