观测与监控数据加工(新版)任务

本文介绍数据加工(新版)任务运行的指标详情,如何查看数据加工仪表盘、以及配置任务监控。

指标数据

数据加工(新版)任务的运行指标需要开启SLS任务运行日志,开启任务运行日志请参见管理服务日志

仪表盘

创建数据加工任务后,日志服务默认为每个加工任务创建一个仪表盘,位于数据加工任务详情页面。您可以在仪表盘中查看数据加工任务运行指标。

操作步骤

  1. 登录日志服务控制台

  2. 在Project列表区域,单击目标Project。

    image

  3. 在左侧导航栏中,选择任务管理 > 数据加工

  4. 单击目标数据加工任务,在执行状态区域,查看仪表盘信息。

总览指标

总览指标信息如下所示。

image.png

  • 加工速率:默认时间周期为1小时,统计窗口为1分钟,速率为数据条目数/秒。

    • ingest:从源Logstore的各个shard中读到的数据条数。

    • deliver:成功写入到目标Logstore的数据条数。

    • failed:从源Logstore的各个shard中读取,在加工过程中发生失败的数据条数。

  • 读取日志数总计:从源Logstore的各个shard中读取到的数据条数总计,默认时间周期为1天。

  • 写出日志数总计:成功写入到所有目标Logstore的数据条数总计,默认时间周期为1天。

  • 失败日志数总计:从源Logstore的各个shard中读取、并在加工过程中发生失败的数据条数总计,默认时间周期为1天。

  • 写出日志数占比:成功投递到目标Logstore的数据条数占源Logstore读取到数据条数的比例,默认时间周期为1天。

Shard详情分析

统计每分钟窗口内,加工任务读取源Logstore数据时,每个Shard的指标。

image.png

  • Shard消费延迟(s):每一个Shard中写入的最后一数据的接收时间,与数据加工中该Shard正在处理的数据接收时间之差,单位为秒。

  • 活跃Shard统计:默认统计周期为1小时。

    • shard: 指定统计的Shard编号。

    • ingest:从该Shard中读到的原始数据条数。

    • failed:从该Shard中读到原始数据,并在加工过程中发生失败的数据条数。

运行异常

您可以根据message字段,查看运行报错的细节。

image.png

告警规则

监控数据加工(新版)任务,依赖于任务运行指标,请参见指标数据。可以使用日志服务告警功能实现任务监控,请参见告警。这里介绍如下的数据加工(新版)告警规则:处理延迟监控、处理异常报错监控、处理流量(绝对值)监控、处理流量(同比)监控。创建告警规则请参见创建日志告警规则

重要

创建数据加工(新版)告警规则添加的查询统计的项目和日志库为该项目任务运行日志保存的项目和日志库。任务运行日志保存请参见管理服务日志

image

处理延迟监控

项目

说明

作用

用于监控数据加工任务中Shard消费延迟情况。当加工延迟时长大于规则参数中延迟监控阈值时触发告警。

关联仪表盘

请参见Shard消息延迟

分析SQL样例

以下模板{job_name}替换为需要监控的数据加工(新版)任务名称。

__topic__: etl_metrics and 
job_name: {job_name} and
"_etl_:connector_meta.action": ingest
| select
  split_part(
    "_etl_:connector_meta.task_name",
    '#',
    2
  ) as shard,
  max_by("_etl_:connector_metrics.lags", __time__) as lags
group by
  shard
having
  shard is not null
limit
  all

监控规则

  • 触发条件选择有数据匹配,评估表达式为:lags>120,延迟监控阈值为120秒。

  • 查询区间为:5分钟。

  • 检查频率为:5分钟。

说明

为了避免数据加工(新版)按1分钟周期更新处理指标,以及数据洪峰导致的延迟情况,导致的告警误报,建议按照以上规则配置。

消除方法

请按照如下原则进行处理:

  1. 如果该数据加工任务处理历史数据,且刚创建,需要一段时间完成历史数据,请先观察1小时,看延迟是否降到告警范围以内。若否,则进行下一步。

  2. 如果源Logstore的数据量明显增长:

    • 加工速率 (events/s)速度同时提高,而且Shard消费延迟(s)出现下降趋势,则说明由于源Logstore数据增长,数据加工任务在自动扩容资源。请先观察5分钟,看延迟是否降到告警范围以内。若否,则进行下一步。

    • 加工速率 (events/s)速度没有提高,或者Shard消费延迟(s)还处于上涨趋势,则说明可能是源Logstore的Shard数目不足,导致数据加工资源扩展受限,您需要手动分裂源Logstore的Shard。具体操作,请参见管理Shard。完成分裂后,请先观察5分钟,看延迟是否降到告警范围以内。若否,则进行下一步。

  3. 如果存在数据加工异常报错监控,请优先处理。处理完成后,请先观察5分钟,看延迟是否降到告警范围以内。若否,则进行下一步。

  4. 如果告警无法处理,请准备Project、Logstore和数据加工任务ID信息,提工单联系阿里云技术支持。

