历史版本19 :平台日志 LogDB 数据库 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineBI 版本
5.0

1.2 功能简介

为了加强对 FineBI 工程的管理,随时监控其运行状态,可在平台中开启日志记录,如下图所示:

注:平台日志的设置仅影响系统日志的输出,不影响操作日志。

7.png

2. LogDB编辑

LogDB 是 FineBI 日志监控开启之后,用于保存日志的内置数据库,那么 FineBI 日志都包含哪些内容呢?

下面来介绍一下,LogDB 中各个数据表的含义以及字段的含义。数据库 LogDB 中表的实际应用可以参考:LogDB 的实际应用场景

2.1 连接 LogDB 数据库

1)以管理员身份进入数据决策系统,点击管理系统>数据连接>数据连接管理>新建数据连接,如下图所示:

8.png

2)数据连接方式选择其他>其他 JDBC,如下图所示:

9.png

3)如下图配置好数据连接信息,点击保存即可。

配置项内容备注
数据连接名称LogDB-
驱动com.fr.swift.jdbc.Driver手动输入驱动器名称
数据连接 URLjdbc:swift:emb://defaultMac、Windows、Linux 通用

1596075068586961.png

2.2 查询 LogDB 数据表

注:使用 SQL 语句查询 LogDB 数据表时,不支持 实时数据

1)以管理员身份进入数据决策系统,点击管理系统>数据连接>服务器数据集>创建数据集>SQL 数据集,如下图所示:

11.png

2)输入数据库查询语句,点击预览按钮即可查询 LogDB 中的数据表。如下图所示:

12.png

2.3 数据表和字段对应的含义

那么 LogDB 数据库中各个数据表和表字段其含义到底是怎么样的呢?

2.3.1 fine_record_execute

BI 执行表:报表访问/导出/打印日志,即如果报表访问/导出/打印的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录。

其各个字段对应的含义如下表所示:

字段含义
id主键
tname仪表板存放路径
displayName仪表板的实际名称,非 目录管理 中仪表板的名称
type

报表访问方式,具体列举在下面的表格中(范围0~105,目前已使用33个编码)

param

2020-08-04 及之后的 JAR 该字段有值

记录被分享节点名称。如果被分享节点为多层级部门,则记录形式为:1层节点/2层节点/节点。每次分享记录一行数据,仅记录,但不导出

ip操作者 IP ,仅记录,但不导出
username执行报表的用户
userrole执行报表的用户角色
consume执行耗时,包括 SQL 执行时间和报表计算时间
time日志开始时间
sqlSQL 语句
sqlTimeSQL 执行的总时间。FR 有效字段,BI 模板为 0,BI 未使用该字段
browser客户端访问报表所用的浏览器版本
memory

报表占用内存,单位 B 。FR 有效字段,BI 模板为 0,BI 未使用该字段

reportId模板编号
userId用户 ID
complete

是否计算完成。FR 有效字段,BI 为 0,BI 未使用该字段

source访问方式。FR 有效字段,BI 为空,BI 未使用该字段
sessionID会话 ID,用于与性能埋点表中(fine_intelli_consume_point)的前端渲染耗时相关埋点进行关联

字段 type 具体含义:

编码  类型  markString 
0分页预览page
1在线分析view
2填报预览  write
3决策报表预览form
4行式引擎layer
5在线编辑edit
6新填报write_plus
10Excel 分页导出excel
11Excel 原样导出excelO
12Excel 整页导出excelL
13Excel 分页分 sheet 导出excelS
14PDF 导出pdf
15Word 导出word
16SVG 导出svg
17CSV 导出csv
18文本导出text
19JPG 图片导出 jpg
20PNG 图片导出png
21GIF 图片导出gif
22BMP 图片导出bmp
23WBMP 图片导出 wbmp
24内置数据集导出模板cpt
25HTML 导出html
26填报 HTML 导出write_html
27BI 导出 Excel
30Flash 打印flash
31PDF 打印
32 Applet 打印applet 
33零客户端打印
34本地软件打印
101BI 模板预览
102

BI 模板编辑

