Simple Log Service (SLS) utilise Protocol Buffers (protobuf) comme format standard pour l'écriture des journaux.
Protobuf est un format neutre et indépendant de la plateforme, conçu pour l'échange de données structurées. Avant d'envoyer les journaux au serveur via une API, sérialisez les données brutes dans un flux protobuf. Le schéma suivant définit le format requis :
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;
}
Le schéma définit quatre types de messages. Le tableau ci-dessous décrit chaque champ :
|
Message |
Champ |
Type |
Obligatoire |
Description |
|
|
|
|
Oui |
Horodatage du journal au format heure UNIX |
|
|
|
|
Oui |
Une ou plusieurs paires clé-valeur constituant le contenu du journal |
|
|
|
|
Oui |
Nom du champ du journal |
|
|
|
|
Oui |
Valeur du champ du journal |
|
|
|
|
Non |
Extension de précision en nanosecondes pour l'horodatage |
|
|
|
|
Oui |
Nom du tag associé au groupe de journaux |
|
|
|
|
Oui |
Valeur du tag associée au groupe de journaux |
|
|
|
|
Oui |
Collection de journaux dans le groupe |
|
|
|
|
Non |
Sujet utilisé pour classer les journaux au sein d'un Logstore |
|
|
|
|
Non |
Machine ou adresse IP ayant généré les journaux |
|
|
|
|
Non |
Tags de métadonnées pour le groupe de journaux |
|
|
|
|
Oui |
Liste de groupes de journaux envoyés lors d'un seul appel d'API |
Les clés des données protobuf doivent être uniques. Les clés en double entraînent un comportement indéfini ou des erreurs.
Pour plus d'informations sur le format protobuf, consultez protobuf sur GitHub.
Pour plus d'informations sur l'opération d'API permettant d'écrire des journaux dans Simple Log Service, consultez PutLogs.