处理异常报错监控

项目

说明

作用

用于监控数据加工任务中异常报错。当数据加工出现异常报错时触发告警。

关联仪表盘

请参见运行异常

分析SQL样例

以下模板{job_name}替换为需要监控的数据加工(新版)任务名称。

__topic__: etl_metrics and 
job_name: {job_name} and 
"_etl_:connector_metrics.error": *
| select
  distinct "_etl_:connector_metrics.error" as errors

监控规则

  • 触发条件选择有数据

  • 查询区间为:10分钟

  • 检查频率为:10分钟。

消除方法

请按照如下对应报错信息进行处理:

  • 错误信息中包含Invalid SPL query,则说明数据加工任务配置的SPL规则存在语法错误,需要参照报错信息进行修改。更多信息,请参见SPL语法

  • 错误信息中包含Unauthorized、InvalidAccessKeyId或SignatureNotMatch,则说明数据加工任务读取源Logstore数据、或者写入目标Logstore权限不足。更多信息,请参见授权概述

  • 错误信息中包含ProjectNotExist或LogStoreNotExist,则说明数据加工任务涉及的Project或Logstore不存在。请登录 日志服务控制台 检查并处理。

  • 如果告警无法处理,请准备Project、Logstore和数据加工任务ID信息,提工单联系阿里云技术支持。

写出数据量占比(同比)监控

项目

说明

作用

用于监控数据加工任务写出至目标Logstore的处理结果数据量,与从源Logstore读取的原始数据量的比例,相比昨日、以及上一周的增长阈值和下跌阈值情况。当增长大于规则参数中日/周同比增长阈值或下跌超过规则参数中日/周同比下跌阈值时触发告警。

关联仪表盘

写出日志数占比:成功投递到目标Logstore的数据条数占源Logstore读取到数据条数的比例,默认时间周期为1天。

分析SQL样例

创建告警规则的查询统计对话框中输入以下SQL。

以下模板{job_name}替换为需要监控的数据加工(新版)任务名称。

__topic__: etl_metrics and 
job_name: {job_name}
| select
  round(diff [1], 1) as percent,
  round(coalesce(diff [3], 0), 1) as ratio_1d,
  round(coalesce(diff [5], 0), 1) as ratio_1w
from(
    select
      compare(percent, 86400, 604800) as diff
    FROM      (
        select
          deliver /(ingest + 0.0001) as percent
        from(
            select
              sum(
                if(
                  "_etl_:connector_meta.action" = 'ingest',
                  "_etl_:connector_metrics.native_bytes",
                  0
                )
              ) as ingest,
              sum(
                if(
                  "_etl_:connector_meta.action" = 'deliver',
                  "_etl_:connector_metrics.native_bytes",
                  0
                )
              ) as deliver
            FROM              log
          )
      )
  )

监控规则

  • 触发条件选择有数据匹配,评估表达式为:(ratio_1d>120 || ratio_1d<80) && (ratio_1w>120 || ratio_1w<80) ,日/周同比增长和下跌阈值均为20%。

  • 查询区间为:1小时

  • 检查频率为:1小时。

说明

为了避免原始数据流量的周期性波动导致的告警误报,建议日/周同比增长阈值和日/周同比下跌阈值设置不小于20%,或者调整同比周期,使其与原始数据流量的周期匹配。

消除方法

请按照如下原则进行处理:

  1. 如果源Logstore的数据量存在变化,请先检查是否有新数模式的数据接入、或者某些模式的数据断流。如果存在该情况,且由此导致的数据变化与当前规则对应的指标一致,则说明是由于源Logstore数据模式变化导致的。否则,进行下一步。

  2. 如果存在数据加工延迟监控、或者处理异常报错监控,请优先处理。处理完成后,请先观察15分钟,如果数据加工延迟已经回到1分钟以内,但是加工数据量与源Logstore数据量增加(减少)趋势不一致,则进行下一步。

  3. 如果告警无法处理,请准备Project、Logstore和数据加工任务ID信息,提工单联系阿里云技术支持。

