วิธีการส่งชุดบันทึก
Note
การบันทึก .log สามารถส่งได้ 2 วิธี
การอัปโหลดไฟล์โดยตรงไปยัง Google Cloud Storage¶
- ในการอัปโหลดไฟล์แบตช์ .log ไปยัง GCS คุณต้องขอ สิทธิ์ BigQuery ก่อน
รายการถัง GCS¶
สภาพแวดล้อมการทำงาน | ที่อยู่บัคเก็ต | คำอธิบาย |
---|---|---|
บริการสด | gs://snapshot_upload_live | บัคเก็ตสำหรับอัปโหลดข้อมูลบันทึกชุดสำหรับสภาพแวดล้อมการทำงานของบริการ |
Sandbox | gs://snapshot_upload_sandbox | บัคเก็ตสำหรับอัปโหลดข้อมูลบันทึกชุดสำหรับสภาพแวดล้อม Sandbox |
(จำเป็น) ข้อกำหนดการตั้งชื่อไฟล์¶
- CompanyName_CategoryValue/YYYY/MM/dd/CompanyName_CategoryValue_YYYY_MM_dd_HH_mm_ss_uuidRandom.log
- จำเป็นต้องปฏิบัติตาม file naming convention.
- วันที่และ uuid ในชื่อ file ใช้สำหรับตรวจสอบวันที่ storage และป้องกันการซ้ำซ้อน.
- นามสกุล file คือ ".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 method page。
Fluentd ข้อควรระวังในการส่งข้อมูล¶
- Chunk file - limit คือ 10Mbyte ไฟล์ที่เกิน limit นี้จะถูกลบโดยอัตโนมัติ ดังนั้นโปรดระวัง.
- หากไม่สามารถส่งข้อมูลแบบทีละบรรทัด (น้อยกว่า 10Mbyte) ได้ แนะนำให้ใช้การอัปโหลด google cloud storage file.
ข้อมูลเซิร์ฟเวอร์เฉพาะสำหรับ Log batch¶
ประเภทเซิร์ฟเวอร์ | ที่อยู่ URL |
---|---|
เซิร์ฟเวอร์สด 01 | analytics-hivelog-snap-01.withhive.com |
เซิร์ฟเวอร์สด 02 | analytics-hivelog-snap-02.withhive.com |
เซิร์ฟเวอร์แซนด์บ็อกซ์ | sandbox-analytics-hivelog.withhive.com |
กฎแท็ก Fluentd¶
- กฎการสร้างแท็ก
- CompanyName_Table Name(category value)_snapshot
- ตัวอย่าง
- ใช้แท็กที่สร้างขึ้นโดยการรวมชื่อบริษัทและค่าประเภท รวมถึง_snapshot
- com2us_logname_snapshot
- ใช้แท็กที่สร้างขึ้นโดยการรวมชื่อบริษัทและค่าประเภท รวมถึง_snapshot
อ้างอิง¶
- ไม่ว่าจะเป็นวิธีการส่งข้อมูลใดๆ ไฟล์บันทึกแบบกลุ่มจะถูกเก็บใน GCS เป็นระยะเวลาหนึ่ง
- ระยะเวลาการเก็บรักษา: 90 วัน
- ไฟล์ที่มีอายุมากกว่า 90 วันจะถูกลบและไม่สามารถกู้คืนได้ (ข้อมูลใน BigQuery ยังสามารถค้นหาได้)
- ไฟล์จะถูกเก็บไว้เพื่อวัตถุประสงค์ เช่น การโหลดข้อมูลกลับเข้าไปใน BigQuery ในภายหลังหรือการตรวจสอบการขาดหายของข้อมูล