---
# System prepended metadata

title: log處理邏輯

---

# 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