1. 概述编辑
1.1 版本
报表服务器版本 |
---|
10.0 |
1.2 功能简介
为了加强对报表工程的管理,随时监控其运行状态,可以在平台中开启日志记录,如下图所示:
注:平台日志的设置仅影响系统日志的输出,不影响操作日志。
2. LogDB编辑
LogDB 是 FineReport 日志监控开启之后,用于保存日志的内置数据库,那么 FineReport 日志都包含哪些内容呢?
下面来介绍一下,LogDB 中各个数据表的含义以及字段的含义。
2.1 连接 LogDB 数据库
设计器菜单栏点击服务器>定义数据连接,新增一个 JDBC 数据连接,将其重命名为 LogDB,设置信息如下表所示:
选项 | 内容 |
---|---|
数据库 | Others |
驱动器 | com.fr.swift.jdbc.Driver |
URL | jdbc:swift:emb://default(Mac、Windows、Linux 通用) |
用户名和密码 | 空 |
设计器数据连接页面如下图所示:
2.2 查看数据表
测试链接成功之后,新建一个 数据库查询 方式的数据集,选择上面创建的数据连接,即可看到日志数据库下面的所有数据表,如下图所示:
注:如果是服务器添加了 LogDB 这个数据连接务必控制这个 数据连接的权限 ,否则存在被越权访问并修改配置数据库的风险。
2.3 数据表和字段对应的含义
那么 Logdb 数据库中各个数据表和表字段其含义到底是怎么样的呢?
2.3.1 fine_record_execute
报表(BI)执行表:报表访问/导出/打印日志,即如果报表访问/导出/打印的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录。
其各个字段对应的含义如下表所示:
字段 | 含义 |
---|---|
id | 主键 |
tname | 模板名称(reportlet 下的完整路径) |
displayName | 挂载到平台的目录名称(全路径),如果直接访问链接则为空 |
type | 报表访问方式,具体列举在下面的表格中(范围0~105,目前已使用33个编码) |
param | 参数 |
ip | 执行报表的 IP 地址 |
username | 执行报表的用户 |
userrole | 执行报表的用户角色 |
consume | 执行耗时,包括 SQL 执行时间和报表计算时间 |
time | 日志开始时间 |
sql | SQL 语句 |
sqlTime | SQL 执行的总时间 |
browser | 客户端访问报表所用的浏览器版本 |
memory | 报表占用内存,单位 B
当模板 complete 字段值为0时,这个里记录的是0
|
reportId | 模板编号 |
userId | 用户 ID |
complete | 是否计算完成
|
source | 访问方式(integration 是通过 URL 访问,single 是平台访问的 ) |
sessionID | 会话 ID,用于与性能埋点表中(fine_intelli_consume_point)的前端渲染耗时相关埋点进行关联 |
注:userId、complete、visitType、resource 字段需要更新到 2019-5-20 及之后版本的 JAR 包。
字段 type 具体含义:
编码 | 类型 | markString |
---|---|---|
0 | 分页预览 | page |
1 | 在线分析 | view |
2 | 填报预览 | write |
3 | 决策报表预览 | form |
4 | 行式引擎 | layer |
5 | 在线编辑 | edit |
6 | 新填报 | write_plus |
7 | 新引擎预览 | page_plus |
10 | Excel 分页导出 | excel |
11 | Excel 原样导出 | excelO |
12 | Excel 整页导出 | excelL |
13 | Excel 分页分 sheet 导出 | excelS |
14 | PDF 导出 | |
15 | Word 导出 | word |
16 | SVG 导出 | svg |
17 | CSV 导出 | csv |
18 | 文本导出 | text |
19 | JPG 图片导出 | jpg |
20 | PNG 图片导出 | png |
21 | GIF 图片导出 | gif |
22 | BMP 图片导出 | bmp |
23 | WBMP 图片导出 | wbmp |
24 | 内置数据集导出模板 | cpt |
25 | HTML 导出 | html |
26 | 填报 HTML 导出 | write_html |
27 | BI 导出 Excel | |
30 | Flash 打印 | flash |
31 | PDF 打印 | |
32 | Applet 打印 | applet |
33 | 零客户端打印 | |
34 | 本地软件打印 | |
101 | BI 模板预览 | |
102 | BI 模板编辑 | |
103 | BI 模板分享 | |
104 | 记录创建的公共链接操作 | |
105 | 记录公共链接访问情况 |
2.3.2 fine_record_login
登录表:用户登录日志,用于记录用户的登录信息。
其各个字段对应的含义如下表所示:
字段 | 含义 |
---|---|
time | 登录时间 |
ip | 登录 IP 地址 |
username | 登录的用户 |
userrole | 登录的用户角色 |
2.3.3 fine_record_email
邮件表:邮件发送日志(只包含工具栏中的“邮件”),即如果报表发送邮件的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录。
其各个字段对应的含义如下表所示:
字段 | 含义 |
---|---|
receiver | 收件人用户名 |
收件人邮箱 | |
ip | 发送邮件的IP地址 |
username | 发送邮件的用户 |
tname | 模板名称(reportlet 下的完整路径) |
displayName | 挂载到平台的目录名称(全路径),如果直接访问链接则为空 |
content | 邮件内容 |
time | 发送时间 |
result | 是否发送成功 |
detail | 详情 |
2.3.4 fine_record_write
填报表:记录填报日志信息,即如果报表进行填报的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录。
其各个字段对应的含义如下表所示:
字段 | 含义 |
---|---|
username | 填报报表的用户 |
tname | 模板名称(reportlet 下的完整路径) |
time | 填报时间 |
sql | SQL 语句 |
sqlTime | SQL 执行的总时间 |
result | 是否填报成功 |
ip | 填报报表的IP地址 |
displayName | 挂载到平台的目录名称(全路径),如果直接访问链接则为空 |
detail | 详情 |
browser | 客户端访问报表所用的浏览器版本 |
consume | 执行耗时,包括 SQL 执行时间,报表计算时间 |
2.3.5 fine_record_error
执行出错日志表:即如果报表执行的过程中报错的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录,记录全部 error 和 fatal 级别的报错信息。
其各个字段对应的含义如下表所示:
字段 | 含义 |
---|---|
displayName | 挂载到平台的目录名称(全路径),如果直接访问链接则为空 |
ip | 执行报表的 IP 地址 |
msg | 错误信息 |
time | 出错记录时间 |
tname | 出错的模板名称(reportlet 下的完整路径) |
trace | 错误路径 |
username | 执行报表的用户 |
userrole | 执行报表的用户角色 |
errorcode | 错误码(无错误码时记为空) |
platformDisplay | 是否在平台中显示(1为是,0为否) 记录规则为:有记录到此表的错误日志,此字段记为1,反之此字段记为0 |
注1:在平台日志的错误日志中过滤展示,只展示 platformDisplay=1 的记录。
注2:如果不是模板出错,则 tname 记录为“非模板触发错误”。
2.3.6 fine_record_param
常用参数组合表:记录常用参数组合日志信息。
其各个字段对应的含义如下表所示:
字段 | 含义 |
---|---|
templateid | 模板 ID |
username | 用户 |
pgroup | 参数,值以数组形式展示: {参数 1:参数值,参数 2:参数值} 注:2020-02-28 及之后的 JAR ,pgroup 字段值加密显示 |
time | 记录时间 |
2.3.7 fine_record_sms
短信发送表:记录短信发送日志信息,即如果发送短信的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录.。
其各个字段对应的含义如下表所示:
字段 | 含义 |
---|---|
receiver | 收件人用户名 |
mobile | 接收人手机号 |
content | 邮件内容 |
time | 发送时间 |
result | 是否发送成功 |
detail | 详情 |
sender | 发件人用户名 |
2.3.8 fine_record_operate
管理日志表:即用户对模块进行操作的时候,将会在该表中添加一条记录,并在相应字段中填写其对应的信息记录。
其各个字段对应的含义如下表所示:
字段 | 含义 |
---|---|
type | 模块(存国际化的 key) |
item | 设置项 |
resource | 被访问资源 |
operation | 操作 |
username | 用户名 |
ip | 用户 IP 地址 |
time | 用户操作时间 |
detail | 详情 |
requestParam | 请求参数 |
2.3.9 fine_record_sql
SQL 执行表:记录 SQL 的执行情况。
其各个字段对应的含义如下表所示:
字段 | 含义 |
---|---|
columns | 数据集规模(列) |
dsname | 数据集的名称 |
executeid | 执行表 ID |
rows | 数据集规模(行) |
sqltime | SQL 执行时间,单位毫秒 |
connection | 数据连接名 |
connectionID | 数据连接标识ID:作用是与功能埋点表(fine_intelli_focus_point)中的数据源连接相关埋点进行关联,生成规则要与数据源连接埋点记录的数据连接标识相同 |
2.3.10 fine_intelli_focus_point
功能埋点表:用来保存所有公共的埋点信息。
其各个字段对应的含义如下表所示:
字段 | 含义 |
---|---|
id | 埋点 ID 编号 |
text | 记录的主要内容 |
source | 埋点来源 -1 表示没有定义来源(UNDEFINED) 1 是内置 JAR 包的功能点(EMBED) 2 是插件功能点(PLUGIN) 4 是 FineReport 的功能点(REPORT) 8 是 FineBI 的功能点(BI) |
time | 时间 |
username | 用户名 |
ip | 出发埋点的 IP |
title | 标题,埋点是什么 |
body | 一个 JSON 数据结构,根据功能点 ID 里面存放不同功能点的信息(次要信息,可能为空) |
字段 id 格式说明:
例如:FR-F1001
FR 前缀,表示是 FR 的埋点。
第一位字母表示功能/性能:F-功能、P-性能。
第二位数字表示分类:1-数据源、2-前台、3-报错、4-智能运维、5-设计器。
2.3.11 fine_real_time_usage
应用实时情况表:记录应用实时情况。
其各个字段对应的含义如下表所示:
字段 | 含义 | 备注 |
---|---|---|
node | 节点名 | 2019-05-20 及之后 JAR 新增字段 |
cpu | CPU 利用率 | |
memory | 当前 JVM 内存情况 | |
time | 记录时间,每分钟一条 | |
sessionNum | 存活会话数 | 2019-05-20 及之后 JAR 新增字段 |
onlineNum | 系统在线人数 | 2019-05-20 及之后 JAR 新增字段 |
pid | 进程 PID | 2019-05-20 及之后 JAR 新增字段 |
templateRequest | 正在计算的模板请求数 | |
httpRequest | 总的正在处理的 http 请求数 | |
sessionRequest | 正在处理的带 sessionid 的请求数 | |
fineIO | fineIO 占用堆外内存大小,单位 KB | 2020-06-08 及之后 JAR 新增字段 |
NIO | NIO 占用堆外内存大小,单位 KB | 2020-06-08 及之后 JAR 新增字段 |
bufferMemUse | 堆外使用总内存,directMem「nio」和mappedMem,单位 KB | 2020-06-08 及之后 JAR 新增字段 |
physicalMemUse | 物理内存已使用空间,单位 KB | 2020-06-08 及之后 JAR 新增字段 |
physicalMemFree | 物理内存空闲空间,单位 KB | 2020-06-08 及之后 JAR 新增字段 |
2.3.12 fine_intelli_consume_point
性能信息表:记录性能相关信息。
其各个字段对应的含义如下表所示:
字段 | 说明 | 备注 |
---|---|---|
id | 埋点 id 编号 | |
source | 埋点来源 | Original 类里面 embed 表示当前系统的,plugin 表示插件的埋点,undefined 表示没有定义来源 |
time | 时间 | 开始时间 |
finish | 结束时间 | |
consume | 耗时 单位 ms | |
memory | 内存大小 单位 byte | |
username | 操作者 | |
ip | 操作 IP | |
title | 资源 ID | 可以是模板 ID,分析表 ID,表 ID 等 |
text | 资源内容 | 可以是模板名字,分析表名字,等,可以根据 |
type | 操作类型 | 可以表明是进行了哪种操作 |
comment | 资源备注 | 可以是可以是更具体一些的信息,需要直接分析的数据。 |
body | 埋点具体信息 | 一个 JSON 数据结构,根据不同的埋点里面存放不同的信息 |
2.3.13 fine_record_gc
GC 记录表:记录系统的 GC 信息。
其各个字段对应的含义如下表所示:
字段 | 数据类型 & 单位 | 说明 |
---|---|---|
gcStartTime | long | 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 | 同上 | 整体负载分值 |
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'
注: 需要更新 2019-5-20 以后的 JAR。
3.5 like 模糊查询
只支持前后‘%’的用法
SQL 语句示例:
1)select * from fine_record_execute where tname like '%demo%'
注:目前只支持 '%',暂不支持通配符 ‘_’,需要更新 2019-5-20 以后的 JAR。