1)记录逻辑:点开一张仪表板进入编辑状态,等待页面全部加载完毕,无论做多少操作或不做操作,记录一次;下次再点模板进去编辑或者刷新网页记录第二次

2)同一张仪表板,每次编辑都会有记录


103BI 模板分享
104记录创建的公共链接操作
105记录公共链接访问情况

106BI 模板全局导出 PDF
107BI 模板全局导出 Excel
108
BI 组件导出 Excel
201关闭浏览器或者 Tab 页(BI)

2.3.2 fine_record_login

登录表:用户登录日志,用于记录用户的登录信息。

其各个字段对应的含义如下表所示:

  字段  含义
time登录时间
ip登录 IP 地址
username  登录的用户
userrole登录的用户角色

2.3.3 fine_record_logout

登出表:用户登出日志,用于记录用户的登出信息。

其各个字段对应的含义如下表所示:

  字段  含义
time用户退出平台时间
ip登出 IP 地址
username  登出平台的用户名
userrole登出平台的用户角色

2.3.4 fine_record_email

邮件表:邮件发送日志(只包含工具栏中的“邮件”),即如果报表发送邮件的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录。

其各个字段对应的含义如下表所示:

  字段含义  
receiver收件人用户名
mail收件人邮箱
ip发送邮件的 IP 地址
username发送邮件的用户
tname仪表板存放路径
displayName挂载到平台的目录名称(全路径),如果直接访问链接则为空
content邮件内容
time发送时间
result是否发送成功
detail详情 

2.3.5 fine_record_write

填报表:记录填报日志信息,即如果报表进行填报的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录。

其各个字段对应的含义如下表所示:

字段  含义  
username填报报表的用户
tname  仪表板存放路径
time填报时间
sqlSQL 语句
sqlTimeSQL 执行的总时间
result是否填报成功
ip填报报表的 IP 地址
displayName挂载到平台的目录名称(全路径),如果直接访问链接则为空
detail详情
browser客户端访问报表所用的浏览器版本
consume执行耗时,包括 SQL 执行时间,报表计算时间

2.3.6 fine_record_error

执行出错日志表:即如果报表执行的过程中报错的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录,记录全部 error 和 fatal 级别的报错信息。

其各个字段对应的含义如下表所示:

  字段  含义
displayName挂载到平台的目录名称(全路径),如果直接访问链接则为空
ip执行报表的 IP 地址
msg错误信息
time出错记录时间
tname出错仪表板的存放路径
trace错误路径
username执行报表的用户
userrole执行报表的用户角色
errorcode错误码(无错误码时记为空)
platformDisplay

是否在平台中显示(1为是,0为否)

记录规则为:有记录到此表的错误日志,此字段记为1,反之此字段记为0

注1:在平台日志的错误日志中过滤展示,只展示 platformDisplay=1 的记录。

注2:如果不是模板出错,则 tname 记录为“非模板触发错误”。

2.3.7 fine_record_param

常用参数组合表:记录常用参数组合日志信息。

其各个字段对应的含义如下表所示:

  字段  含义
templateid模板 ID
username  用户
pgroup

参数,值以数组形式展示:

{参数 1:参数值,参数 2:参数值}

注:2020-04-03 及之后的 JAR ,pgroup 字段值加密显示

time记录时间

2.3.8 fine_record_sms

短信发送表:记录短信发送日志信息,即如果发送短信的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录.。

其各个字段对应的含义如下表所示:

  字段  含义
receiver收件人用户名
mobile接收人手机号
content邮件内容
time发送时间
result是否发送成功
detail详情
sender发件人用户名

2.3.9 fine_record_operate

管理日志表:即用户对模块进行操作的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录。

其各个字段对应的含义如下表所示:

  字段含义  
type模块(存国际化的 key)
item设置项
resource被访问资源
operation操作
username  用户名
ip用户 IP 地址
time用户操作时间
detail详情
requestParam请求参数

2.3.10 fine_record_sql

SQL 执行表:记录 SQL 的执行情况。

其各个字段对应的含义如下表所示:

  字段  含义
