赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 数据加工
  6. 数据加工(旧版)
  7. 数据加工(旧版)常见问题
  8. 加工规则错误

加工规则错误

  • 数据加工(旧版)常见问题
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

本文档为您介绍数据加工规则错误的原因以及排查处理方法。

读取源Logstore数据成功后,加工引擎开始对源Logstore的日志事件进行加工。加工规则错误

  • 该环节产生错误主要是由于在数据加工过程中,全部或者部分日志事件不适配加工规则,从而引发的逻辑错误。

  • 如果加工规则中涉及RDS、Logstore等外联资源的加载,则也有可能会产生资源的加载或刷新错误。

本文档主要介绍逻辑错误排查方法,资源加载错误的排查方法请参见资源加载错误。

错误影响

在日志事件加工阶段,与加工规则冲突的日志事件会引发报错,错误分成WARNING和ERROR级别(通过加工日志的logging.levelname体现)。

  • 对于ERROR级别的错误, 该日志事件会丢弃。加工后的输出结果中将不包含这些日志事件,并继续加工其他的日志事件,不会重试。

  • 对于WARNING级别的错误(例如某些事件与正则规则不匹配),会跳过当前DSL的这一步,进行下一步。

错误排查方法

  • 查看错误日志的logging.levelname字段,确定日志的错误级别。

  • 查看错误日志的message字段,定位是哪些日志事件报错。具体请参见错误日志查看方式。

  • 查看错误日志的reason字段,确定这些日志事件的报错原因。

根据报错原因,为这些异常日志事件增添逻辑,可使用e_if、e_switch等流程控制函数,捕获并处理这些错误。加工规则异常日志

常见错误排查

日志事件中存在异常值

除数为0

#部分日志事件字段b的值为0,引发除数为0的错误
e_set("c", op_div_floor(v("a"), v("b")))
  • 错误日志:

    {
      "reason": "error when calling : floordiv\nDetail: integer division or modulo by zero", 
    }
  • 排查方法:

    检查报错的日志事件,确认它们的字段b的值是否为0。如果是,此处则是由除数为0引发的错误。

  • 解决方案:

    只有日志事件的字段b为0时才会报错。因此可以增添e_if逻辑来捕获b的字段值为0的异常情况。

    e_if_else(op_eq(v("b"), "0"), e_set("c", v("a")), e_set("c", op_div_floor(v("a"), v("b")))

不合法的时间戳格式

#部分日志事件的字段a的值不是合法的时间戳格式,引发报错
e_set("b", dt_fromtimestamp(v("a")))
  • 错误日志:

    {
      "reason": "error when calling : int\nDetail: invalid literal for int() with base 10: '异常值'", 
    }
  • 排查方法:

    检查报错的日志事件,查看字段a的值是否为合法的时间戳格式(数值型字符串)。

  • 解决方案:

    增加判断逻辑,如果字段a的值不是合法的时间戳格式,则将这条日志事件输出到target2中。

    e_if_else(str_isdigit(v("a"))),e_set("b", dt_fromtimestamp(v("a"))), e_output("target2"))

数值运算前未进行数据类型转换

加工规则样例:

e_set("a", 10)
e_set("b", 10)
e_set("c", op_mul(v("a"), v("b")))
  • 错误日志:

    {
      "reason": "error when calling : mul\nDetail: can't mulltiply sequence by non-int of type' str'", 
    }
  • 原因分析:

    LOG DSL处理过程中,日志事件中的各个字段值都是以字符串形式存储。上述规则样例中,v("a")和v("b")都是字符串类型,直接传递给op_mul会引发报错。

  • 排查方法:

    检查LOG DSL规则,是否在做数值计算前未进行数据类型转换。

  • 解决方案:

    使用ct_int函数进行数据类型转换,将字符串型转化为整型后,再传递给op_mul函数。

    e_set("a", 10)
    e_set("b", 10)
    e_set("c", op_mul(c_int(v("a")), c_int(v("b"))))
相关文章

加工引擎启动错误 2025-04-22 10:53

本文档为您介绍加工引擎启动错误的原因以及排查处理方法。 数据加工任务的第一个环节便是启动加工引擎。该环节产生错误主要是由于在启动加工引擎过程时,检测到您编写的SLS DSL规则存在错误,导致加工引擎内部的安全审核不通过。

加工规则错误 2025-04-22 10:53

本文档为您介绍数据加工规则错误的原因以及排查处理方法。 读取源Logstore数据成功后,加工引擎开始对源Logstore的日志事件进行加工。

源Logstore读取错误 2025-04-22 10:53

本文介绍数据加工服务读取源Logstore错误的原因以及排查处理方法。 加工引擎启动成功后,开始读取源Logstore的数据。数据加工引擎对源Logstore采用流式读取,在加工过程中会持续不断的读取源Logstore中的数据。

资源加载错误 2025-04-22 10:53

本文介绍在数据加工规则中加载资源数据错误的原因及排查处理的方法。 错误处理机制 资源加载错误的处理机制请参见res_log_

目标Logstore输出错误的原因和排查方法 2025-04-22 10:53

本文档为您介绍数据加工服务进行数据加工后,将加工结果写入目标Logstore产生错误的常见原因和排查处理方法。 工作原理 日志事件被加工完之后,会被输出到预先配置好的目标Logstore中。LOG DSL引擎每次读取一个批次的源日志(从1条到近万条不等),数据加工后,并不是加工一条日志就输出一条,而

获取Logstore数据(维表)错误 2025-04-22 10:53

如果加工规则中涉及其他Logstore资源的加载,则有可能会产生资源的加载或刷新错误。本文档主要介绍从其他Logstore获取数据的常见错误以及排查处理方法。 在成功读取源Logstore数据后,加工引擎开始对源Logstore的日志事件进行加工。如果加工规则中涉及OSS、RDS、Logstore等

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号