1. 概述
1.1 版本
报表服务器版本 | JAR 包版本 | 功能 |
---|---|---|
10.0 | 2019-12-05 | - |
10.0 | 2020-11-02 | 新增表recordOperate 新增表recordWrite |
10.0.19 | - | 删除数据表:errorRecord 新增数据表:templateError |
1.2 功能简介
云端运维应用 这篇文档中提到了 treasures 数据包,有关这个数据包的具体 CSV 表结构,下面将详细说明。
2. 获取数据包
进入数据决策系统选择「管理系统>智能运维>云端运维」,点击「下载数据」即可下载云端运维数据包。
注:下载数据前,需要登录帆软通行证,具体步骤可参考 云端运维应用
3. 数据包结构
3.1 月数据包
解压后有多个日数据包+一个月数据包信息文件( json 格式)。
3.2 日数据包内容
日数据包解压后有 11 张 CSV 表。
注:JAR 包时间在2020-11-02 及之后的版本,新增表 recordOperate 和 recordWrite 。
3.3 日志导出
服务器日志会以压缩包的形式保存入 treasures.zip 数据包。数据包中有两种文件,分别是:
1)所选月份的日志文件(treasxxxxxx.zip)
2)月数据包信息文件(package.json)
其中,package.json 文件中信息为应用名称、应用 ID 、该月数据包所属月份以及该月数据包所含日数据包的个数。
多月 treasure 压缩包中的 json 文件内容:
单月 treasure 压缩包中的 json 文件内容:
4. 数据表及字段
4.1 package
包信息表:应用的基本信息,每个数据包里都包含这个,用于鉴别数据包的来源。
字段 | 备注 |
---|---|
appname | 应用名称 |
appid | 应用 ID |
time | 包时间,比如 2018-11-01(自动导出情况下:每日凌晨四点导出前一天的包,记为导出日期的前一日) |
version | 云端运维版本,2019-12-05版本 JAR 包更新后统一记为3.0 |
DAU | execute表中用户的数量 |
4.2 execute
模板使用情况表:记录模板的执行明细。
字段 | 备注 |
---|---|
id | 主键 |
tname | 物理模板名字(reportlet 下的完整路径) |
displayName | 挂载到平台的目录名称(全路径),如果直接访问链接则为空 |
time | 记录的时间,到秒即可 |
memory | 报表占用内存,单位 B |
type | 报表访问方式 |
consume | 后台耗时 |
sqlTime | SQL 执行耗时间 |
reportId | 模板 ID |
userId | 用户 ID |
ip | 用户所在ip(加密导出) |
complete | 是否计算完成 |
source | 链接访问/平台访问 |
brower | 浏览器 |
sessionID | 会话ID,用于与性能埋点表中的前端渲染耗时相关埋点进行关联 |
node | 加载模板的节点名 |
error | 模板执行过程中第一个报错信息 |
webInfo | 模板执行信息 webResolution:当前模板执行在前端访问时的分辨率,记录格式为x*y fullScreen:当前模板执行在前端访问时是否是全屏模式,记录格式为1/0 |
fineMarkId | 一个用户的标识id(用于判断非登录场景下的用户数) |
4.3 executeSql
SQL执行情况表:记录 SQL 的执行明细。
字段 | 备注 |
---|---|
time | 执行时间,时间戳格式 |
executeid | 执行表 ID |
dsname | 数据集的名称 |
sqltime | SQL 执行时间,单位毫秒 |
rows | 数据集规模,行 |
columns | 数据集规模,列 |
connection | 数据连接名 |
connectionID | 数据连接标识 ID,用于与功能埋点表中的数据源连接相关埋点进行关联 |
4.4 realTime
应用实时情况表:应用的实时情况,每分钟记录一条。
字段 | 备注 |
---|---|
time | 记录时间,每分钟一条 |
node | 节点名 |
cpu | CPU 利用率 |
memory | 当前 jvm 内存情况 |
sessionnum | 存活会话数 |
onlinenum | 系统在线人数 |
pid | 进程 pid |
templateRequest | 正在计算的模板请求数 |
httpRequest | 总的正在处理的 http 请求数 |
sessionRequest | 正在处理的带 SessionID 的请求数 |
fineIO | fineIO占用堆外内存大小,单位KB |
NIO | NIO占用堆外内存大小,单位KB |
bufferMemUse | 堆外使用总内存,directMem「nio」和mappedMem,单位KB |
physicalMemUse | 物理内存已使用空间,单位KB |
physicalMemFree | 物理内存空闲空间,单位KB |
4.5 consumePoint
性能埋点收集表:模板的性能情况,每日记录一次。
字段 | 备注 |
---|---|
id | 埋点 ID 编号 |
source | Original 类里面 1 表示当前系统的,0 表示插件的埋点,-1 表示没有定义来源 |
time | 开始时间 |
username | 用户名 ID |
ip | 用户所在ip(加密导出) |
finish | 结束时间 |
consume | 耗时单位 ms |
memory | 内存大小 单位 byte |
title | 物理模板名字( reportlet 下的完整路径) |
text | SessionID |
type | 操作类型 |
comment | 可以是可以是更具体一些的信息,需要直接分析的数据 |
body | 一个 json 数据结构,根据不同的埋点里面存放不同的信息 |
4.6 focusPoint
功能使用情况表:记录功能点的使用情况,以及各种埋点信息
字段 | 说明 | 备注 |
---|---|---|
id | 埋点 ID 编号 | 例如:FR-F4001 |
source | 埋点来源 | 功能点的类型,embed 表示当前系统的,plugin 表示插件的埋点,undefined表示没有定义来源 |
time | 时间 | 使用该功能的时间点 |
username | 用户名 | 用户名ID |
title | 标题 | 主要内容 |
text | 内容 | 功能点的主要信息 |
body | 埋点具体信息 | 埋点具体信息,一个 json 数据结构,根据不同的埋点里面存放不同的信息(次要信息,可能为空) |
字段 id 格式说明:
例如:FR-F1001
FR前缀,表示是FR的埋点。
第一位字母表示功能/性能:F-功能、P-性能。
第二位数字表示分类:1-数据源、2-前台、3-报错、4-智能运维、5-设计器。
表中字段 id 和 body 之间的关系如下表所示:
id | body | 作用 |
---|---|---|
FR-F1001 | id:数据连接标识 version:数据源版本 driver:连接驱动信息 times:使用次数 connecttime:创建连接的时间 | 用于记录数据连接相关的信息 |
FR-F3001 | 记录具体的报错堆栈 | 记录工程启动失败报错原因 |
FR-F4001 | 初版插件记录示例:{node:2,memory:16,situation:normal,inform:1,type:auto} node 为推荐节点数(推荐单机时记为1) memory 为推荐单机/单节点内存 situation 为推荐的情况:记为"normal"时为正常推荐,"error"时为推荐值异常情况,"inequacy"时为运行数据不足情况,"nonsupport"时为不支持推荐配置。其中"normal"情况下 node 与 memory 有值,其余情况 node 与 memory 记为空 inform 为是否进行了通知,记为1代表已通知,记为0代表未通知 type 为推荐的类型,记为"auto"为根据一自然日运行数据进行推荐的结果,记为"manual"为用户访问接口链接推荐的结果 | 内存配置推荐数值 |
FR-F4002 | 记录示例:{sessionid: xxxxxx, reason: release, detail: row count, load: high load, cell num: 100000, survival time: 600000} sessionid: 被清除的会话 id reason: 会话被清除的原因大类。包括 life(生命周期),limit(模板限制),release(智能释放)三项 detail: 会话被清除的详细原因
load: 会话被杀时的系统的负载状况。包括endanger(危险状态),terrible load(超高负载),high load(高负载),normal load(中低负载) cell num:已计算的单元格个数 survival time:存活时间 | 记录会话因生命周期、模板限制被清除以及高负载时停止计算的情况 |
FR-F4003 | 记录示例:{type: high load kill, kill num time: 50, kill num cell: 50, session num: 300, load: terrible load} type: 包括high load kill(小杀),terrible load kill(大杀),remove all(超杀清除所有会话) kill num time: 因未更新时间过长被杀的会话数,type 为 removeAll 时记为空 kill num cell: 因格子数过多被杀的会话数,type 为 removeAll 时记为空 kill num sum: 被杀的会话数求和 session num: 释放会话之前的会话总数 load: 会话被杀时的系统的负载状况。包括 endanger(危险状态),terrible load(超高负载),high load(高负载),normal load(中低负载) | 记录 GC 回调触发的释放会话情况 |
FR-F5001 | 记录示例:{disk_beforegc:50, disk_aftergc:50} | 记录模板版本管理 GC 清理情况 |
FR-F5002 | node:节点名 time:进程关闭时间 pid:进程 pid startTime:进程开始时间 upTime:进程持续时间 signalName:信号量 | 系统关闭记录:记录系统关闭前后的进程信息以及关闭类型 |
FR-F5003 | node:节点名 containerMem:容器设置的内存大小 cpu:CPU 核数 disk:磁盘总空间 diskUsed 磁盘已使用空间 jdkVersion:JDK 版本 containerVersion:Web容器版本 machineMem:物理机内存 system:服务器操作系统 systemNum:服务器操作系统位数 arch:处理器架构,如x86_64、x86 diskSpeed:磁盘存取速度 FRbuildNO:FR的 jar 包版本 BIbuildNO:BI 的 jar 包版本(记录 BI 的 jar 包版本,未使用 BI 则记为空) serverType:服务器类型(cloud代表云服务器,local代表本地服务器) gcType:垃圾收集器类型 | 容器配置情况:应用所在容器、服务器的配置信息。每日记录一次 |
FR-F5004 | licType:注册类型 expireTime:注册到期时间 CTRID:合同 ID companyId:公司 ID productVersion:产品版本 platformUserNum:用户人数 | 用户基本信息:用户的注册信息等内容。每日记录一次 |
FR-F5005 | tid:模板 ID tName:物理模板名字(reportlets下的完整路径) cNums:条件属性个数 formNums:公式个数 sheetNums:多 sheet 个数 dsNums:数据集个数 compFormNums:复杂公式的个数(包括层次坐标、SQL、Value公式) submitNums:内置提交的个数 isFrozen:是否使用了冻结 isFoldTree:是否使用了折叠树 widgetNums:控件个数 filterNums:过滤个数 injectNums:参数注入个数 formula:模板内公式使用情况 jsAPI:模板内JS API使用情况(限制记录为255字符) tSize:模板总大小 imgSize:模板里图片的大小 lineEngine :是否启用行式引擎(1为启用,0为未启用) execute0-execute4:执行时间的5级的分段记录 mem0-mem4:内存使用量的5级的分段记录 sql0-sql4:SQL 执行时间的5级的分段记录 | 模板属性信息:记录模板的各项信息,每张模板每日输出一条记录 |
FR-F5006 | id:数据在配置中的位置 value:数据值 | 配置信息:每日将 FineDB 中的 fine_conf_entity 表中的特定信息记录一次 |
FR-F5007 | plugin:插件名 version:插件版本 API:插件中所用接口情况 opration:插件运行情况 register:插件注册情况 enable:插件是否启用 | 插件使用情况:插件的使用情况,每个插件在每日记录一次 |
FR-F5008 | function:功能点购买情况 | 功能点购买情况:功能点购买情况,每日记录一次 |
4.7 templateError
错误日志记录表:记录系统中发生过的报错日志。
字段 | 含义 |
---|---|
tname | 出错的物理模板名字(reportlet下的完整路径) |
time | 出错记录时间 |
displayName | 挂载到平台的目录名称(全路径) 如果为空时,判断 platformDisplay是否为0,为零时平台前端显示处理为国际化的“非挂载访问” |
result | 是否成功预览 1:预览成功 0:预览失败 |
code | 错误代码 |
platformDisplay | 是否挂载访问 1:表示挂载访问 0:表示url访问 |
username | 执行报表的用户 notLogged:表示未登录访问 fromSchedule:表示来自定时调度 |
4.8 gcRecord
GC日志记录表:记录系统的 GC 信息。
字段 | 数据类型 & 单位 | 备注 |
---|---|---|
time | long timestamp | 记录时间 |
gcStartTime | long timestamp | GC 开始时间 |
gcType | String | GC 类型 |
gcCause | String | GC 的原因 |
pid | String | 进程pid |
node | String | 用户命名的节点名,单机下记为空 |
duration | long ms | GC 持续时间 |
youngBeforeUsed | long KB | 年轻代 GC 前使用内存 |
youngBeforeCommitted | long KB | 年轻代 GC 前申请内存 |
youngAfterUsed | long KB | 年轻代 GC 后使用内存 |
youngAfterCommitted | long KB | 年轻代 GC 后申请内存 |
oldBeforeUsed | long KB | 老年代 GC 前使用内存 |
oldBeforeCommitted | long KB | 老年代 GC 前申请内存 |
oldAfterUsed | long KB | 老年代 GC 后使用内存 |
oldAfterCommitted | long KB | 老年代 GC 后申请内存 |
metaspaceBeforeUsed | long KB | metaspace GC 前使用内存 |
metaspaceBeforeCommitted | long KB | metaspace GC 前申请内存 |
metaspaceAfterUsed | long KB | metaspace GC 后使用内存 |
metaspaceAfterCommitted | long KB | metaspace GC 后申请内存 |
heapBeforeUsed | long KB | GC 前堆使用内存 |
heapBeforeCommitted | long KB | GC 前堆申请内存 |
heapAfterUsed | long KB | GC 后堆使用内存 |
heapAfterCommitted | long KB | GC 后堆申请内存 |
balancePromoterScore | int 分「分值的分」 | 中止计算分值 |
releasePromoterScore | 同上 | 释放会话分值 |
loadScore | 同上 | 整体负载分值 |
4.9 processLog
记录云端运维任务运行相关的日志。
字段 | 含义 |
---|---|
time | 时间 |
node | 节点 |
process | 流程 |
4.10 recordOperate
管理日志表:用户对模块进行操作的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录。
字段 | 含义 |
---|---|
type | 模块 |
item | 设置项 |
operate | 操作类型 |
username | 用户名 |
ip | IP |
time | 用户操作时间 |
4.11 recordWrite
填报日志记录表:记录填报操作的执行明细。
字段 | 含义 |
---|---|
username | 填报的用户名 |
tname | 模板名称 |
time | 填报时间 |
result | 是否填报成功 |
ip | 填报的 IP 地址 |
displayName | 模板挂载在平台的目录路径 |
browser | 浏览器版本 |
consume | 填报耗时 |
body | 用json数据结构记录以下信息(times, max,min,avg)
|
5. 注意事项
若导出数据包时该日数据包已存在,则先将该日数据包删除后再导出,即进行覆盖操作。
例如 2019-03-02 日凌晨四点会导出 2019-03-01 日数据包。而在 2019-03-01 日用户进行过手动下载,已生成当日数据包,2019-03-02 日凌晨四点导出的数据包则会将之前生成的数据包覆盖。