部署和維護 / 上報自觀測資料
本文主要介紹如何將配置 DataFlux Func 自觀測資料。
1. 前言
預設情況下,DataFlux Func 的自觀測資料儲存在本地 Redis 和 MySQL 中。
在重度使用 DataFlux Func 後,指標、日誌等內容資料量可能較為龐大。為了限制本地記憶體、磁碟使用,在本地儲存的系統指標、任務記錄日誌會被縮減,儲存總量也會被限制。
可以參考 部署和維護 / 系統指標和任務記錄 / 關閉本地函式任務記錄 關閉「本地函式任務記錄」,減輕 MySQL 儲存壓力
如果需要完整記錄 DataFlux Func 中產生的系統指標和任務記錄日誌,可以透過系統設定,將資料上報到資料平臺。
2. 開啟「自觀測資料上報」
上報的任務日誌為完整日誌,不會被縮減
在 管理 / 系統設定 / 自觀測資料上報,使用者可以開啟「自觀測資料上報」
URL 地址可以填寫 DataWay 或 DataKit 上報地址:
Text Only | |
---|---|
1 |
|
Text Only | |
---|---|
1 |
|
此外,一般也建議填寫站點名,用於標記當前 DataFlux Func 用途,如:「測試用 Func」
在開啟「自觀測資料上報」後,可以同時關閉「本地函式任務記錄」,減輕本地 DataFlux Func 儲存壓力
3. 在資料平臺中檢視系統指標、任務記錄日誌
正確配置「自觀測資料上報」後,就可以在資料平臺中檢視上報的系統指標和任務日誌了。
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_status
和 status
DataFlux Func 上報日誌中,task_status
和 status
存在一對一關係,task_status
為任務狀態描述,status
為滿足資料平臺規範的狀態值。
具體對應表如下:
task_status 值 | status 值 | 說明 |
---|---|---|
success |
ok |
成功 |
failure |
critical |
失敗 |
skip |
warning |
任務跳過 |
欄位 origin
和 origin_id
origin
和 origin_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 取代 |