# log處理邏輯 --- ## Q1: Archiver 觸發運算時機? A: Minute 是 每分钟会触发,只要是空闲的就回进行处理。Hour 是 5,20,35,50分钟时触发。Day,Week,Month,Year 是 10,25,40,55 分钟时触发 ## Q2: Recording Rate最小60秒? A: Archiver會整理資料,最小單位的表是分鐘表,小於60秒的Rate還是會存入分鐘表但會增加分鐘表的資料量,因此限定60秒以上比較合理,小於60秒的資料直接去查RAW Data就好 ## Q3: 資料保留規則 (一般User知道這個就好) ### 自營運 days to keep obj data (Min表)(UI預設值7天, UI限制最大值731天) Days to keep Other data(Hour&Day表) (UI隱藏, 值永遠是731天) 每個Param的 Days to keep RAW DATA(UI隱藏, UI給預設值7天, SAVE Object時,跟著days to keep obj data的值存,但最大值=31天) ### 自營運 並開啟自訂blob (Mirai是這種) days to keep obj data (Min表) 预设7天,没有上限 Days to keep Other data(Hour&Day表) 与days to keep obj data一样,但值不小于731, 沒有上限 每个parameter 的 Days to keep RAW DATA与days to keep obj data一样,没有上限 ### on-premises days to keep obj data (Min表) (UI預設值7天, UI不限制最大值) Days to keep Other data (Hour&Day) (UI隱藏, UI SAVE時,跟著days to keep obj data的值存,但不小於1096天) 每個Param的 Days to keep RAW DATA(UI隱藏, UI給預設值7天, SAVE Object時,跟著days to keep obj data的值存,但最大值=1096天) ## Q4: Data Packer資料刪除觸發時機 (內部機制,一般user不需要知道) 每天凌晨3點會清理expired的資料, 這邊的時間以UTC時間計算 mongodb (發訊息給data Cleaner) 清理多久前的資料為data packer的環境變數, 以下列出目前設定值 RAWData: RawExpireDays: 5天前的資料會從MongoDB移除 Min: MinExpireDays: 7天前的資料會從MongoDB移除 Hour/Day: HDExpireDays:45天前的資料會從MongoDB移除 若Q3設定的日期小於上述日期,則以Q3的日期為主 Blob (Data Packer自己處理) 日期依照Q2的邏輯判斷要不要刪除blob的資料 範例 假設你設定資料紀錄7天 現在是1/8凌晨3:00 UTC 則會刪除1/1 00:00 UTC之前blob的所有資料 ## Q5:Data Packer資料備份時機 (內部機制,一般user不需要知道) 每天5 / 11 / 17 / 23點 UTC 會觸發資料備份到Blob 預設從mongodb備份資料的時間點, 設定為data packer的環境變數運算而來, 運算邏輯如下: RAWData: RawExpireDays: 5 - PackBeforeDays: 2 = 3天前的資料要備份 Min: MinExpireDays: 7 - PackBeforeDays: 2 = 5天前的資料要備份 Hour/Day: HDExpireDays:45 - PackBeforeDays: 2 = 43天前的資料要備份 若Q3設定的日期小於RawExpireDays / MinExpireDays / HDExpireDays 則完全不執行備份邏輯 範例 現在是1/8凌晨5:00 UTC 會備份1/5 00:00之前的RAWData 會備份1/3 00:00之前的Min Data 會備份11/26 00:00之前的Hour / Day Data