POST /api/put を使用して、単一のリクエストで 1 つ以上のデータポイントを時系列データベース (TSDB) に書き込みます。
クイックスタート
以下の例では、curl を使用して 2 つのデータポイントを書き込みます。実行前にプレースホルダーの値を置き換えてください。
curl -X POST 'http://<your-tsdb-endpoint>/api/put?summary' \
-H 'Content-Type: application/json' \
-d '[
{
"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"}
}
]'| プレースホルダー | 説明 | 例 |
|---|---|---|
<your-tsdb-endpoint> | ご利用の TSDB インスタンスのアドレス | tsdb.example.com:4242 |
エンドポイント
| リクエストパス | リクエストメソッド | 説明 |
|---|---|---|
/api/put | POST | 複数のデータポイントを一度に書き込みます |
クエリパラメーター
応答フォーマットを制御するには、これらのパラメーターをリクエスト URL に追加します。
| パラメーター | 型 | 必須 | デフォルト | 説明 | 例 |
|---|---|---|---|---|---|
summary | 未指定型 | いいえ | false | 成功および失敗した書き込みの件数を返します | /api/put?summary |
details | 未指定型 | いいえ | false | 失敗したデータポイントのカウントとエラー詳細を返します | /api/put?details |
sync_timeout | 整数 | いいえ | 0 | タイムアウト(ミリ秒単位)。0 の場合、タイムアウトは発生しません。 | /api/put?sync&sync_timeout=60000 |
ignoreErrors | 未指定型 | いいえ | false | 1 つのデータポイントの書き込みが失敗した場合でも、残りのデータポイントの書き込みを継続します | /api/put?ignoreErrors |
未指定型のパラメーターの場合、URL にそのパラメーターが含まれている限り、値に関係なくtrueとみなされます。たとえば、?summary=trueおよび?summary=falseの両方で「まとめ」モードが有効になります。また、detailsとsummaryの両方を指定した場合は、API は詳細情報を返します。
リクエストボディ
データポイントを JSON 配列として指定します。各要素は 1 つのデータポイントを表します。
| パラメーター | 型 | 必須 | 制約 | 説明 | 例 |
|---|---|---|---|---|---|
metric | 文字列 | はい | 英字、数字、および - _ . / ( ) : , [ ] = ' # | メトリック名 | sys.cpu.nice |
timestamp | 長 | はい | タイムスタンプ ルール | UNIX タイムスタンプ(秒またはミリ秒) | 1346846400 |
value | 長整数、倍精度浮動小数点数、文字列、ブール値 | はい | 文字列値は最大 20 KB まで | データポイントの値 | 18、"High CPU Load"、true |
tags | マップ | いいえ | 文字セットは metric と同じ;少なくとも 1 つのキーと値のペアが必要 | タグのキーと値のペア | {"host": "web01", "dc": "lga"} |
High-availability Edition では、メトリック名の長さは最大 255 バイトです。
文字列型でないタグは、自動的に文字列型に変換されます。
タイムスタンプのルール
TSDB は、タイムスタンプの数値に基づいて、それが秒単位かミリ秒単位かを自動的に判別します。/api/put および /api/query の両方で、同じルールが適用されます。
| 値の範囲 | 単位 | 対応する日付範囲 |
|---|---|---|
| 4,294,968 – 4,294,967,295 | 秒 | 1970-02-20 01:02:48 – 2106-02-07 14:28:15 |
| 4,294,967,296 – 9,999,999,999,999 | ミリ秒 | 1970-02-20 01:02:47.296 – 2286-11-21 01:46:39.999 |
| 上記のいずれの範囲にも該当しない値 | 無効 | — |
書き込みモードと応答
デフォルトでは、すべてのデータポイントの書き込みが成功した場合、POST /api/put は HTTP 204 ステータスコードを返し、レスポンスボディは空になります。追加の応答詳細を取得したり、個別の書き込み失敗を特定したりするには、クエリパラメーターを追加してください。
シンプルモード(デフォルト)
モードを指定せずにリクエストを送信します。
成功時:HTTP 204、レスポンスボディなし
失敗時:HTTP エラーコードおよびエラーメッセージ
オーバーヘッドを最小限に抑えたい一般的なモニタリングデータの送信にこのモードを使用します。
統計モード
成功および失敗の件数を取得するには、?summary を追加します。
POST /api/put?summary応答パラメーター:
| パラメーター | 型 | 説明 |
|---|---|---|
success | 整数 | 正常に書き込まれたデータポイントの件数 |
failed | 整数 | 書き込みに失敗したデータポイントの件数 |
応答例:
{
"failed": 0,
"success": 20
}統計モードでは、単一のリクエスト内のすべてのデータポイントがまとめて成功または失敗します。1 つでも書き込みが失敗した場合、failed の値はリクエスト内のデータポイントの総数と等しくなります。
書き込まれたデータポイントの件数を追跡したい場合にこのモードを使用します。
詳細モード
成功および失敗の件数に加えてエラー情報を取得するには、?details を追加します。詳細モードは統計モードの拡張です。
POST /api/put?details応答パラメーター:
| パラメーター | 型 | 説明 |
|---|---|---|
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
}詳細モードでは、単一のリクエスト内のすべてのデータポイントがまとめて成功または失敗します。errors 配列には、最初に失敗したデータポイントのみが含まれます。失敗したデータポイントの件数を確認するには、failed パラメーターを確認してください。
書き込み失敗の原因を特定したい場合にこのモードを使用します。
フォールトトレラントモード
1 つのデータポイントの書き込みが失敗しても、残りのデータポイントの書き込みを継続できるようにするには、?ignoreErrors を追加します。
POST /api/put?ignoreErrors応答パラメーター:
| パラメーター | 型 | 説明 |
|---|---|---|
success | 整数 | 正常に書き込まれたデータポイントの件数 |
failed | 整数 | 書き込みに失敗したデータポイントの件数 |
errors | 配列 | 各失敗したデータポイントとその失敗原因 |
統計モードおよび詳細モードとは異なり、フォールトトレラントモードではリクエストは原子的ではありません。1 つのデータポイントの失敗が他のデータポイントに影響を与えることはありません。errors 配列には、最初に失敗したデータポイントだけでなく、すべての失敗したデータポイントが含まれます。errors にリストされていないデータポイントは、正常に書き込まれています。
一部(すべてではない)のデータポイントが失敗した場合:HTTP 200
基盤となるストレージ障害などの重大なエラーにより、すべてのデータポイントが失敗した場合:200 以外のステータスコード
書き込まれるデータポイントの件数を最大化し、個々の失敗を別途処理したい場合にこのモードを使用します。
制限事項
時系列ごとの最大タグキー数
単一の時系列におけるタグキーの最大数は、インスタンスタイプによって異なります。
| インスタンスタイプ | 最大タグキー数 |
|---|---|
| mLarge | 16 |
| Large | 16 |
| 3xLarge | 20 |
| 4xLarge | 20 |
| 6xLarge | 20 |
| 12xLarge | 20 |
| 24xLarge | 24 |
| 48xLarge | 24 |
| 96xLarge | 24 |
文字列値
文字列値には任意の文字を含めることができ、JSON 形式で保存できます。文字列値の最大サイズは 20 KB です。