跳轉至

部署和維護 / 上報自觀測數據

本文主要介紹如何將配置 DataFlux Func 自觀測數據。

1. 前言

默認情況下,DataFlux Func 的自觀測數據存儲在本地 Redis 和 MySQL 中。

在重度使用 DataFlux Func 後,指標、日誌等內容數據量可能較為龐大。為了限制本地內存、磁盤使用,在本地保存的系統指標、任務記錄日誌會被縮減,保存總量也會被限制。

可以參考 部署和維護 / 系統指標和任務記錄 / 關閉本地函數任務記錄 關閉「本地函數任務記錄」,減輕 MySQL 存儲壓力

如果需要完整記錄 DataFlux Func 中產生的系統指標和任務記錄日誌,可以通過系統設置,將數據上報到數據平台。

2. 開啓「自觀測數據上報」

上報的任務日誌為完整日誌,不會被縮減

管理 / 系統設置 / 自觀測數據上報,用户可以開啓「自觀測數據上報」

URL 地址可以填寫 DataWay 或 DataKit 上報地址:

Text Only
1
http://openway.ip-or-domain.com?token=tkn_xxxxx
Text Only
1
http://datakit.ip-or-domain:9529

此外,一般也建議填寫站點名,用於標記當前 DataFlux Func 用途,如:「測試用 Func」

在開啓「自觀測數據上報」後,可以同時關閉「本地函數任務記錄」,減輕本地 DataFlux Func 存儲壓力

setup-guance-data-upload.png

3. 在數據平台中查看系統指標、任務記錄日誌

正確配置「自觀測數據上報」後,就可以在數據平台中查看上報的系統指標和任務日誌了。

dff-metric-in-guance.png

4. 上報數據説明

DataFlux Func 會上報多種數據,供排查問題。

函數調用指標

DataFlux Func 會在每次調用函數後,記錄本次函數調用的相關指標。

指標集 説明
DFF_func_call 函數調用

字段如下:

字段 類型 説明 示例值
script_set_id Tag 所屬腳本集 ID "demo"
script_id Tag 所屬腳本 ID "demo__test"
func_id Tag 函數 ID "demo__test.run"
origin Tag 來源 "authLink"
queue Tag 執行隊列 "8"
task_status Tag 任務狀態 "success"
wait_cost Field 等待耗時(毫秒) 100
run_cost Field 執行耗時(毫秒) 300
total_cost Field 總耗時(毫秒) 400

工作隊列指標

指標集 説明
DFF_worker_queue 工作隊列

字段如下:

字段 類型 説明 示例值
queue Tag 隊列 "8"
redis_key Tag 隊列 Redis Key 名稱 "DataFluxFunc-worker#workerQueue@8"
length Field 隊列長度 100

緩存數據庫指標

指標集 説明
DFF_cache_db 緩存數據庫

字段如下:

字段 類型 説明 示例值
target Tag 目標數據庫(HOST:PORT/DB "127.0.0.1:6379/5"
keys Field Key 數量 100
used_memory Field 內存使用量(字節) 10000

緩存數據庫 Key 指標

指標集 説明
DFF_cache_db_key 緩存數據庫 Key

字段如下:

字段 類型 説明 示例值
target Tag 目標數據庫(HOST:PORT/DB "127.0.0.1:6379/5"
prefix Tag Key 前綴 "DataFluxFunc-monitor#heartbeat@workerOnQueue:TAGS"
count Field Key 數量 100

數據庫指標

指標集 説明
DFF_db_table 數據庫

字段如下:

字段 類型 説明 示例值
target Tag 目標數據庫(HOST:PORT/DB "127.0.0.1:3306/dataflux_func"
name Tag 表名 "biz_main_sync_api"
comment Tag 表註釋 "函數 API"
total_length Field 總佔用大小(字節) 200
data_length Field 數據佔用大小(字節) 100
index_length Field 索引佔用大小(字節) 100
avg_row_length Field 平均每行佔用大小(字節) 100
rows Field 行數 10
auto_increment Field 自增長位置 10

系統任務記錄 / 函數任務記錄

DataFlux Func 在執行任何內部系統任務或者函數任務後,都會上報相應的任務日誌,可以通過日誌查看器查看。

數據來源 説明
DFF_task_record 系統任務記錄
DFF_task_record_func 函數任務記錄

字段如下:

字段 説明 系統任務記錄 函數任務記錄
source 數據來源 固定為 DFF_task_record 固定為 DFF_task_record_func
site_name 站點名
id 任務 ID
name 任務名稱
kwargs 任務參數
task_status 任務狀態,可能值見下文
status 日誌狀態,可能值見下文
queue 所在隊列
trigger_time_iso 觸發時間(ISO 日期格式)
start_time_iso 啓動時間(ISO 日期格式)
end_time_iso 結束時間(ISO 日期格式)
run_cost 執行耗時(毫秒)
wait_cost 排隊耗時(毫秒)
total_cost 總耗時(毫秒)
func_id 函數 ID
script_id 所屬腳本 ID
script_set_id 所屬腳本集 ID
func_call_kwargs 函數傳入參數
origin 來源,可能值見下文
origin_id 來源 ID
如:定時任務 ID
crontab 定時任務 Crontab 表達式 僅限定時任務函數
workspace_uuid 工作空間 ID 僅限監控器函數
df_monitor_checker_id 監控器 ID 僅限監控器函數
df_monitor_id 告警策略 ID 僅限監控器函數

5. 相關字段詳解

部分字段詳解如下

字段 task_statusstatus

DataFlux Func 上報日誌中,task_statusstatus 存在一對一關係,task_status 為任務狀態描述,status 為滿足數據平台規範的狀態值。

具體對應表如下:

task_status 值 status 值 説明
success ok 成功
failure critical 失敗
skip warning 任務跳過

字段 originorigin_id

originorigin_id 字段用來標記函數任務的執行來源,具體值如下:

origin 值 説明 origin_id 值意義 備註
funcAPI 函數 API 函數 API ID
cronJob 定時任務 定時任務 ID
direct 直接調用函數
如:數據平台 Studio 通過集羣內調用
固定為 direct
integration 由腳本集成觸發 {集成類型}.{啓動方式}-{函數 ID}
舊版 syncAPI 同步 API 同步 API ID 在最新版中已被 funcAPI 取代
舊版 asyncAPI 異步 API 異步 API ID 在最新版中已被 funcAPI 取代
舊版 authLink 授權鏈接 授權鏈接 ID 在最新版中已被 syncAPI 取代
舊版 crontab 自動觸發配置 自動觸發配置 ID 在最新版中已被 cronJob 取代
舊版 batch 批處理 批處理 ID 在最新版中已被 asyncAPI 取代