跳轉到

部署和維護 / 上報自觀測資料

本文主要介紹如何將配置 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 會上報多種資料,供排查問題。

函式觸發計數(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_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 取代