读取源数据量(同比)监控

项目

说明

作用

用于监控数据加工任务读取数据量相比昨日、以及上一周的增长阈值和下跌阈值情况。当增长大于规则参数中日/周同比增长阈值或下跌超过规则参数中日/周同比下跌阈值时触发告警。

关联仪表盘

读取日志数总计:从源Logstore的各个shard中读取到的数据条数总计,默认时间周期为1天。

分析SQL样例

创建告警规则的查询统计对话框中输入以下SQL。

以下模板{job_name}替换为需要监控的数据加工(新版)任务名称。

__topic__: etl_metrics and 
job_name: {job_name} and
"_etl_:connector_meta.action": ingest
| select
  diff [1] as events,
  round(coalesce(diff [3], 0),  1) as ratio_1d,
  round(coalesce(diff [5], 0),  1) as ratio_1w
from(
    select
      compare(events, 86400, 604800) as diff
    FROM      (
        select
          sum("_etl_:connector_metrics.events") as events
        FROM          log
      )
  )

监控规则

  • 触发条件选择有数据匹配,评估表达式为:(ratio_1d>120 || ratio_1d<80) && (ratio_1w>120 || ratio_1w<80) ,日/周同比增长和下跌阈值均为20%。

  • 查询区间为:1小时

  • 检查频率为:1小时。

说明

为了避免原始数据流量的周期性波动导致的告警误报,建议日/周同比增长阈值和日/周同比下跌阈值设置不小于20%,或者调整同比周期,使其与原始数据流量的周期匹配。

消除方法

请按照如下原则进行处理:

  1. 如果该值变化趋势与源Logstore的数据量增长(减少)趋势一致,则说明是由于源Logstore数据量导致的。否则,进行下一步。

  2. 如果存在数据加工延迟监控、或者处理异常报错监控,请优先处理。处理完成后,请先观察15分钟,如果数据加工延迟已经回到1分钟以内,但是加工数据量与源Logstore数据量增加(减少)趋势不一致,则进行下一步。

  3. 如果告警无法处理,请准备Project、Logstore和数据加工任务ID信息,提工单联系阿里云技术支持。

写出结果量(同比)监控

项目

说明

作用

用于监控数据加工任务写出数据量相比昨日、以及上一周的增长阈值和下跌阈值情况。当增长大于规则参数中日/周同比增长阈值或下跌超过规则参数中日/周同比下跌阈值时触发告警。

关联仪表盘

写出日志数总计:成功写入到所有目标Logstore的数据条数总计,默认时间周期为1天。

分析SQL样例

创建告警规则的查询统计对话框中输入以下SQL。

以下模板{job_name}替换为需要监控的数据加工(新版)任务名称。

__topic__: etl_metrics and 
job_name: {job_name} and
"_etl_:connector_meta.action": deliver
| select
  diff [1] as events,
  round(coalesce(diff [3], 0),  1) as ratio_1d,
  round(coalesce(diff [5], 0),  1) as ratio_1w
from(
    select
      compare(events, 86400, 604800) as diff
    FROM      (
        select
          sum("_etl_:connector_metrics.events") as events
        FROM          log
      )
  )

监控规则

  • 触发条件选择有数据匹配,评估表达式为:(ratio_1d>120 || ratio_1d<80) && (ratio_1w>120 || ratio_1w<80) ,日/周同比增长和下跌阈值均为20%。

  • 查询区间为:1小时

  • 检查频率为:1小时。

说明

为了避免原始数据流量的周期性波动导致的告警误报,建议日/周同比增长阈值和日/周同比下跌阈值设置不小于20%,或者调整同比周期,使其与原始数据流量的周期匹配。

消除方法

请按照如下原则进行处理:

  1. 如果该值变化趋势与源Logstore的数据量增长(减少)趋势一致,则说明是由于源Logstore数据量导致的。若否,则进行下一步。

  2. 如果存在数据加工延迟监控、或者处理异常报错监控,请优先处理。处理完成后,请先观察15分钟,如果数据加工延迟已经回到1分钟以内,但是加工数据量与源Logstore数据量增加(减少)趋势不一致,则进行下一步。

  3. 如果告警无法处理,请准备Project、Logstore和数据加工任务ID信息,提工单联系阿里云技术支持。