ข้ามไปที่เนื้อหา

วิธีการส่งชุดบันทึก

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

อ้างอิง

  • ไม่ว่าจะเป็นวิธีการส่งข้อมูลใดๆ ไฟล์บันทึกแบบกลุ่มจะถูกเก็บใน GCS เป็นระยะเวลาหนึ่ง
    • ระยะเวลาการเก็บรักษา: 90 วัน
    • ไฟล์ที่มีอายุมากกว่า 90 วันจะถูกลบและไม่สามารถกู้คืนได้ (ข้อมูลใน BigQuery ยังสามารถค้นหาได้)
  • ไฟล์จะถูกเก็บไว้เพื่อวัตถุประสงค์ เช่น การโหลดข้อมูลกลับเข้าไปใน BigQuery ในภายหลังหรือการตรวจสอบการขาดหายของข้อมูล