定時任務運作日誌介紹

  • 文檔創建者:Wendy123456
  • 編輯次數:15
  • 最近更新:Nikozhan 于 2025-09-17
  • 1. 概述

    1.1 版本

    FineDataLink 版本功能變動
    1.9

    日誌新增:寫入資料行數、更新資料行數

    3.4

    顯示的具體日誌中,將「中止」改為「終止」

    4.0.1任務運作日誌優化,提供更準確的日誌資訊,降低使用者排查問題的成本
    4.1.1

    4.1.1 及之後版本,支援調整業務日誌匯出級別,因此日誌內容也做了優化:

    • 增加:實體等待運作日誌的列印

    • 增加:INFO級別,列印更加詳細的日誌,包括參數值、執行腳本、API請求、API分頁取數

    • 優化:明確各條日誌的等級,將日誌級別列印到日誌中

    • 讀數類節點,統一增加刪除資料的統計

    4.2.9.1

    日誌中:

    • 列印叢集節點

    • 列印啟動前動作時間

    • 列印「SAP輸入API輸入的資訊和回應時長

    • 列印 Kettle 呼叫結果

    • 列印腳本連結資訊

    • 列印版本號

    • 列印選表時用的 SQL

    • 列印排查資訊

    1.2 功能簡介

    定時任務運作後,將會產生運作日誌,便於使用者查看任務運作情況。如下圖所示:

    本文介紹在「日誌」這個 Tab 頁下,具體顯示內容。

    1.3 注意事項

    一個定時任務中有多個流程,在執行後如果有一個流程執行失敗,其他流程執行成功的話,整個定時任務的狀態是失敗的,但是其中的部分流程是執行成功的。

    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

    3.1 基礎日誌列印

    基礎日誌展示的內容為任務運作/節點執行的狀態,不受任務日誌級別控制,不管哪個日誌級別,都需要進行列印。

    各級別的日誌,都是套在基礎日誌的框架裏的,比如 ERROR 級別的日誌,是對應失敗狀態的日誌補充。

    3.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 實體運作中斷


    3.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

    3.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.1.4 叢集環境下基礎日誌列印

    對應的基礎日誌
    日誌格式說明日誌範例
    實體開始構建yyyy-mm-dd hh:min:ss 實體開始構建  所在節點:節點的專案名稱
    2024-04-23 15:51:13 實體開始構建 所在節點:fanruan1
    節點開始執行

    yyyy-mm-dd hh:min:ss 開始執行:【節點Name】所在叢集節點:節點的專案名稱

    yyyy-mm-dd hh:min:ss 跨越執行:【節點Name】

    日誌互斥,只能出現其中一條2024-04-23 15:51:14 開始執行【SQL腳本】所在節點:fanruan1

    4. 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] 

    - SQL條數:x

    - 影響行數:y

    - 總耗時:zs

    2024-04-23 16:36:53 開始執行【SQL腳本】

    [BASIC INFO] 

    - SQL條數:4

    - 影響行數:4

    - 總耗時:0.016s

    2024-04-23 17:17:23 執行成功【SQL腳本】

    1)僅在執行成功後展示(資訊由資料庫傳回給我們)如果未傳回資料則顯示資訊未傳回)

    2)總耗時:指建立連結到獲取傳回資料的總時間,主要是資料庫執行SQL的時間

    3)適用節點:SQL腳本

    執行成功:【節點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] 條件分支條件不滿足


    5. 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中查看

    開始執行:【節點Name】

    [ERROR] [錯誤物件]:錯誤標題 - 描述

    報錯循環及參數:

    第x次執行-參數[para]:xxx

    第y次執行-參數[para]:yyy

    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]
    [ERROR] [DB表匯出2]:
    DB配置異常-The field mapping [ctr_id] on the writer side was not found in the source field
    報錯循環及參數:
    第5次執行-參數[para]:5
    第6次執行-參數[para]:6
    執行完畢,總計耗時:5.0s
    2023-08-31 21:26:56 執行失敗【循環容器】
    針對循環容器中的報錯進行匯總展示,在執行失敗之前進行列印

    涉及節點:循環容器

    6. 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中查看

    開始執行:【節點Name】-[WARN] [資料去向]: 檢查到源表[XXX]結構變化

     - 新增欄位:COL1

     - 刪除欄位:COL2

     - 修改欄位:COL3,舊類型:varchar(100),新類型:varchar(200)

    適用節點:資料同步
    開始執行:【節點Name】[WARN] [算子名稱]:
    語句執行時間過長,請查看
    正在執行語句:TRUNCATE XXX
     

    僅在執行時間超過30s時列印

    適用節點:

    • 資料同步(資料去向)

    • 資料轉換(DB表匯出)

    7. INFO 日誌

    任務日誌等級為 INFO 時,列印 INFO 級別的日誌。

    對應的基礎日誌
    日誌格式說明
    開始執行:【節點Name】[INFO] [算子Name]: --若不包含算子,則不列印算子Name

    使用參數: 

    - 參數[參數名1]:值1

    - 參數[參數名2]:值2

    • 列印使用的參數名和參數值至日誌

    • 除虛擬節點,其他節點均可使用參數

    開始執行:【節點Name】[INFO] [算子Name]: --若不包含算子,則不列印算子Name

    執行腳本:

    「實際執行的命令語句」

    匯出資訊:--若無內容,則不列印,shell腳本、Bat腳本、Python腳本可能會有匯出

    「腳本執行後匯出的資訊」

    • 展示實際執行的腳本內容

    • 將腳本執行後匯出的資訊列印出來

    • 涉及到腳本執行的節點

      • 資料同步(SQL取數、選表資料過濾語句、交易匯出)

      • 資料轉換(SQL取數、選表資料過濾語句、交易匯出)

      • 參數指派(SQL取數、選表資料過濾語句)

      • SQL腳本

      • Shell腳本

      • Bat腳本

      • Python腳本

    • 涉及到腳本執行的算子

      • 資料同步\資料轉換\參數指派:DB表輸入(SQL取數、選表資料過濾語句)

      • 資料轉換:SparkSQL、Python

    注:以上涉及到的節點和算子中,「選表資料過濾語句」為 4.2.9.1 及之後版本新增內容

    開始執行:【節點Name】

    [INFO] [算子Name]: --若不包含算子,則不列印算子Name

    回應時長:xx 秒

    請求資訊:

     - 憑證地址:/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請求的節點

      • 資料同步\資料轉換\參數指派:API輸入

      • 資料同步\資料轉換:API匯出

    開始執行:【節點Name】[INFO] 
    呼叫結果: 
    作業項編號 : 24
    錯誤 : 0
    讀取行 : 0
    寫入行 : 0
    輸入 : 0
    匯出行 : 0
    更新行 : 0
    Lines rejected : 0
    Script exist status : 0
    結果 : true
    涉及節點:kettle呼叫
    開始執行:【節點Name】

    [INFO] 

    [算子Name]:--若不包含算子,則不列印算子Name

    回應時長:xx 秒

    請求資訊:

    列印 SAP 請求的詳細內容至日誌

    • 涉及到的節點:

    • 資料同步

    • 資料轉換

    • 參數指派:SAP輸入

    8. 排查資訊日誌

    針對排查問題的場景,為了提升排查效率,新增「Job」資訊,排查資訊以節點為單位,內容範圍是固定節點定位後端日誌的資訊。

    對應的基礎日誌
    日誌格式日誌範例備註
    開始執行:【節點Name】Job[xxx]Job[12]

    定義:這裏的Job[xx]不是任務配置的JobId,而是調度賦予這個節點的一個編號,在工程不重啟的情況下,一個節點每次運作都使用同一個編號。目前 日誌 中不會記錄 Job 資訊,僅在 畫布節點中的 Tooltip 進行展示

    適用節點:

    • 資料同步

    • 資料轉換

    • 參數指派


    附件列表


    主題: 維運中心
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!