如何发送日志批次
Note
日志批次可以通过两种方式传输。
直接上傳檔案到 Google Cloud Storage¶
- 要將.log批次檔上傳到GCS,您必須首先申請BigQuery權限。
GCS 存儲桶列表¶
操作環境 | 桶地址 | 描述 |
---|---|---|
實時服務 | gs://snapshot_upload_live | 用於上傳服務操作環境日誌批次數據的桶 |
沙盒 | gs://snapshot_upload_sandbox | 用於上傳沙盒環境日誌批次數據的桶 |
(必填)檔案命名規則¶
- 公司名稱_類別值/YYYY/MM/dd/公司名稱_類別值_YYYY_MM_dd_HH_mm_ss_uuid隨機.log
- 必須遵循文件命名規則。
- 在文件名稱中的日期和uuid用於檢查存儲日期並防止重複。
- 文件擴展名為 ".log"。
- 範例)
- com2us_nbasuperstars_team/2023/03/24/com2us_nbasuperstars_team_2023-03-24_05_55_00_c4c9c6e0-4093-4e29-853f-2d0d9608ca3b.log
文件格式¶
- 檔案應由每個表的日誌組成,數據不應與不同類別混合。
- 以換行分隔的 json 檔案(範例)
{"dateTime":"2021-10-11 11:27:15", "category":"game_name_login_log", "timezone":"UTC+09:00", "channel":"HIVE", "user_id":10053833008, "app_id":"com.com2us.hivesdk.android.google.global.normal", "did":5102491016, "level":0, "client_ip":"172.XX.XXX.XX", "device_name":"TINNO U319AA", "company":"C2S", "server_id":"GLOBAL-2", "server_uid":256489411, "last_login_date":"2021-10-10 08:33:11", "os_version":"11", "is_emulator":0, "game_language":"en"}
{"dateTime":"2021-10-11 11:27:15", "category":"game_name_login_log", "timezone":"UTC+09:00", "channel":"HIVE", "user_id":10053833008, "app_id":"com.com2us.hivesdk.android.google.global.normal", "did":5102491016, "level":0, "client_ip":"172.XX.XXX.XX", "device_name":"TINNO U319AA", "company":"C2S", "server_id":"GLOBAL-2", "server_uid":256489411, "last_login_date":"2021-10-10 08:33:11", "os_version":"11", "is_emulator":0, "game_language":"en"}
{"dateTime":"2021-10-11 11:27:15", "category":"game_name_login_log", "timezone":"UTC+09:00", "channel":"HIVE", "user_id":10053833008, "app_id":"com.com2us.hivesdk.android.google.global.normal", "did":5102491016, "level":0, "client_ip":"172.XX.XXX.XX", "device_name":"TINNO U319AA", "company":"C2S", "server_id":"GLOBAL-2", "server_uid":256489411, "last_login_date":"2021-10-10 08:33:11", "os_version":"11", "is_emulator":0, "game_language":"en"}
- 檔案不應該被壓縮。
- 檔案大小應控制在不超過 1G。
- 當上傳多個檔案時,最好是檔案較少但大小較大。
- 同時上傳太多檔案可能會導致錯誤(每秒少於 10 個)。
GCS 文件上傳指南¶
- https://cloud.google.com/storage/docs/uploading-objects?hl=ko#storage-upload-object-python
- 上傳檔案後立即刷新可能會讓它看起來像是檔案消失了。
- 這是因為檔案在處理後立即被移動,重新上傳相同的檔案可能會導致BigQuery中的數據重複,因此請注意。
通過 FluentD 的日誌傳輸¶
Note
日誌批次無法通過串流 FluentD 轉移到接收伺服器。
有關使用 FluentD 的詳細資訊,請參閱 fluentd 方法頁面。
Fluentd 傳輸注意事項¶
- 區塊 file - limit 為 10Mbyte。超過此 limit 的檔案將自動刪除,請小心。
- 如果逐行傳輸(少於 10Mbyte)不可行,建議使用 google 雲端 storage file 上傳。
專用伺服器資訊以進行日誌批次¶
伺服器類型 | URL 地址 |
---|---|
直播伺服器 01 | analytics-hivelog-snap-01.withhive.com |
直播伺服器 02 | analytics-hivelog-snap-02.withhive.com |
沙盒伺服器 | sandbox-analytics-hivelog.withhive.com |
Fluentd 標籤規則¶
- 標籤創建規則
- 公司名稱_表格名稱(類別值)_快照
- 例子
- 使用由公司名稱和類別值組合而成的標籤,包括快照
- com2us_logname_snapshot
- 使用由公司名稱和類別值組合而成的標籤,包括快照
參考文獻¶
- 無論傳輸方法如何,日誌批次檔案會在GCS中儲存一段時間。
- 保留期限:90天
- 超過90天的檔案將被刪除,無法恢復。(BigQuery中的數據仍然可以查詢)
- 檔案保留的目的包括稍後將數據重新加載到BigQuery或驗證數據遺漏。