columns数据集规模(列)
dsname数据集的名称
executeid执行表 ID
rows数据集规模(行)
sqltimeSQL 执行时间,单位毫秒
connection数据连接名
connectionID数据连接标识ID:作用是与功能埋点表(fine_intelli_focus_point)中的数据源连接相关埋点进行关联,生成规则要与数据源连接埋点记录的数据连接标识相同

2.3.11 fine_intelli_focus_point

功能埋点表:用来保存所有公共的埋点信息。

其各个字段对应的含义如下表所示:

字段  含义  
id埋点 ID 编号。所有埋点均以 E 开头
text记录的主要内容
source

埋点来源

-1 表示没有定义来源(UNDEFINED)

1  是内置 JAR 包的功能点(EMBED)

2  是插件功能点(PLUGIN)

4  是 FineReport 的功能点(REPORT)

8  是 FineBI 的功能点(BI)

time时间
username用户名,转码处理,超管用户为 0 
ip出发埋点的 IP
title标题,埋点是什么
body一个 JSON 数据结构,根据功能点 ID 里面存放不同功能点的信息(次要信息,可能为空)

字段 id 格式说明:

例如:FR-F1001

FR前缀,表示是FR的埋点。

第一位字母表示功能/性能:F-功能、P-性能。

第二位数字表示分类:1-数据源、2-前台、3-报错、4-智能运维、5-设计器。

2.3.12 fine_real_time_usage

应用实时情况表:记录应用实时情况。

其各个字段对应的含义如下表所示:

  字段含义  备注
node节点名
cpuCPU 利用率
memory当前 JVM 内存情况
time记录时间,每分钟一条
sessionNum存活会话数
onlineNum系统在线人数
pid进程 PID
templateRequest正在计算的模板请求数
httpRequest总的正在处理的 http 请求数
sessionRequest正在处理的带 sessionid 的请求数
fineIOfineIO 占用堆外内存大小,单位 KB2020-08-04 及之后 JAR 新增字段
NIONIO 占用堆外内存大小,单位 KB2020-08-04 及之后 JAR 新增字段
bufferMemUse堆外使用总内存,directMem「nio」

和mappedMem,单位 KB

2020-08-04 及之后 JAR 新增字段
physicalMemUse物理内存已使用空间,单位 KB2020-08-04 及之后 JAR 新增字段
physicalMemFree物理内存空闲空间,单位 KB2020-08-04 及之后 JAR 新增字段

2.3.13 fine_intelli_consume_point

性能信息表:记录性能相关信息。

其各个字段对应的含义如下表所示:

字段

说明

备注

id埋点 id 编号BI 为 X961
source埋点来源Original 类里面 embed 表示当前系统的,plugin 表示插件的埋点,undefined 表示没有定义来源
time时间开始时间
finish结束时间FR 有效字段、BI 为 0,BI 未使用该字段

consume

耗时 单位 ms
memory内存大小 单位 byteFR 有效字段、BI 为 0,BI 未使用该字段
username操作者
ip操作 IP
title资源 ID可以是模板 ID,分析表 ID,表 ID 等
text资源内容可以是模板名字,分析表名字等。BI 未使用该字段
type操作类型可以表明是进行了哪种操作。BI 未使用该字段
comment资源备注可以是可以是更具体一些的信息,需要直接分析的数据。BI未使用该字段
body埋点具体信息一个 JSON 数据结构,根据不同的埋点里面存放不同的信息

2.3.14 fine_record_gc

GC 记录表:记录系统的 GC 信息。

其各个字段对应的含义如下表所示:

