O Simple Log Service (SLS) usa o Protocol Buffers (protobuf) como formato padrão para gravar logs.
O Protobuf é um formato independente de linguagem e plataforma para troca de dados estruturados. Antes de gravar logs no servidor por meio de uma API, serialize os dados brutos do log em um fluxo de dados protobuf. O schema a seguir define o formato obrigatório:
message Log
{
required uint32 Time = 1; // UNIX time format
message Content
{
required string Key = 1;
required string Value = 2;
}
repeated Content Contents = 2;
optional fixed32 Time_ns = 4; // The nanosecond part of the time
}
message LogTag
{
required string Key = 1;
required string Value = 2;
}
message LogGroup
{
repeated Log Logs= 1;
optional string Topic = 3;
optional string Source = 4;
repeated LogTag LogTags = 6;
}
message LogGroupList
{
repeated LogGroup logGroupList = 1;
}
Esse schema define quatro tipos de mensagem. A tabela a seguir descreve cada campo:
|
Mensagem |
Campo |
Tipo |
Obrigatório |
Descrição |
|
|
|
|
Sim |
Timestamp do log no formato de hora UNIX |
|
|
|
|
Sim |
Um ou mais pares chave-valor que compõem o conteúdo do log |
|
|
|
|
Sim |
Nome do campo do log |
|
|
|
|
Sim |
Valor do campo do log |
|
|
|
|
Não |
Extensão de precisão em nanossegundos para o timestamp |
|
|
|
|
Sim |
Nome da tag associada ao grupo de logs |
|
|
|
|
Sim |
Valor da tag associada ao grupo de logs |
|
|
|
|
Sim |
Conjunto de logs no grupo |
|
|
|
|
Não |
Tópico usado para classificar logs em um logstore |
|
|
|
|
Não |
Máquina ou endereço IP que gerou os logs |
|
|
|
|
Não |
Tags de metadados do grupo de logs |
|
|
|
|
Sim |
Lista de grupos de logs enviados em uma única chamada de API |
As chaves nos dados protobuf devem ser únicas. Chaves duplicadas causam comportamento indefinido ou falhas.
Para obter mais informações sobre o formato protobuf, consulte protobuf no GitHub.
Para obter mais informações sobre a operação de API usada para gravar logs no Simple Log Service, consulte PutLogs.