リクエストパスとメソッド
リクエストパス | リクエストメソッド | 説明 |
|---|---|---|
/api/put | POST | 複数のデータポイントを一度に書き込みます。 |
リクエストパラメーター
パラメーター | タイプ | 必須 | 説明 | デフォルト値 | 例 |
|---|---|---|---|---|---|
summary | 型指定なし | いいえ | サマリーを返すかどうかを指定します。 | false | /api/put?summary |
details | 型指定なし | いいえ | 詳細を返すかどうかを指定します。 | false | /api/put?details |
sync_timeout | 整数 | いいえ | タイムアウト期間。単位:ミリ秒。値 0 は、リクエストがタイムアウトしないことを示します。 | 0 | /api/put/?sync&sync_timeout=60000 |
ignoreErrors | 型指定なし | いいえ | 一部のデータポイントの書き込み例外を無視するかどうかを指定します。 | false | /api/put/?ignoreErrors |
注記:
パラメーターが設定されている場合、システムは型指定なしパラメーターの値を true と判断します。たとえば、summary パラメーターを true または false に設定したかどうかに関係なく、システムは summary パラメーターの値を true と判断します。
details パラメーターと summary パラメーターの両方を指定すると、API 操作は詳細を返します。
リクエストパラメーター
JSON 形式でデータポイントを指定します。次の表に、データポイントのパラメーターを示します。
パラメーター | タイプ | 必須 | 制限 | 説明 | 例 |
|---|---|---|---|---|---|
metric | 文字列 | はい | 値には、英字、数字、および次の特殊文字のみを含めることができます: | 保存するメトリックの名前。 | sys.cpu 説明 高可用性エディションでは、メトリック名は最大 255 バイトの長さにすることができます。 |
timestamp | Long | はい | なし | 秒またはミリ秒単位で測定されたタイムスタンプ。単位を決定するためのルールの詳細については、このトピックのタイムスタンプ単位セクションを参照してください。 | 1499158925 |
value | Long、Double、String、Boolean | はい | なし | データポイントの値。 | 42.5, true |
tags | マップ | いいえ | 値には、英字、数字、および次の特殊文字のみを含めることができます: | タグのキーと値のペア。タグキーとタグ値は文字列です。少なくとも 1 つのタグキーと値のペアを指定します。 | {"host":"web01"}。STRING データ型ではないタグキーとタグ値は、明示的に STRING 型に変換されます。 |
タイムスタンプ単位
このセクションでは、タイムスタンプの単位を決定するためのルールについて説明します。これらのルールは、次の API 操作に適用されます:/api/put および api/query。/api/put はデータの書き込みに使用されます。/api/query はデータのクエリに使用されます。
タイムスタンプは、秒またはミリ秒単位で測定できます。Time Series Database (TSDB) は、数値に基づいてタイムスタンプの単位を決定するために、次のルールを使用します。
値が [4294968,4294967295] の範囲内にある場合、単位は秒です。この場合、日時範囲は [1970-02-20 01:02:48, 2106-02-07 14:28:15] です。
値が [4294967296,9999999999999] の範囲内にある場合、単位はミリ秒です。この場合、日時範囲は [1970-02-20 01:02:47.296, 2286-11-21 01:46:39.999] です。
値が (-∞,4294968) または (9999999999999,+∞) の範囲内にある場合、タイムスタンプは無効です。
データポイントの値の説明
STRING データ型の値にはすべての文字を含めることができ、JSON 形式で保存できます。文字列値のサイズは 20 KB を超えることはできません。
タグの説明
時系列データに書き込む場合、指定できるタグキーの数は限られています。タグキーの最大数は、次の表に示すように、TSDB インスタンスのインスタンスタイプによって異なります。
インスタンスタイプ | 単一のタイムシリーズにおけるタグキーの最大数 |
|---|---|
mLarge | 16 |
Large | 16 |
3xLarge | 20 |
4xLarge | 20 |
6xLarge | 20 |
12xLarge | 20 |
24xLarge | 24 |
48xLarge | 24 |
96xLarge | 24 |
リクエストの例
リクエスト行:POST /api/put
リクエスト行:
[
{
"metric":"sys.cpu.nice", // メトリック名
"timestamp":1346846400, // タイムスタンプ
"value":18, // 値
"tags":{ // タグ
"host":"web01", // ホスト
"dc":"lga" // データセンター
}
},
{
"metric":"sys.cpu.nice", // メトリック名
"timestamp":1346846400, // タイムスタンプ
"value":9, // 値
"tags":{ // タグ
"host":"web02", // ホスト
"dc":"lga" // データセンター
}
},
{
"metric":"sys.cpu.alter", // メトリック名
"timestamp":1346846400, // タイムスタンプ
"value":"High CPU Load", // 値
"tags":{ // タグ
"host":"web03", // ホスト
"dc":"lga" // データセンター
}
},
{
"metric":"sys.cpu.nice", // メトリック名
"timestamp":1346846400, // タイムスタンプ
"value":true, // 値
"tags":{ // タグ
"host":"web04", // ホスト
"dc":"lga" // データセンター
}
}
]書き込みモードとレスポンス
TSDB は 4 つの書き込みモードをサポートしています。各モードを使用するには、次の手順に基づいてリクエストパラメーターを設定します。
シンプルモード
api/put操作を呼び出すときにパラメーターを設定しないで、このモードを使用します。データが TSDB に正常に書き込まれた場合、ステータスコード 204 が返されます。データの書き込みに失敗した場合、対応するエラーコードとエラーメッセージのみが返されます。このモードは、一般的なビジネスの監視データのレポートに適しています。
統計モード
api/put操作を呼び出すときにsummaryパラメーターを設定して、このモードを使用します。データが TSDB に正常に書き込まれたかどうかに関係なく、success パラメーターと failed パラメーターが返されます。これは、ビジネスの統計情報を収集するのに役立ちます。success パラメーターは、書き込まれたデータポイントの数を示します。failed パラメーターは、書き込みに失敗したデータポイントの数を示します。パラメーター
タイプ
説明
success
整数
正常に書き込まれたデータポイントの数。
failed
整数
書き込みに失敗したデータポイントの数。
例:
{ "failed":0, // 失敗したデータポイントの数 "success": 20 // 成功したデータポイントの数 }重要統計モードでは、
api/putリクエストのデータポイントはすべて正常に書き込まれるか、すべて書き込みに失敗します。データ書き込みに失敗した場合、failedパラメーターはリクエストで指定されたデータポイントの数を示します。統計モードは、レポートされたデータの統計情報を必要とする一般的なビジネスの監視データのレポートに適しています。
詳細モード
詳細モードは統計モードの拡張です。
api/put操作を呼び出すときにdetailsパラメーターを設定して、このモードを使用します。 データが TSDB に正常に書き込まれたかどうかに関係なく、success、failed、および errors パラメーターが返されます。success パラメーターは、書き込まれたデータポイントの数を示します。failed パラメーターは、書き込みに失敗したデータポイントの数を示します。errors パラメーターは、書き込み失敗の直接の原因を示します。パラメーター
タイプ
説明
success
整数
正常に書き込まれたデータポイントの数。
failed
整数
書き込みに失敗したデータポイントの数。
errors
配列
書き込みに失敗した最初のデータポイントの失敗の直接の原因。値は、データポイントに関する情報と失敗原因で構成される配列です。
例:
{ "errors":[{ // エラー情報 "datapoint":{ // データポイント "metric":"sys.cpu.nice", // メトリック名 "timestamp":1365465600, // タイムスタンプ "value":"NaN", // 値 "tags":{ // タグ "host":"web01" // ホスト } }, "error":"Unable to parse value to a number" // エラーメッセージ }], "failed":1, // 失敗したデータポイントの数 "success":0 // 成功したデータポイントの数 }重要詳細モードでは、
api/put操作を呼び出す 1 つのリクエスト内のデータポイントは、すべて書き込まれるか、すべて書き込みに失敗します。errorsの値には、書き込みに失敗した最初のデータポイントに関する情報と失敗の直接の原因のみが含まれます。書き込みに失敗したデータポイントの数を表示するには、failedパラメーターの値を表示します。このモードは、レポートされたデータの統計情報と障害箇所の特定を必要とするビジネスの監視データのレポートに適しています。
フォールトトレラントモード
api/put操作を呼び出すときにignoreErrorsパラメーターを設定して、このモードを使用します。 フォールトトレラントモードで TSDB にデータポイントのバッチを書き込むリクエストを送信すると、1 つのデータポイントの書き込み失敗は他のデータポイントの書き込みに影響を与えません。このモードでは、有効なデータポイントと無効なデータポイントが同じバッチに存在する場合、ほとんどのデータポイントを TSDB に書き込むことができます。書き込みに失敗したデータポイントは、レスポンスで列挙されます。レスポンスには、リクエストでdetailsパラメーターを設定した場合に返されるのと同じパラメーターが含まれます。ただし、errorsパラメーターには、書き込みに失敗した各データポイントの名前と失敗原因が含まれます。errors パラメーターの値に含まれていないデータポイントは、TSDB に正常に書き込まれました。パラメーター
タイプ
説明
success
整数
正常に書き込まれたデータポイントの数。
failed
整数
書き込みに失敗したデータポイントの数。
errors
配列
書き込みに失敗した各データポイントと対応する失敗原因の配列。
例:
重要フォールトトレラントモードでは、バッチ内のすべてのデータポイントが書き込みに失敗したわけではない場合、ステータスコード 200 が返されます。基盤となるストレージの障害などの重大なエラーにより、バッチ内のすべてのデータポイントが書き込みに失敗した場合、200 以外のステータスコードが返されます。フォールトトレラントモードでは、
failedパラメーターは書き込みに失敗したデータポイントの数を示します。このモードは、レポートされたデータの整合性と、失敗したデータポイントの障害修正と再書き込みを必要とするビジネスの監視データのレポートに適しています。