字段数据类型 & 单位说明
gcStartTimelongGC 开始时间
gcTypeStringGC 类型
gcCauseStringGC 的原因
pidString进程 pid
nodeString用户命名的节点名,单机下记为空
durationlong msGC 持续时间
youngBeforeUsedlong KB年轻代 GC 前使用内存
youngBeforeCommittedlong KB年轻代 GC 前申请内存
youngAfterUsedlong KB年轻代 GC 后使用内存
youngAfterCommittedlong KB年轻代 GC 后申请内存
oldBeforeUsedlong KB老年代 GC 前使用内存
oldBeforeCommittedlong KB老年代 GC 前申请内存
oldAfterUsedlong KB老年代 GC 后使用内存
oldAfterCommittedlong KB老年代 GC 后申请内存
metaspaceBeforeUsedlong KBmetaspace GC 前使用内存
metaspaceBeforeCommittedlong KBmetaspace GC 前申请内存
metaspaceAfterUsedlong KBmetaspace GC 后使用内存
metaspaceAfterCommittedlong KBmetaspace GC 后申请内存
heapBeforeUsedlong KBGC 前堆使用内存
heapBeforeCommittedlong KBGC 后堆申请内存
heapAfterUsedlong KBGC 前堆使用内存
heapAfterCommittedlong KBGC 后堆申请内存
balancePromoterScoreint 分「分值的分」中止分值
releasePromoterScore同上释放分值
loadScore同上整体负载分值

3. 查询语法编辑

3.1 明细查询

SQL 语句示例:

1)select * from fine_record_execute

2)select tname, displayName, consume from fine_record_execute

3.2 group by 查询

GROUP BY 查询,有 SUM,COUNT, MAX, MIN, AVG 这五种聚合方式,如果什么都不写,会默认 COUNT

SQL 语句示例:

1)select sum(consume) from fine_record_execute group by tname, displayName

2)select consume from fine_record_execute group by tname, displayName

3)select min(consume), max(consume) from fine_record_execute group by tname, displayName

3.3 where 过滤条件

简单的 WHERE 过滤条件,支持 AND, OR, =,<>,>,>=, <,<=, in, isnull 

SQL 语句示例:

1)select * from fine_record_execute where consume > 10

2)select sum(consume) from fine_record_execute where consume > 10 and consume < 100 group by tname, displayName

3)select consume from fine_record_execute where tname = `doc/Advanced/Chart/GraphSwitching/多图表实现统一切换.frm`

4)select sum(consume) from fine_record_execute where tname in (`doc/Advanced/Chart/GraphSwitching/多图表实现统一切换.frm`, `doc/Advanced/Chart/Combination/柱形-面积组合图.cpt`) group by tname, displayName

3.4 todate() 将时间戳转换为普通的日期类型

todate() 结果的日期格式为:2018-12-18 10:15:26

SQL 语句示例:

1)  select todate(time) from fine_record_execute

2) select * from fine_record_execute where todate(time)<'2018-12-18 10:15:26' and todate(time)>'2018-12-17 10:15:26'

3.5 like 模糊查询

只支持前后‘%’的用法

注1:支持使用 like 进行模糊查询,不支持 not like 用法 。

注2:目前只支持 '%',暂不支持通配符 ‘_’,需要更新 2019-06-14 以后的 JAR。

SQL 语句示例:

1)select * from fine_record_execute where tname like '%demo%'

4. 注意事项编辑

4.1 LogDB 中添加表后更新失败

问题描述:

在 LogDB 数据库中添加表后,更新失败。平台报错:更新失败,请联系管理员查看报错信息。如下图所示:

3.png

原因分析:

编辑过的 基础表 更新会嵌套,但目前 swift 不支持嵌套。

所以,FineBI 目前暂不支持本节「问题描述」中的操作。

4.2 browser 字段说明

LogDB 数据库fine_record_execute表中 browser 字段一般记录客户端访问报表所用的浏览器版本,例如:CHROME/83.0.,当 browser 字段值如下所示时:

{'Browser':'webkit','Version':'537.36','Agent':'mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/81.0.4044.138 safari/537.36','BoxModel':true,'terminal':'null'}

记录的是浏览器请求头user agent(用户代理字符串)的值,user agent相当于浏览器的唯一标识。

4.3 一个模板编号对应多个模板名称

问题描述:

LogDB 数据库fine_record_execute表中,一个 reportId 对应多个 tname ,如下图所示:

12.png

原因分析:

仪表板被多次重命名,每次重命名后都对仪表板进行访问/导出/打印操作,所以 fine_record_execute 表中一个模板编号会对应多个模板名称。