部署和维护 / 上报自观测数据到观测云
本文主要介绍如何将配置 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_auth_link" |
comment |
Tag | 表名(中文注释) | "授权链接" |
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 值意义 |
---|---|---|
authLink |
授权链接 | 授权链接 ID |
crontab |
自动触发配置 | 自动触发配置 ID |
batch |
批处理 | 批处理 ID |
direct |
直接调用函数,如观测云通过集群内调用 | 固定为direct |
integration |
由脚本集成触发 | {集成类型}.{启动方式}-{函数 ID} |