Simple Log Service (SLS) menggunakan Protocol Buffers (protobuf) sebagai format standar untuk menulis log.
Protobuf adalah format yang netral terhadap bahasa dan independen terhadap platform untuk bertukar data terstruktur. Sebelum menulis log ke server melalui API, data log mentah harus diserialisasi menjadi aliran data protobuf. Skema berikut mendefinisikan format yang diperlukan:
message Log
{
required uint32 Time = 1; // format waktu UNIX
message Content
{
required string Key = 1;
required string Value = 2;
}
repeated Content Contents = 2;
optional fixed32 Time_ns = 4; // bagian nanodetik dari waktu
}
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;
}
Skema tersebut mendefinisikan empat jenis message. Tabel berikut menjelaskan setiap field:
|
Message |
Field |
Type |
Required |
Description |
|
|
|
|
Yes |
Timestamp log dalam format waktu UNIX |
|
|
|
|
Yes |
Satu atau beberapa pasangan kunci-nilai yang membentuk konten log |
|
|
|
|
Yes |
Nama field log |
|
|
|
|
Yes |
Nilai field log |
|
|
|
|
No |
Ekstensi presisi nanodetik untuk timestamp |
|
|
|
|
Yes |
Nama tag yang dilampirkan pada kelompok log |
|
|
|
|
Yes |
Nilai tag yang dilampirkan pada kelompok log |
|
|
|
|
Yes |
Kumpulan log dalam kelompok tersebut |
|
|
|
|
No |
Topik yang digunakan untuk mengklasifikasikan log dalam logstore |
|
|
|
|
No |
Mesin atau alamat IP yang menghasilkan log |
|
|
|
|
No |
Tag metadata untuk kelompok log |
|
|
|
|
Yes |
Daftar kelompok log yang dikirim dalam satu panggilan API |
Kunci dalam data protobuf harus unik. Kunci duplikat dapat menyebabkan perilaku tidak terdefinisi atau kegagalan.
Untuk informasi lebih lanjut tentang format protobuf, lihat protobuf di GitHub.
Untuk informasi lebih lanjut tentang operasi API untuk menulis log ke Simple Log Service, lihat PutLogs.