部署和維護 / 上報自觀測數據
本文主要介紹如何將配置 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 取代 |