平台日志 LogDB 数据库

  • 文档创建者:Leo.Tsai
  • 编辑次数:2次
  • 最近更新:Leo.Tsai 于 2020-01-14
  • 1. 概述

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

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

    1578985369589486.png

    2. LogDB

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

    下面来介绍一下,LogDB 中各个数据表的含义以及字段的含义。

    2.1 连接 LogDB 数据库

    1)BI 平台点击管理系统>数据连接>数据连接管理>新建数据连接

    1578985845312146.png

    2)数据连接方式选择其他>其他 JDBC

    1578985977107782.png

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

    配置项内容
    数据连接名称LogDB
    驱动com.fr.swift.jdbc.Driver
    数据连接 URLjdbc:swift:emb://default

    1578986054793976.png

    2.2 查询 LogDB 数据表

    1)BI 平台点击管理系统>数据连接>服务器数据集>创建数据集>SQL 数据集

    1578986692387896.png

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

    1578986811699153.png

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

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

    2.3.1 fine_record_execute

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

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

    字段含义
    id主键
    tname模板名称(reportlets 下的完整路径)
    displayName挂载到平台的目录名称(全路径),如果直接访问链接则为空
    type报表访问方式,具体列举在下面的表格中(范围0~105,目前已使用33个编码)
    param参数
    ip执行报表的 IP 地址
    username执行报表的用户
    userrole执行报表的用户角色
    consume执行耗时,包括 SQL 执行时间和报表计算时间
    time日志开始时间
    sqlSQL 语句
    sqlTimeSQL 执行的总时间
    browser客户端访问报表所用的浏览器版本
    memory

    报表占用内存,单位 B

    • 若因宕机等情况计算中断,记录的是报表开始计算到计算中断所占用的内存(根据格子数估算,一格子占用0.2KB)

           当模板 complete 字段值为0时,这个里记录的是0

    • 若计算完成,记录的数据除200之后返回的是报表从开始计算到计算完成所生成的格子数

    reportId模板编号
    userId用户 ID
    complete

    是否计算完成

    • 若因宕机等情况计算中断,记录为0

    • 若计算完成,记录为1

    source访问方式(integration 是通过 URL 访问,single 是平台访问的 )
    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 模板预览
    102BI 模板编辑
    103BI 模板分享
    104记录创建的公共链接操作
    105记录公共链接访问情况


    2.3.2 fine_record_login

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

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

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


    2.3.3 fine_record_email

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

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

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


    2.3.4 fine_record_write

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

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

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


    2.3.5 fine_record_error

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

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

      字段  含义
    displayName挂载到平台的目录名称(全路径),如果直接访问链接则为空
    ip执行报表的 IP 地址
    msg错误信息
    time出错记录时间
    tname出错的模板名称(reportlets 下的完整路径)
    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:参数值}

    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数据集规模(行)
    sqltimeSQL 执行时间,单位毫秒
    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-设计器。

    表中字段 id 和 body 之间的关系如下表所示:

    idbody作用
    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: 会话被清除的详细原因

    • reason 记为 life 时,此项记录为空。

    • reason 记为 limit 时,此项记录为:row count(单数据集行数限制),cell count(单模板单元格限制),sql time(sql执行时长限制),excel cell count(导入Excel单元格限制),commit row count(提交记录数限制),cartesian(填报笛卡尔积限制)

    • reason 记为 release 时,此项记录为:stop calculating

    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-F5002node:节点名

    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-F5008function:功能点购买情况

    功能点购买情况:功能点购买情况,每日记录一次


    2.3.11 fine_real_time_usage

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

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

      字段含义  
    node节点名
    cpuCPU 利用率
    memory当前 JVM 内存情况
    time记录时间,每分钟一条
    sessionNum存活会话数
    onlineNum系统在线人数
    pid进程 PID
    templateRequest正在计算的模板请求数
    httpRequest总的正在处理的 http 请求数
    sessionRequest正在处理的带 sessionid 的请求数


    2.3.12 fine_function_possess

    功能点购买情况表:功能点购买情况,每日记录一次。

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

    字段

    含义

    time时间,精确到日
    function功能点购买情况


    2.3.13 fine_intelli_consume_point

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

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

    字段

    说明

    备注

    id埋点 id 编号
    source埋点来源Original 类里面 embed 表示当前系统的,plugin 表示插件的埋点,undefined 表示没有定义来源
    time时间开始时间
    endTime结束时间

    consume

    耗时 单位 ms
    memory内存大小 单位 byte
    username操作者
    ip操作 IP
    title资源 ID可以是模板 ID,分析表 ID,表 ID 等
    text资源内容可以是模板名字,分析表名字,等,可以根据
    type操作类型可以表明是进行了哪种操作
    comment资源备注可以是可以是更具体一些的信息,需要直接分析的数据。
    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 模糊查询

    只支持前后‘%’的用法

    SQL 语句示例:

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

    注:目前只支持 '%',暂不支持通配符 ‘_’。


    附件列表


    主题:
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!