部署和維護 / 上報自觀測資料
本文主要介紹如何將配置 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 會上報多種資料,供排查問題。
函式觸發計數(Metric)
指標集:DFF_func_trigger
| 欄位 | 型別 | 說明 | 示例值 |
|---|---|---|---|
func_id |
Tag | 函式 ID | "demo__test.run" |
origin |
Tag | 來源 | "FuncAPI" |
origin_id |
Tag | 來源 ID | |
queue |
Tag | 執行佇列 | "8" |
cron_job_exec_mode |
Tag | 定時任務執行模式 | "cronJob" |
count |
Field | 計數 | 1 |
函式執行(Metric)
指標集:DFF_func_run
| 欄位 | 型別 | 說明 | 示例值 |
|---|---|---|---|
func_id |
Tag | 函式 ID | "demo__test.run" |
origin |
Tag | 來源 | "FuncAPI" |
origin_id |
Tag | 來源 ID | |
queue |
Tag | 執行佇列 | "8" |
task_status |
Tag | 任務狀態 | "success" |
cron_job_exec_mode |
Tag | 定時任務執行模式 | "cronJob" |
wait_cost |
Field | 等待耗時(毫秒) | 100 |
run_cost |
Field | 執行耗時(毫秒) | 300 |
total_cost |
Field | 總耗時(毫秒) | 400 |
cpu_cost |
Field | CPU 耗時(毫秒) | 100 |
non_cpu_cost |
Field | 非 CPU 耗時(毫秒) | 200 |
延遲佇列(Metric)
尚未到達觸發時間的任務佇列
指標集:DFF_delay_queue
| 欄位 | 型別 | 說明 | 示例值 |
|---|---|---|---|
queue |
Tag | 佇列 | "8" |
length |
Field | 佇列長度 | 100 |
工作佇列(Metric)
已經到達觸發時間的任務佇列
指標集:DFF_worker_queue
| 欄位 | 型別 | 說明 | 示例值 |
|---|---|---|---|
queue |
Tag | 佇列 | "8" |
length |
Field | 佇列長度 | 100 |
快取資料庫(Metric)
指標集:DFF_cache_db
| 欄位 | 型別 | 說明 | 示例值 |
|---|---|---|---|
server |
Tag | 目標資料庫(HOST:PORT/DB) |
"127.0.0.1:6379/5" |
keys |
Field | Key 數量 | 100 |
used_memory |
Field | 記憶體使用量(位元組) | 10000 |
uptime |
Field | 服務執行時長(秒) | 60 |
資料庫表(Metric)
指標集:DFF_db_table
| 欄位 | 型別 | 說明 | 示例值 |
|---|---|---|---|
server |
Tag | 目標資料庫(HOST:PORT/DB) |
"127.0.0.1:3306/dataflux_func" |
name |
Tag | 表名 | "biz_main_func_api" |
rows |
Field | 行數 | 10 |
data_size |
Field | 資料佔用大小(位元組) | 100 |
index_size |
Field | 索引佔用大小(位元組) | 100 |
total_size |
Field | 總佔用大小(位元組) | 200 |
avg_row_size |
Field | 平均每行佔用大小(位元組) | 100 |
業務實體(Metric)
指標集:DFF_entity
| 欄位 | 型別 | 說明 | 示例值 |
|---|---|---|---|
entity |
Tag | 業務實體 | "funcAPI" |
count |
Field | 數量 | 100 |
enabled_count |
Field | 已啟用的數量 | 99 |
Func 服務資訊(Logging)
指標集:DFF_service_info
| 欄位 | 說明 | 示例值 |
|---|---|---|
name |
服務名稱 | "server"、"worker"、"beat" |
version |
版本號 | "7.1.11" |
edition |
版本 | "GSE" |
hostname |
主機名 | "web001" |
pid |
程序 PID | 1234 |
uptime |
服務執行時長(秒) | 60 |
系統任務記錄 / 函式任務記錄(Logging)
DataFlux Func 在執行任何內部系統任務或者函式任務後,都會上報相應的任務日誌,可以透過日誌檢視器檢視。
| 指標集 | 說明 |
|---|---|
DFF_task_record |
系統任務記錄 |
DFF_task_record_func |
函式任務記錄 |
| 欄位 | 說明 | 系統任務記錄 | 函式任務記錄 |
|---|---|---|---|
source |
資料來源 | DFF_task_record |
DFF_task_record_func |
site_name |
站點名 | ||
id |
任務 ID | ||
name |
任務名稱 | ||
queue |
所在佇列 | ||
task_status |
任務狀態,可能值見下文 | ||
root_task_id |
根任務 ID | ||
script_set_id |
所屬指令碼集 ID | ||
script_id |
所屬指令碼 ID | ||
func_id |
函式 ID | ||
func_name |
函式名 | ||
origin |
來源,可能值見下文 | ||
origin_id |
來源 ID 如:定時任務 ID |
||
script_set_title |
所屬指令碼集標題 | ||
script_title |
所屬指令碼標題 | ||
func_title |
函式標題 | ||
cron_job_exec_mode |
定時任務執行模式 | ||
func_call_kwargs |
函式傳入引數 | ||
cron_expr |
定時任務 Crontab 表示式 | ||
call_chain |
呼叫鏈 | ||
return_value |
Return 返回值 | ||
message |
任務日誌 | ||
kwargs |
任務引數 | ||
eta |
預計執行時間 | ||
delay |
延遲執行時長(秒) | ||
timeout |
超時時長(秒) | ||
expires |
過期時長(秒) | ||
ignore_result |
是否忽略結果 | ||
result |
結果內容 | ||
exception_from |
異常來源 | ||
exception_type |
異常型別 | ||
exception |
異常內容 | ||
origin_exception_type |
原始異常型別 | ||
origin_exception |
原始異常內容 | ||
traceback |
錯誤堆疊 | ||
trigger_time_iso |
觸發時間(ISO 日期格式) | ||
start_time_iso |
啟動時間(ISO 日期格式) | ||
end_time_iso |
結束時間(ISO 日期格式) | ||
wait_cost |
排隊耗時(毫秒) | ||
run_cost |
執行耗時(毫秒) | ||
total_cost |
總耗時(毫秒) | ||
cpu_cost |
CPU 耗時(毫秒) | ||
cpu_cost_percent |
CPU 耗時佔比 | ||
non_cpu_cost |
非 CPU 耗時(毫秒) | ||
non_cpu_cost_percent |
非 CPU 耗時佔比 | ||
sys_db_query_count |
系統 DB 查詢次數 | ||
sys_db_query_details |
系統 DB 查詢詳情 | ||
sys_cache_db_query_count |
系統快取查詢次數 | ||
sys_cache_db_query_details |
系統快取查詢詳情 | ||
status |
日誌狀態,可能值見下文 | ||
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 取代 |