一、概述
雲端運維操作步驟 這篇文檔中提到了 treasures 資料包,有關這個資料包的具體 CSV 表結構,下面将詳細說明。
二、資料包表結構說明
1
資料包結構。
下載需要分析的月份的資料後,可在%FR_HOME%\webapps\webroot\WEB-INF\treasures路徑下看到一個所選月份的日誌檔案(treasxxxxxx.zip)和一個月資料包資訊檔案(package.json)。
package.json 檔案中資訊為應用名稱、應用 ID 、該月資料包所屬月份以及該月資料包所含日資料包的個數。
月資料包(treasxxxxxx.zip)解壓後有多個日資料包+一個月資料包資訊檔案( json 格式)。
日資料包解壓後有 11 張 CSV 表。
2
資料表-package。
包資訊表:應用的基本資訊,每個資料包裡都包含這個,用於鑑別資料包的來源。
欄位 | 備註 |
appname | 應用名稱。 |
appid | 應用ID。 |
time | 包時間,比如 2018-11-01(自動匯出情況下:每日淩晨四點匯出前一天的包,記為匯出日期的前一日)。 |
version | 雲端健檢分析版本。 |
3
資料包-execute。
範本使用情況表:記錄範本的執行明細。
欄位 | 備註 |
id | 主鍵。 |
tname | 物理範本名字(reportlet 下的完整路徑。 |
displayName | 掛載到平臺的目錄名稱(全路徑),如果直接訪問連結則為空。 |
time | 記錄的時間,到秒即可。 |
memory | 報表佔用記憶體,單位 B。 |
type | 報表訪問方式。 |
consume | 後臺耗時。 |
sqlTime | SQL 執行耗時間。 |
userId | 使用者ID。 |
complete | 是否計算完成。 |
source | 連結訪問/平臺訪問。 |
reportId | 範本ID。 |
browser | 瀏覽器。 |
sessionID | 會話ID,用於與效能埋點表中的前端渲染耗時相關埋點進行關聯。 |
4
資料包-executeSql。
SQL執行情況表:記錄 SQL 的執行明細。
欄位 | 備註 |
executeid | 執行表ID。 |
dsname | 資料集的名稱。 |
sqltime | SQL 執行時間,單位毫秒。 |
rows | 資料集規模,列。 |
columns | 資料集規模,欄。 |
time | 執行時間,時間戳格式。 |
connection | 資料連線名。 |
connectionID | 資料連線標識 ID,用於與功能埋點表中的資料來源連線相關埋點進行關聯。 |
5
資料包-realTime。
應用實時情況表:應用的實時情況,每分鐘記錄一條。
欄位 | 備註 |
node | 節點名。 |
time | 記錄時間,每分鐘一條。 |
memory | 當前 jvm 記憶體情況。 |
cpu | CPU 利用率。 |
sessionnum | 存活會話數。 |
onlinenum | 系統線上人數。 |
pid | 程式 id。 |
templateRequest | 正在計算的範本請求數。 |
httpRequest | 正在處理的http請求總數。 |
sessionRequest | 正在處理的帶sessionID的請求數。 |
6
資料包-consumePoint。
效能埋點收集表:範本的效能情況,每日記錄一次。
欄位 | 備註 |
id | 埋點 ID 編號。 |
source | Original 類裡面 1 表示當前系統的,0 表示插件的埋點,-1 表示沒有定義來源。 |
time | 開始時間。 |
username | 使用者名稱 ID。 |
finish | 結束時間。 |
consume | 耗時單位 ms。 |
memory | 記憶體大小 單位 byte。 |
title | 物理範本名字( reportlet 下的完整路徑)。 |
text | SessionID。 |
type | 操作型別。 |
comment | 可以是可以是更具體一些的資訊,需要直接分析的資料。 |
body | 一個 json 資料結構,根據不同的埋點裡面存放不同的資訊。 |
7
資料包-focusPoint。
功能使用情況表:記錄功能點的使用情況,以及各種埋點資訊。
欄位 id 格式說明:
例如:FR-F1001
FR字首,表示是FR的埋點。
第一位字母表示功能/效能:F-功能、P-效能。
第二位數字表示分類:1-資料來源、2-前臺、3-報錯、4-智慧運維、5-設計器。
表中欄位 id 和 body 之間的關係如下表2所示。
欄位 | 說明 | 備註 |
id | 埋點ID編號 | 例如:FR-F4001。 |
source | 埋點來源 | 功能點的型別,embed 表示當前系統的,plugin 表示外掛的埋點,undefined表示沒有定義來源。 |
time | 時間 | 使用該功能的時間點。 |
username | 使用者名稱 | 使用者名稱ID。 |
title | 標題 | 主要內容。 |
text | 內容 | 功能點的主要資訊。 |
body | 埋點具體資訊 | 埋點具體資訊,一個 json 資料結構,根據不同的埋點裡面存放不同的資訊(次要資訊,可能為空)。 |
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: 會話被清除的詳細原因。 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-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 | version:插件版本。 API:插件中所用介面情況。 opration:插件執行情況。 register:插件註冊情況。 enable:插件是否啟用。 | 插件使用情況:插件的使用情況,每個插件在每日記錄一次。 |
FR-F5008 | function:功能點購買情況。 | 功能點購買情況:功能點購買情況,每日記錄一次。 |
8
資料包-errorRecord。
錯誤日誌記錄表:記錄系統中發生過的報錯日誌。
欄位 | 備註 |
tname | 出錯的物理範本名字(reportlet下的完整路徑)。 |
time | 出錯記錄時間。 |
displayName | 掛載到平臺的目錄名稱(全路徑),如果直接訪問連結則為空。 |
platformDisplay | 是否在平臺中顯示(1為是,0為否)。 記錄規則為:有記錄到此表的錯誤日誌,此欄位記為1,反之此欄位記為0。 |
username | 使用者 ID(生成規則需和 excute 表中使用者 ID 的生成規則保持一緻。 |
msg | 錯誤資訊。 |
errorcode | 錯誤碼。 |
trace | 錯誤路徑。 |
9
資料包-gcRecord。
GC日誌記錄表:記錄系統的 GC 資訊。
欄位 | 資料類型&單位 | 備註 |
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 | int 分「分值的分」 | 釋放會話分值。 |
loadScore | int 分「分值的分」 | 整體負載分值。 |
10
資料包-processLog。
記錄雲端健檢分析任務執行相關的日誌。
欄位 | 備註 |
---|---|
time | 時間。 |
node | 節點。 |
process | 流程。 |
11
資料包-recordOperate。管理日誌表:使用者對模組進行操作的時候,將會在該表中新增一條記錄,並在相應欄位中填寫其對應的資訊記錄。
管理日誌表:使用者對模組進行操作的時候,將會在該表中新增一條記錄,並在相應欄位中填寫其對應的資訊記錄。
欄位 | 備註 |
type | 模組。 |
item | 設定項。 |
operate | 操作型別。 |
username | 使用者名稱。 |
ip | IP。 |
time | 使用者操作時間。 |
12
資料包-recordeWrite。填報日誌記錄表:記錄填報操作的執行明細。
填報日誌記錄表:記錄填報操作的執行明細。
欄位 | 備註 |
username | 填報的使用者名稱。 |
tname | 範本名稱。 |
time | 填報時間。 |
result | 是否填報成功。 |
ip | 填報的 IP 地址。 |
displayName | 範本掛載在平臺的目錄路徑。 |
browser | 瀏覽器版本。 |
consume | 填報耗時。 |
三、注意事項
若匯出資料包時當天資料包已存在,則先将當天資料包删除後再匯出,即進行覆蓋操作。
例如 2019-03-02 日淩晨四點會匯出 2019-03-01 號資料包。而在 2019-03-01 號使用者進行過手動下載,已生成當日資料包,2019-03-02 日淩晨四點匯出的資料包則會将之前生成的資料包覆蓋。