反馈已提交

网络繁忙

定时任务运行日志介绍

  • 文档创建者:Wendy123456
  • 历史版本:14
  • 最近更新:Wendy123456 于 2024-03-06
  • 1. 概述

    1.1 版本

    FineDataLink 版本功能变动
    1.9

    日志新增:写入数据行数、更新数据行数

    3.4

    显示的具体日志中,将「中止」改为「终止」

    4.0.1任务运行日志优化,提供更准确的日志信息,降低用户排查问题的成本
    4.1.1

    4.1.1 及之后版本,支持调整业务日志输出级别,因此日志内容也做了优化:

    • 增加:实例等待运行日志的打印

    • 增加:INFO级别,打印更加详细的日志,包括参数值、执行脚本、API请求、API分页取数

    • 优化:明确各条日志的等级,将日志级别打印到日志中

    • 读数类节点,统一增加删除数据的统计

    1.2 功能简介

    定时任务运行后,将会产生运行日志,便于用户查看任务运行情况。如下图所示:

    56.png

    本文介绍在「日志」这个 Tab 页下,具体显示内容。

    1.3 注意事项

    一个定时任务中有多个流程,在执行后如果有一个流程执行失败,其他流程执行成功的话,整个定时任务的状态是失败的,但是其中的部分流程是执行成功的。

    58.png

    2. 用户需知

    1)4.1.1 及之后版本,支持调整业务日志输出级别,因此日志内容也做了优化:

    • 增加:实例等待运行日志的打印。

    • 增加:INFO级别,打印更加详细的日志,包括参数值、执行脚本、API请求、API分页取数

    • 优化:明确各条日志的等级,将日志级别打印到日志中。

    • 读数类节点,统一增加删除数据的统计。

    2)设置日志级别后(任务级别日志配置全局日志配置),打印的日志说明如下表所示:

    设置的日志级别
    打印的日志级别

    INFO级别

    BASIC INFO

    ERROR

    WARN

    INFO

    WARN级别

    BASIC INFO

    ERROR

    WARN

    ERROR级别

    BASIC INFO

    ERROR

    3. 示例

    定时任务的日志均采用下面的格式:

    yyyy-mm-dd hh:mm:ss 任务状态\节点状态

    [日志等级] 日志内容

    [日志等级] 日志内容

    yyyy-mm-dd hh:mm:ss 任务状态\节点状态

    [日志等级] 日志内容

    [日志等级] 日志内容

    运行总览:执行成功 x,执行失败 y,终止执行 z,跳过执行 w

    执行完毕,总计耗时:nms

    2.1 基础日志打印

    基础日志展示的内容为任务运行/节点执行的状态,不受任务日志级别控制,不管哪个日志级别,都需要进行打印。

    各级别的日志,都是套在基础日志的框架里的,比如 ERROR 级别的日志,是对应失败状态的日志补充。

    2.1.1 常规基础日志打印

    状态
    打印日志说明
    实例开始构建yyyy-mm-dd hh:min:ss 实例开始构建
    实例构建结果

    yyyy-mm-dd hh:min:ss 实例构建成功

    yyyy-mm-dd hh:min:ss 实例构建失败

    日志互斥,只能出现其中一条
    实例等待运行
    yyyy-mm-dd hh:min:ss 实例正在排队
    实例开始运行yyyy-mm-dd hh:min:ss 实例开始运行
    节点开始执行

    yyyy-mm-dd hh:min:ss 开始执行:【节点Name】

    yyyy-mm-dd hh:min:ss 跳过执行:【节点Name】

    日志互斥,只能出现其中一条
    节点执行结果

    yyyy-mm-dd hh:min:ss 执行成功:【节点Name】

    yyyy-mm-dd hh:min:ss 执行失败:【节点Name】

    yyyy-mm-dd hh:min:ss 终止执行:【节点Name】

    日志互斥,只能出现其中一条
    实例运行结果

    yyyy-mm-dd hh:min:ss 实例运行成功

    yyyy-mm-dd hh:min:ss 实例运行失败

    yyyy-mm-dd hh:min:ss 实例运行中断


    2.1.2 循环容器基础日志打印

    循环容器 的日志打印是整体逻辑,并非某条日志输出,因此无法定义日志等级。

    对应的基础日志
    日志格式日志示例
    开始执行:【节点Name】

    执行n次循环 (仅展示最近5次循环信息)

    第1次执行:

    yyyy-mm-dd hh:mm:ss  描述

    详情

    第2次执行:

    yyyy-mm-dd hh:mm:ss  描述

    详情

    ......

    第n次执行:

    yyyy-mm-dd hh:mm:ss  描述

    详情

    执行完毕,总计耗时:ns

    2023-08-31 21:26:55 开始执行【循环容器】

    执行20次循环 (仅展示最近5次循环信息)

    第16次执行:

    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[16]

    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[16]

    第17次执行:

    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[17]

    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[17]

    第18次执行:

    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[18]

    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[18]

    第19次执行:

    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[19]

    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[19]

    第20次执行:

    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[20]

    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[20]

    执行完毕,总计耗时:5.0s

    2.1.3 失败重试基础日志打印

    失败重试 的日志打印是整体逻辑,并非某条日志输出,因此无法定义日志等级。

    对应的基础日志
    日志格式日志示例
    执行失败:【节点Name】

    重新执行 (仅展示最近5次循环信息)

    第1次重试:

    yyyy-mm-dd hh:mm:ss [日志等级] 描述

    详情

    yyyy-mm-dd hh:mm:ss [日志等级] 描述

    ......

    第n次执行:

    yyyy-mm-dd hh:mm:ss [日志等级] 描述

    详情

    yyyy-mm-dd hh:mm:ss [日志等级] 描述

    详情

    等待第n+1次重试...

    等待首次重试

    59.png

    等待第2次重试:

    60.png

    3. BASIC INFO 日志

    对应的基础日志
    日志格式日志示例说明
    实例运行中断[BASIC INFO] 任务超时,中断运行

    2023-08-31 19:14:09 实例运行中断

    [BASIC INFO] 任务超时,中断运行


    开始执行:【节点Name】

    [BASIC INFO] 

    - 启动时刻:yyyy-mm-dd hh:mm:ss

    - 实时读取速度: nB/s, n行/s

    - 实时写入速度: nB/s, n行/s

    - 累计写入行数: n行

    - 累计更新行数: n行

    - 累计删除行数: n行

    - 写入脏数据行数: n行

    正在执行【节点名称】...

    2023-08-31 19:45:26 开始执行【数据同步】

    [BASIC INFO] 

    - 启动时刻:2023-08-3119:45:26

    - 实时读取速度:0B/s,0行/s

    - 实时写入速度:0B/s,0行/s

    - 累计写入行数:0行

    - 累计更新行数:0行

    - 累计删除行数:0行

    - 写入脏数据行数:0行

    正在执行【数据同步】..

    仅在节点执行过程中打印,节点执行完毕时清除此日志

    适用节点:

    • 数据同步

    • 数据转换

    • 参数赋值

    开始执行:【节点Name】

    [BASIC INFO] 

    - 启动时刻:yyyy-mm-dd hh:mm:ss

    - 实时下载速度:nB/s

    - 实时上传速度:nB/s

    - 上传成功文件数:n个

    正在执行【文件传输】...

    2023-08-31 19:45:26 开始执行【文件传输】

    [BASIC INFO] 

    - 启动时刻:2023-08-3119:45:26

    - 实时下载速度:0B/s

    - 实时上传速度:0B/s

    - 上传成功文件数:0个

    正在执行【文件传输】..

    适用节点:

    文件传输

    执行成功:【节点Name】

    [BASIC INFO]

    - 启动时刻:yyyy-mm-dd hh:mm:ss

    - 结束时刻:yyyy-mm-dd hh:mm:ss

    - 平均流量:nB/s

    - 平均写入速度:n行/s

    - 读取数据行数:n行

    - 写入数据行数:n行

    - 更新数据行数:n行

    - 删除数据行数:n行

    - 写入脏数据行数:n行

    - 耗时:ns

    注:「写入数据行数」为直接写入的数据行数,不同数据库统计时有一定差异;比如有的数据库写入时覆盖写入的数据也会归到「写入数据行数」中

    2023-08-31 20:03:33 节点执行成功【参数赋值】

    [BASIC INFO]

    - 启动时刻:2023-08-31 20:03:32

    - 结束时刻:2023-08-31 20:03:33

    - 平均流量:871B/s

    - 平均写入速度:1行/s

    - 读取数据行数:20行

    - 写入数据行数:1行

    - 更新数据行数:0行

    - 删除数据行数:0行

    - 写入脏数据行数:0行

    - 耗时:1.0s

    适用节点:

    • 数据同步

    • 数据转换

    • 参数赋值

    执行成功:【节点Name】[BASIC INFO]

    - 启动时刻:yyyy-mm-dd hh:mm:ss

    - 结束时刻:yyyy-mm-dd hh:mm:ss

    - 平均流量:nB/s

    - 下载文件个数:n个

    - 上传文件个数:n个

    - 耗时:ns

    2023-08-31 20:03:33 节点执行成功【文件传输】

    [BASIC INFO]

    - 启动时刻:2023-08-31 20:03:32

    - 结束时刻:2023-08-31 20:03:33

    - 平均流量:871B/s

    - 下载文件个数:20个

    - 上传文件个数:1个

    - 耗时:1.0s

    适用节点:

    文件传输

    跳过执行:【节点Name】

    [BASIC INFO] 节点连线条件不满足

     [BASIC INFO] 条件分支条件不满足

    2023-08-31 22:07:48 跳过执行【虚拟节点】

     [BASIC INFO] 条件分支条件不满足


    4. ERROR 日志

    日志级别设置为 ERROR、INFO、WARN 时,日志说明如下:

    对应的基础日志
    日志格式日志示例说明
    实例构建失败

    [ERROR] 异常节点:【节点Name】

    具体错误信息

    ....

    异常节点:【节点Name】

    具体错误信息

    2023-08-31 19:09:44 任务构建失败

    [ERROR] 异常节点:【数据转换】

    [DB表输出]:

        目标表为空

        字段映射表为空

    ALL
    执行失败:【节点Name】[ERROR] [错误对象]:错误标题 - 描述

    2023-08-31 19:19:27 执行失败【数据同步】

    [ERROR] [数据来源]:数据连接异常 - DataBase[FRDemo] get column failed - [SQLITE_ERROR] SQL error or missing database (near "1": syntax error)

    通用错误
    执行失败:【节点Name】

    [ERROR] 脏数据条数检查不通过,限制是[x]条,但实际上捕获了[y]条.

    错误定位:写入目的表[Table_name]时遇到了脏数据,数据无法正常写入,请检查并作出修改.

    异常情况:具体错误信息

    建议排查的目标字段:

        {字段序号:1,字段名:a1,数据类型:INT}

        {字段序号:2,字段名:a2,数据类型:VARCHAR}

    错误记录:

        {字节数:1,字段序号:1,字段值:value1,数据类型:STRING}

        {字节数:1,字段序号:2,字段值:value2,数据类型:STRING}

    2023-08-31 19:19:27 执行失败【数据同步】

    [ERROR] 脏数据条数检查不通过, 限制是[20]条, 但实际上捕获了[700]条

    错误定位: 写入[SALE_BSEG]目的表时遇到了脏数据,数据无法正第写入,请做出检查井修改

    异常情况: ORA-01653:表 BLLODS_TEST.SALE_BSEG 无法通过 8192(在表空间 BI_ODS_TEST 中)扩展

    建议排查的目标字段:

    {字段序号:295, 字段名: PENDAYS, 数据类型: NUMBER}

    {字段序号:333, 字段名: CURRENT_TIMESTAMP, 数据类型:TIMESTAMP}

    错误记录:

    {字节数:3, 字段序号:1, 字段值:"800",数据类型:STRING}

    {字节数:4, 字段序号:2, 字段值:"1001”,数据类型:STRING

    仅在出现脏数据时打印

    仅打印最近一条脏数据,脏数据明细可以在统计里导出或去fanruan.log中查看

    5. WARN 日志

    日志级别设置为 WARN、INFO 时,日志说明如下:

    对应的基础日志
    日志格式日志示例说明
    执行成功:【节点Name】[WARN] 检查发现[y]条脏数据

    2023-08-31 20:03:33 节点执行成功【参数赋值】

    [BASIC INFO]

    - 启动时刻:2023-08-31 20:03:32

    - 结束时刻:2023-08-31 20:03:33

    - 平均流量:871B/s

    - 平均写入速度:18行/s

    - 读取数据行数:20行

    - 写入数据行数:18行

    - 更新数据行数:0行

    - 删除数据行数:0行

    - 写入脏数据行数:2行

    - 耗时:1.0s

    [WARN] 检查发现[2]条脏数据

    建议排查的目标字段:

        {字段序号:1,字段名:a1,数据类型:INT}

        {字段序号:2,字段名:a2,数据类型:VARCHAR}

    错误记录:

        {字节数:1,字段序号:1,字段值:value1,数据类型:STRING}

        {字节数:1,字段序号:2,字段值:value2,数据类型:STRING}

    适用节点:

    • 数据同步

    • 数据转换


    仅打印最近一条脏数据,脏数据明细可以在统计里导出或去fanruan.log中查看

    6. INFO 日志

    任务日志等级为 INFO 时,打印 INFO 级别的日志。

    对应的基础日志
    日志格式说明
    开始执行:【节点Name】[INFO] [算子Name]: --若不包含算子,则不打印算子Name

    使用参数: 

    - 参数[参数名1]:值1

    - 参数[参数名2]:值2

    • 打印使用的参数名和参数值至日志

    • 除虚拟节点,其他节点均可使用参数

    开始执行:【节点Name】[INFO] [算子Name]: --若不包含算子,则不打印算子Name

    执行脚本:

    「实际执行的命令语句」

    输出信息:--若无内容,则不打印,shell脚本、Bat脚本、Python脚本可能会有输出

    「脚本执行后输出的信息」

    • 展示实际执行的脚步内容

    • 将脚步执行后输出的信息打印出来

    • 涉及到脚本执行的节点

      1. 数据同步(SQL取数时)

      2. 数据转换(SQL取数时)

      3. 参数赋值(SQL取数时)

      4. SQL脚本

      5. Shell脚本

      6. Bat脚本

      7. Python脚本

    • 涉及到脚本执行的算子

      1. 数据同步\数据转换\参数赋值:DB表输入(SQL取数时)

      2. 数据转换:SparkSQL、Python

    开始执行:【节点Name】[INFO] [算子Name]: --若不包含算子,则不打印算子Name

    请求信息:

     - 证书地址:/xx/xx/test.CRT --若未配置自签名证书,则不打印

     - Request:

    POST http://www.fanruan.com/testapi/ 

     - Headers:

    Content-Type: application/json

     - Body:

    {"key":"Im a JSON"}

    服务端响应:

     - HttpStatusCode:200

     - Headers:

    Content-Type: application/json

    • 打印API请求的详细内容至日志

    • 涉及到API请求的节点

      1. 数据同步\数据转换\参数赋值:API输入

      2. 数据同步\数据转换:API输出








    附件列表


    主题: 任务运维
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持