Protocol Buffer 是 Google 开发的用于结构化数据交换格式,被广泛用于 Google 内部及外部很多服务。目前,日志服务也使用 Protocol Buffer 格式作为标准的日志写入格式。当用户需要写入日志时,需要把原始日志数据序列化成如下格式的 Protocol Buffer 数据流后才能通过 API 写入服务端:

message Log
{
    required uint32 time = 1; // UNIX Time Format
    message Content
    {
        required string key = 1;
        required string value = 2;
    }
    repeated Content contents= 2;
}
message LogGroup
{
    repeated Log logs= 1;
    optional string reserved =2; // 内部字段,不需要填写
    optional string topic = 3;
    optional string source = 4;
}
message LogGroupList
{
    repeated LogGroup logGroupList = 1;
}
说明
  • 由于 PB 对 Key-Value 对不要求唯一性,因此需要避免出现该情况,否则行为为未定义。
  • 关于 Protocol Buffer 格式的更多信息请参考其 Github 首页
  • 关于日志服务写入日志的 API 的详细描述,请参考 PostLogStoreLogs