Simple Log Service (SLS) は、ログの書き込みに標準形式としてプロトコルバッファ (protobuf) を使用します。
プロトコルバッファは、構造化データを交換するための言語中立かつプラットフォーム非依存の形式です。API を通じてログをサーバーに書き込む前に、生ログデータを protobuf データストリームにシリアル化する必要があります。次のスキーマで、必要な形式を定義します。
message Log
{
required uint32 Time = 1; // UNIX 時間形式
message Content
{
required string Key = 1;
required string Value = 2;
}
repeated Content Contents = 2;
optional fixed32 Time_ns = 4; // 時刻のナノ秒部分
}
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;
}
このスキーマでは、4 つのメッセージタイプを定義します。次の表に、各フィールドの詳細を示します。
|
メッセージ |
フィールド |
タイプ |
必須 |
説明 |
|
|
|
|
はい |
UNIX 時間形式のログのタイムスタンプ |
|
|
|
|
はい |
ログの内容を構成する 1 つ以上のキーと値のペア |
|
|
|
|
はい |
ログフィールド名 |
|
|
|
|
はい |
ログフィールド値 |
|
|
|
|
いいえ |
タイムスタンプのナノ秒精度拡張 |
|
|
|
|
はい |
ロググループに付与されたタグ名 |
|
|
|
|
はい |
ロググループに付与されたタグ値 |
|
|
|
|
はい |
グループ内のログ |
|
|
|
|
いいえ |
Logstore内でログを分類するためのトピック |
|
|
|
|
いいえ |
ログを生成したマシンまたは IP アドレス |
|
|
|
|
いいえ |
ロググループのメタデータタグ |
|
|
|
|
はい |
単一の API 呼び出しで送信するロググループのリスト |
Logメッセージ内のContentsリスト、およびLogGroup内のLogTagsリストでは、各キーは一意である必要があります。キーが重複すると、未定義の動作や障害が発生する可能性があります。protobuf 形式の詳細については、「GitHub上のprotobuf」をご参照ください。
SLS にログを書き込むための API オペレーションの詳細については、「PutLogs」をご参照ください。