如何发送日志批处理
Note
The.log 批次可以通过两种方式传输。
直接文件上传到 Google Cloud Storage¶
- 要将.upload.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
Log batch cannot be transferred to the server receiving via streaming FluentD.
For detailed information about using FluentD, refer to fluentd method page.
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或验证数据遗漏。