MetricBase 時系列 API
MetricBase 時系列 API は、MetricBase データベースに対してデータの挿入、情報の取得、変換の実行を行うためのエンドポイントを提供します。
これらの API は、MetricBase プラグイン (com.snc.clotho) がインストールされ、有効化されている場合にのみ使用できます。
この API への書き込みに必要なロール:clotho_rest_put。
このセクションの例は、MetricBase (com.snc.clotho) プラグインのデータを使用して作成されています。
MetricBase 時系列 - GET /now/clotho/table/{table}/{subject}/{metric}
指定された時系列データを MetricBase データベースから取得します。
URL 形式
バージョニングされた URL:/api/now/{api_version}/clotho/table/{table}/{subject}/{metric}
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| api_version | アクセスするエンドポイントのバージョン。たとえば、v1 や v2。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。 データタイプ:文字列 |
| metric | 測定基準として使用する subject パラメーターで識別されるテーブルの列の名前。 データタイプ:文字列 |
| subject | この系列に関連付けられた GlideRecord の sys_id。 データタイプ:文字列 |
| table | この系列に関連付けられた GlideRecord を含むテーブルの名前。 データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| sysparm_display_value | 他のラベルが指定されていない場合に、結果データに対象レコードの表示値のラベルを付けるかどうかを示すフラグ。 有効な値:
データタイプ:ブール デフォルト値:false |
| sysparm_end | 必須です。評価期間の終了時間。空または値がない場合は現在の時間として扱われます。 データタイプ:文字列 形式:ISO 8601 (UTC)、次のいずれか:
|
| sysparm_start | 必須です。評価期間の開始時間。特別な値 all を使用すると、現在の時刻から指定した測定基準の最大保持期間を引いた時刻を開始時刻として設定できます。空または値がない場合は、暗黙的な allとして扱われます。データタイプ:文字列 形式:ISO 8601 (UTC)、次のいずれか:
|
| 名前 | 説明 |
|---|---|
| なし |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。application/json のみをサポートします。 |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | 成功。要求が正常に処理されました。 |
| 401 | 権限がありません。ユーザー資格情報が間違っているか、渡されていません。 |
| 500 | 内部サーバーエラー。要求の処理中に予期しないエラーが発生しました。応答に、エラーに関する追加情報が含まれます。 |
応答本文のパラメーター (JSON または XML)
| 名前 | 説明 |
|---|---|
| label | この測定基準の結果セットを識別するために使用されるラベル。 データタイプ:文字列 |
| seriesRef | データ系列の結果。 データタイプ:アレイ |
| seriesRef.metric | データ系列の取得元の測定基準の名前。metrics オブジェクトが要求で渡された場合にのみ表示されます。 データタイプ:文字列 |
| seriesRef.subject | データ系列レコードの sys_id。seriesRef.table で指定されたテーブルにあります。 データタイプ:文字列 |
| seriesRef.table | データ系列の取得元のテーブルの名前。 データタイプ:文字列 |
| values | 変換された系列値。 データタイプ:アレイ |
| values.timestamp | 値の ISO 8601 タイムスタンプ。 データタイプ:文字列 |
| values.value | 測定基準値。 データタイプ:数値 |
cURL 要求
curl "https://instance.servicenow.com/api/now/v1/clotho/
table/mb_demo_drone/626b051787333200a328c5b836cb0b99/
mb_demo_mt_altitude?sysparm_start=2019-03-20T17%3A04%3A55
&sysparm_end=2019-03-20T17%3A09%3A55" \
--request GET \
--header "Accept:application/json" \
--user "username":"password"
{
"seriesRef": {
"subject": "626b051787333200a328c5b836cb0b99",
"table": "mb_demo_drone",
"metric": "mb_demo_mt_altitude"
},
"label": "626b051787333200a328c5b836cb0b99:
mb_demo_drone|mb_demo_mt_altitude",
"values": [
{
"timestamp": "2019-03-20T17:05:00Z",
"value": 83.150185
},
{
"timestamp": "2019-03-20T17:06:00Z",
"value": 83.46074
},
{
"timestamp": "2019-03-20T17:07:00Z",
"value": 83.83104
},
{
"timestamp": "2019-03-20T17:08:00Z",
"value": 84.260635
},
{
"timestamp": "2019-03-20T17:09:00Z",
"value": 84.749
}
]
}
MetricBase 時系列 - GET /now/clotho/transform/{table}/{metric}
指定されたパラメーターに基づいて、指定されたデータを変換します。
URL 形式
バージョニングされた URL:/api/now/{api_version}/clotho/transform/{table}/{metric}
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| api_version | アクセスするエンドポイントのバージョン。たとえば、v1 や v2。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。 データタイプ:文字列 |
| metric | 測定基準として使用する subject パラメーターで識別されるテーブルの列の名前。 データタイプ:文字列 |
| table | この系列に関連付けられた GlideRecord を含むテーブルの名前。 データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| sysparm_display_value | 他のラベルが指定されていない場合に、結果データに対象レコードの表示値のラベルを付けるかどうかを示すフラグ。 有効な値:
データタイプ:ブール デフォルト値:false |
| sysparm_end | 必須です。評価期間の終了時間。空または値がない場合は現在の時間として扱われます。 データタイプ:文字列 形式:ISO 8601 (UTC)、次のいずれか:
|
| sysparm_query | 対象レコードを検索するためのエンコードされたクエリ文字列。 データタイプ:文字列 デフォルト:なし |
| sysparm_start | 必須です。評価期間の開始時間。特別な値 all を使用すると、現在の時刻から指定した測定基準の最大保持期間を引いた時刻を開始時刻として設定できます。空または値がない場合は、暗黙的な allとして扱われます。データタイプ:文字列 形式:ISO 8601 (UTC)、次のいずれか:
|
| sysparm_subject_limit | 対象クエリ結果のサイズを制限します。 データタイプ:数値 デフォルト:10,000 |
| sysparm_transforms | 変換のカンマ区切りリスト。 有効な変換:
データタイプ:文字列 デフォルト:なし |
| 名前 | 説明 |
|---|---|
| なし |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。サポートされるタイプ:application/json または application/xml。 デフォルト: application/json |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | 成功。要求が正常に処理されました。 |
| 401 | 権限がありません。ユーザー資格情報が間違っているか、渡されていません。 |
| 500 | 内部サーバーエラー。要求の処理中に予期しないエラーが発生しました。応答に、エラーに関する追加情報が含まれます。 |
応答本文のパラメーター (JSON または XML)
| 名前 | 説明 |
|---|---|
| label | この測定基準の結果セットを識別するために使用されるラベル。 データタイプ:文字列 |
| seriesRef | データ系列の結果。 データタイプ:アレイ |
| seriesRef.metric | データ系列の取得元の測定基準の名前。metrics オブジェクトが要求で渡された場合にのみ表示されます。 データタイプ:文字列 |
| seriesRef.subject | データ系列レコードの sys_id。seriesRef.table で指定されたテーブルにあります。 データタイプ:文字列 |
| seriesRef.table | データ系列の取得元のテーブルの名前。 データタイプ:文字列 |
| values | 変換された系列値。 データタイプ:アレイ |
| values.timestamp | 値の ISO 8601 タイムスタンプ。 データタイプ:文字列 |
| values.value | 測定基準値。 データタイプ:数値 |
cURL 要求
curl "https://instance.servicenow.com/api/now/v1/clotho/
transform/mb_demo_drone/mb_demo_mt_speed?
sysparm_query=model%3DKingfisher%20Phantom&
sysparm_start=2019-03-25T17%3A04%3A55&
sysparm_end=2019-03-25T17%3A05%3A10" \
--request GET \
--header "Accept:application/json" \
--user "username":"password"
出力:
[
{
"seriesRef": {
"subject": "2a6b051787333200a328c5b836cb0b92",
"table": "mb_demo_drone",
"metric": "mb_demo_mt_speed"
},
"label": "2a6b051787333200a328c5b836cb0b92:mb_demo_drone
|mb_demo_mt_speed",
"values": [
{
"timestamp": "2019-03-25T17:05:00Z",
"value": 33.67892
}
]
},
{
"seriesRef": {
"subject": "666b051787333200a328c5b836cb0b92",
"table": "mb_demo_drone",
"metric": "mb_demo_mt_speed"
},
"label": "666b051787333200a328c5b836cb0b92:mb_demo_drone
|mb_demo_mt_speed",
"values": [
{
"timestamp": "2019-03-25T17:05:00Z",
"value": 41.94985
}
]
},
{
"seriesRef": {
"subject": "a26b051787333200a328c5b836cb0b92",
"table": "mb_demo_drone",
"metric": "mb_demo_mt_speed"
},
"label": "a26b051787333200a328c5b836cb0b92:mb_demo_drone
|mb_demo_mt_speed",
"values": [
{
"timestamp": "2019-03-25T17:05:00Z",
"value": 37.74187
}
]
},
{
"seriesRef": {
"subject": "ea6b051787333200a328c5b836cb0b92",
"table": "mb_demo_drone",
"metric": "mb_demo_mt_speed"
},
"label": "ea6b051787333200a328c5b836cb0b92:mb_demo_drone
|mb_demo_mt_speed",
"values": [
{
"timestamp": "2019-03-25T17:05:00Z",
"value": 34.914192
}
]
},
{
"seriesRef": {
"subject": "ee6b051787333200a328c5b836cb0b91",
"table": "mb_demo_drone",
"metric": "mb_demo_mt_speed"
},
"label": "ee6b051787333200a328c5b836cb0b91:mb_demo_drone
|mb_demo_mt_speed",
"values": [
{
"timestamp": "2019-03-25T17:05:00Z",
"value": 44.170887
}
]
}
]
MetricBase 時系列 - POST /now/clotho/accumulate
指定されたタイムスタンプの測定基準値を累積し、値を上書きするのではなく結果をデータベースに保存します。
この API の使用:を使用して、電力のキロワット時 (kWh) など、合計して累積できる測定基準を処理します。累積では、指定されたタイムスタンプで各測定基準の呼び出しを行います。たとえば、暖房器、電気ケトル、および洗濯機について収集されるキロワットは、accumulate に対する 3 回の呼び出しになります。
URL 形式
バージョニングされた URL:/api/now/{api_version}/clotho/accumulate
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| api_version | オプションアクセスするエンドポイントのバージョン。たとえば、v1 や v2。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。 データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| default_value | 指定されたタイムスタンプでの累積のデフォルト値。指定されたタイムスタンプの値が利用できない場合に、accumulate に対する最初の呼び出し中にのみ使用されます。 ユースケースとして、total_power のワット測定基準の累積が考えられます。電力量計なしでコンセントに接続されたルーターのワット数を累積して測定する必要があります。消費値がわかっていて定数である場合は、定数値をデフォルト値として使用して total_power を累積できます。たとえば、ルーターが常に接続されていて、20 ワットを消費する場合は、20 を使用します。 データタイプ:文字列 デフォルト:0 |
| sysparm_ignore_unknown_series | 不明な系列を無視し、エラーを返さずにトランザクションを続行するかどうかを示すフラグ。 有効な値:
デフォルト:true |
| 名前 | 説明 |
|---|---|
| seriesRef | 更新するデータ系列情報を表す文字列のリスト。 データタイプ:アレイ |
| seriesRef.metric | 必須です。更新する累積測定基準の名前。 データタイプ:文字列 |
| seriesRef.subject | 必須です。データを更新するレコードの sys_id。seriesRef.table で指定されたテーブルにあります。 データタイプ:文字列 |
| seriesRef.table | 必須です。データを保存するテーブルの名前。 データタイプ:文字列 |
| values | 必須です。累積して保存する系列値。同じタイムスタンプを持つ値は default_value クエリパラメーターで合計されます。 データタイプ:アレイ |
| values.timestamp | 必須です。値の ISO 8601 タイムスタンプ。 データタイプ:文字列 形式:YYYY-MM-ddTHH:mm:ddZ 「Z」で表される文字は、ISO 形式のタイムスタンプで UTC タイムゾーンを示します。タイムスタンプ形式のこの部分はオプションです。 例: |
| values.value | 必須です。測定基準値。 データタイプ:数値 |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。application/json のみをサポートします。 |
| Content-Type | 要求本文のデータ形式。application/json のみをサポートします。 |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | 成功。要求が正常に処理されました。 |
| 401 | 権限がありません。ユーザー資格情報が間違っているか、渡されていません。 |
| 500 | 内部サーバーエラー。要求の処理中に予期しないエラーが発生しました。応答に、エラーに関する追加情報が含まれます。 |
応答本文のパラメーター (JSON または XML)
| 名前 | 説明 |
|---|---|
| message | 成功 (OK) またはエラーを示すメッセージ。 |
cURL 要求
この例は、指定されたタイムスタンプで測定基準値を累積する方法を示しています。
curl "https://instance.servicenow.com/api/now/v1/clotho/accumulate" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
\"seriesRef\": {
\"subject\": \"3D666b051787333200a328c5b836cb0b92\",
\"table\": \"power_monitoring\",
\"metric\": \"total_power\"
},
\"values\": [
{
\"timestamp\": \"2019-03-21T17:05:00Z\",
\"value\": 0.150185
},
{
\"timestamp\": \"2019-03-21T17:05:00Z \",
\"value\": 0.46074
},
{
\"timestamp\": \"2019-03-21T17:05:00Z \",
\"value\": 0.83104
},
{
\"timestamp\": \"2019-03-21T17:05:00Z \",
\"value\": 1.260635
},
{
\"timestamp\": \"2019-03-21T17:05:00Z \",
\"value\": 1.749
}
]
}" \
--user "username":"password"
出力に成功した結果が表示されます。
{
"result": {
"message": "ok"
}
}
MetricBase 時系列 - POST /now/clotho/transform
線形パイプラインを形成する変換の指定されたリストを適用した後、1 つ以上の測定基準の時系列データを取得し、オプションでグループ化します。
URL 形式
バージョニングされた URL:/api/now/{api_version}/clotho/transform
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| api_version | オプションアクセスするエンドポイントのバージョン。たとえば、v1 や v2。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。 データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| sysparm_display_value | 他のラベルが指定されていない場合に、結果データに対象レコードの表示値のラベルを付けるかどうかを示すフラグ。 有効な値:
データタイプ:ブール デフォルト値:false |
| 名前 | 説明 |
|---|---|
| end | 必須です。評価期間の終了時間。空または値がない場合は現在の時間として扱われます。 データタイプ:文字列 形式:ISO 8601 (UTC)、次のいずれか:
|
| limit | 返されるレコードの最大数。異常に大きい値はシステムパフォーマンスに影響する可能性があります。 データタイプ:数値 デフォルト:10,000 |
| metrics | 変換で使用する測定基準オブジェクトのリスト。測定基準の詳細については、「Metrics」を参照してください。 データタイプ:アレイ |
| metrics.groupBy | table パラメーターで指定されたテーブルに含まれるフィールドをカンマで区切ったリスト。集計された変換を収集または適用する前に系列をグループ化するために使用します。 リスト内のアイテムの順序は、データがグループ化される順序です。たとえば、リストに「state, zip code」の 2 つのアイテムがある場合、系列は最初に state 別にグループ化され、次に state 内の zip code 別にグループ化されます。 データタイプ:文字列 デフォルト:データはグループ化されません。 |
| metrics.label | この測定基準の結果セットに使用するラベル。変換チェーンによって生成されたラベルを置き換えます。 データタイプ:文字列 デフォルト:生成されたデフォルトのラベル。 |
| metrics.metric | metrics オブジェクトが渡されない場合は必須です。変換で使用する測定基準フィールド。このフィールドは、table パラメーターで指定されたテーブルに存在する必要があります。 データタイプ:文字列 |
| metrics.transforms | 取得された時系列データに適用する変換のリスト (変換チェーン) 。各変換は、前の変換の結果に基づいて構築されます。利用可能な変換のリストについては、以下の「サポートされている変換」を参照してください。 データタイプ:アレイ |
| metrics.transforms.arg | 変換に依存します。変換に渡す 1 つまたは複数のパラメーター。 一般的なガイドライン:
データタイプ:変換に応じて、数値、文字列、ブール、または JSON オブジェクト。(利用可能な変換のリストについては、以下の「サポートされている変換」の表を参照してください)。 |
| metrics.transforms.name | transforms オブジェクトが指定されている場合は必須です。変換の名前。 利用可能な変換のリストについては、以下の「サポートされている変換」の表を参照してください。 データタイプ:文字列 |
| クエリ | 結果セットのフィルタリングに使用するエンコードされたクエリ。 指定されたテーブルのフィルターエディターを使用してクエリを作成できます。作成したら、フィルターのブレッドクラムコンテキストメニューから [URL のコピー] を選択します。 データタイプ:文字列 デフォルト:なし |
| start | 必須です。評価期間の開始時間。特別な値 all を使用すると、現在の時刻から指定した測定基準の最大保持期間を引いた時刻を開始時刻として設定できます。空または値がない場合は、暗黙的な allとして扱われます。データタイプ:文字列 形式:ISO 8601 (UTC)、次のいずれか:
|
| table | 必須です。この系列に関連付けられた GlideRecord を含むテーブルの名前。 データタイプ:文字列 |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。application/json のみをサポートします。 |
| Content-Type | 要求本文のデータ形式。application/json のみをサポートします。 |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | 成功。要求が正常に処理されました。 |
| 400 | 要求が正しくありません。不適切な要求タイプまたは誤った要求が検出されました。 |
| 401 | 権限がありません。ユーザー資格情報が間違っているか、渡されていません。 |
| 404 | 見つかりません。要求アイテムが見つかりませんでした。 |
| 405 | 無効なメソッドです。この機能は無効です。 |
| 500 | 内部サーバーエラー。要求の処理中に予期しないエラーが発生しました。応答に、エラーに関する追加情報が含まれます。 |
応答本文のパラメーター (JSON または XML)
| 名前 | 説明 |
|---|---|
| results | クエリを満たす 0 個以上の結果オブジェクトが返されます。series アレイまたは grouped アレイのいずれかが含まれます。 データタイプ:アレイ |
| results.grouped | 各 grouped 結果オブジェクトが特定のグループに対応する、グループ化された結果オブジェクトのリスト。この形式は、metrics.groupBy パラメーターが要求本文で渡されたときに返されます。 データタイプ:アレイ |
| results.grouped.groupingBy | 要求の metrics.groupBy パラメーターに渡される値。 データタイプ:文字列 |
| results.grouped.groups | 要求の metrics.groupBy パラメーターの内容に基づいて生成されたグループのリスト。 データタイプ:アレイ |
| results.grouped.groups.group | グループの名前。 データタイプ:文字列 |
| results.grouped.groups.label | グループのラベル。 データタイプ:文字列 |
| results.grouped.groups.series | グループの結果の変換された値。 データタイプ:アレイ |
| results.grouped.groups.series.label | 系列のラベル。 データタイプ:文字列 |
| results.grouped.groups.series.seriesRef | 単一のデータ系列の結果。応答に複数のデータ系列がある場合は表示されません。 データタイプ:オブジェクト |
| results.grouped.groups.series.seriesRef.metric | データ系列の取得元の測定基準の名前。metrics オブジェクトが要求で渡された場合にのみ表示されます。 データタイプ:文字列 |
| results.grouped.groups.series.seriesRef.subject | データ系列レコードの sys_id。results.series.seriesRef.table で指定されたテーブルにあります。 データタイプ:文字列 |
| results.grouped.groups.series.seriesRef.table | データ系列の取得元のテーブルの名前。 データタイプ:文字列 |
| results.grouped.groups.series.values | グループの結果値のリスト。 データタイプ:アレイ |
| results.grouped.groups.series.values.timestamp | 値の ISO 8601 タイムスタンプ。 データタイプ:文字列 |
| results.grouped.groups.series.values.value | 変換された値。 データタイプ:数値 |
| results.marker | 対応する結果の一意の識別子。 データタイプ:文字列 |
| results.series | 結果オブジェクトのグループ化されていない系列のリスト。 データタイプ:アレイ |
| results.series.label | データ系列ラベル。この値は、エンドポイントによって生成されるか、metrics.label パラメーターに渡される値です。 データタイプ:文字列 |
| results.series.seriesRef | 単一のデータ系列の結果。応答に複数のデータ系列がある場合は表示されません。 データタイプ:オブジェクト |
| results.series.seriesRef.metric | データ系列の取得元の測定基準の名前。metrics オブジェクトが要求で渡された場合にのみ表示されます。 データタイプ:文字列 |
| results.series.seriesRef.subject | データ系列レコードの sys_id。results.series.seriesRef.table で指定されたテーブルにあります。 データタイプ:文字列 |
| results.series.seriesRef.table | データ系列の取得元のテーブルの名前。 データタイプ:文字列 |
| results.series.values | 変換された系列値。 データタイプ:アレイ |
| results.series.values.timestamp | 値の ISO 8601 タイムスタンプ。 データタイプ:文字列 |
| results.series.values.value | 変換された値。 データタイプ:数値 |
サポートされている変換
| 変換 | 説明 |
|---|---|
| add | 指定された数値を各タイムスタンプ値に追加します。 引数: arg (10 進データタイプ) – 加算する数値。 たとえば、次のようになります。 |
| autocorrelate | 1 から始まって増加する期間の数で区切られたタイムスタンプ値間の相関を計算します。 |
| avg | 入力全体の対応する各タイムスタンプの平均値を含む 1 つの系列に時系列を集計します。 |
| bottom | 最小値を含む指定された数の系列を返します。 引数: arg (整数) – 返される系列の数。 たとえば、次の場合、最も小さい値のセットを含む 2 つの時系列が返されます。 |
| ceil | 各タイムスタンプの値を指定された精度に切り上げます:ceil(value / <arg>) * <arg>) 引数:arg (10 進データタイプ):切り上げた後の小数点以下桁数。 |
| collect | 収集変換呼び出しの時点までの変換チェーンの変換結果を表示します。収集変換の結果には一意のマーカーが含まれていますが、ラベルを定義することもできます。 例: |
| constrainValues | 指定された範囲外の値を、対応する最大値または最小値に置き換えます。 たとえば、次のように指定すると、0 未満の値は 0 に、100 を超える値は 100 に置き換えられます。
引数:
|
| カウント | 時系列を 1 つの系列に集計します。新しい系列には、系列全体で対応する各タイムスタンプの NaN (数値以外) ではない値の数が含まれます。 |
| derivative | タイムスタンプ間の変更率を決定します。各タイムスタンプの値と次のタイムスタンプの値の差をタイムスタンプの期間で除算します。 注: この変換は、系列内の値の数より 1 つ少ない値を返します。 |
| div | 各タイムスタンプの値を指定された数値 (arg) で除算します。 引数: arg (10 進数:各タイムスタンプの値を除算する数値。 |
| エンベロープ | 2 つの時系列を返します。いずれかの時点における最大値が一方に含まれ、もう一方に最小値が含まれます。 注: NaN は無視されますが、他の戻り値がない場合は返されます。 |
| exp | 指定された基準値を各タイムスタンプの値でべき乗します。 引数: arg (10 進データ型) – 基準値。 |
| フィルター | 移動平均の生成など、スライディングウィンドウのコンテンツに集計関数を適用します。 引数:
|
| フロア | 各タイムスタンプの値を指定された精度に切り下げます:floor(value / <arg>) * <arg> 引数:arg (10 進データタイプ):切り下げた後の小数点以下桁数。 |
| fractiles | 指定されたアレイの各分数の時系列を返します。各タイムスタンプ値は、入力系列全体の対応するタイムスタンプに関して、指定された値の分数が、指定された割合を下回っている値です。たとえば、分数が 0.5 の場合、タイムスタンプの値は、入力系列の値の半分が 0.5 未満の値になります。 引数:arg ( 10 進数のアレイ):入力系列で使用する分数。 例: |
| groupBy | 集計された変換を収集または適用する前に、指定されたフィールドでデータをグループ化します。 引数: arg (文字列):変換結果をグループ化するために使用するテーブル内のフィールドのカンマ区切りリスト。 例: |
| integrate | 各タイムスタンプの値をその期間で乗算します。 |
| interpolate | 隣接するデータ値から補間して NaN データアイテムのデータ値を作成します。 引数:arg (整数):非 NaN 値をチェックする各方向のデータサンプルの数。非 NaN 値が見つからない場合は、NaN が使用されます。 |
| inverse | 各タイムスタンプ値の反転を計算します。 |
| iqr | 四分位範囲変換を実行し、次の 4 つの系列を含む結果セットを作成します。
注: IQR = Q3 - Q1 |
| label | 変換チェーンにラベルを付けます。 注:
後続の変換でラベルが変更されるか、ラベルが置き換えられる場合があります。 引数: arg (文字列) :ラベルのテキスト。次の書式設定式を含めることができます。
例:
|
| limit | 最後に保存された値から始めて、指定された期間または値の数の最大値を返します。 引数:
|
| ログ | 各タイムスタンプの値に対して対数計算を実行します。結果は、タイムスタンプ値の指定された基準値の対数です。 引数: arg (10 進データタイプ) – 対数計算の基準値。 |
| mapValues | 指定された範囲内 (包含) の値を指定された値に置き換えます。lowerBound と upperBound の両方が NaN として指定されている場合、NaN 値を targetValueに置き換えます。 引数:
たとえば、次の例では、.1 と .9 の間の時系列のすべての値を 1 に変更します。 |
| max | 入力全体の対応する各タイムスタンプの最大値を含む系列を返します。 |
| median | 系列のセット全体の各タイムスタンプの値の中央値を含む系列を作成します。n 系列がある場合:
|
| min | 入力全体の対応する各タイムスタンプの最小値を含む系列を返します。 |
| mul | 各タイムスタンプの値を指定された数値で乗算します。 引数: arg (10 進データタイプ) – 各タイムスタンプの値を乗算する数値。 |
| パーティション | 指定された集計関数を重複しないウィンドウに適用することによって、値をフィルタリングして新しい系列を生成します。 引数:
|
| pow | 各タイムスタンプ値を指定された値でべき乗します。 引数: arg (10 進データタイプ) – 各値のべき乗値。 |
| 製品 | 選択した測定基準系列を、各タイムスタンプのすべての値の積を含む 1 つの系列に集計します。NaN は除外されます。系列内のすべての数値が NaN の場合、出力も NaN になります。 |
| resample | 固定数のポイントに、またはある頻度から別の頻度に時系列をリサンプルします。 リサンプル変換を使用して、結果セット内のサンプル数を減らし、表示するサンプル数により密接に一致するようにします。 引数:この変換にはさまざまな引数を渡すことができます。可能な各引数グループのリストを以下に示します。単一の変換内で渡すことができるこれらの引数グループは 1 つだけです。次の引数グループは AND/OR で区切られます。AND は、引数が現在のグループの一部であることを意味します。OR は、新しい引数グループの開始を意味します。
|
| round | 各タイムスタンプの値を指定された精度に切り上げます:(value / <arg>) * <arg> 引数:arg (10 進データタイプ):切り上げた後の小数点以下桁数。 |
| root | 指定されたインデックスを使用して、各タイムスタンプ値のルートを計算します。 引数: arg (10 進データ型) – ルートのインデックス。 たとえば、次の例では、各タイムスタンプの平方根が返されます。 |
| stddev | 系列のセット全体の各タイムスタンプの値の標準偏差を含む系列を作成します。 |
| sub | 各タイムスタンプの値から指定された数値を減算します。 引数:arg (数値):各タイムスタンプの値から減算する数値。 |
| sum | 選択した測定基準系列を、NaN を除く各タイムスタンプのすべての値の合計を含む 1 つの系列に集計します。系列内のすべての数値が NaN の場合、出力は NaN になります。 |
| timeshift | 値を変更せずに、指定されたオフセットを値のタイムスタンプに追加することで、時間範囲をシフトします。この変換を使用して、タイムスタンプを別のタイムゾーンにシフトします。 引数: arg (期間データタイプ) – シフトする時間。 |
| top | 最大値を含む指定された数の系列を返します。 引数: arg (整数) – 返される系列の数。 たとえば、次の場合、最も大きい値のセットを含む 2 つの時系列が返されます。 |
| データタイプ | 説明 |
|---|---|
| 集計関数 | 変換内で使用できる集計関数。
|
| DateTime | 絶対日付/時刻値は、ISO 8601 の日付と時刻形式 YYYY-MM-DDThh:mm:ss で指定されます。例:2020-02-28T13:10:42各項目の意味は次のとおりです。
相対日付/時刻値は、現在の時刻から減算される期間 (期間データ タイプ) を使用して指定されます。 例:P7D = 7 日前。 |
| 10 進数 | 次のいずれかの 10 進値。
|
| 期間 | 時間間隔の時間。期間の値は ISO 8601 期間形式で指定されます: P[n]Y[n]M[n]DT[n]H[n]M[n]S 各項目の意味は次のとおりです。
例:
|
cURL 要求
curl "https://instance.servicenow.com/api/now/v1/clotho/transform \
--request POST \
--header "Accept:application/json", "Content-Type:application/json" \
--user "username":"password"
-d {\
"start": "PT15M",\
"end": "",\
"table": "mb_demo_drone",\
"query": "fleet.nameSTARTSWITHB",\
"limit": 5000,\
"metrics": [\
{\
"metric": "mb_demo_mt_altitude",\
"label": "Series - Avg",\
"transforms": [\
{\
"name": "partition",\
"arg": {\
"aggregator": "AVG",\
"window": "PT5M"\
}\
},
{\
"name": "avg"\
}\
]\
},
{\
"metric": "mb_demo_mt_altitude",\
"groupBy": "fleet",\
"label": "Fleet - AVG",\
"transforms": [\
{\
"name": "partition",\
"arg": {\
"aggregator": "AVG",\
"window": "PT5M"\
}\
},
{\
"name": "avg"\
}\
]\
}\
]\
} \
出力:
"results:" [
{
"marker": "674d86ba-a810-4065-942b-0b7ca2f95db2",
"series": [
{
"label": "Series - Avg",
"values": [
{
"timestamp": "2020-05-01T21:05:00Z",
"value": 157.43086
},
{
"timestamp": "2020-05-01T21:10:00Z",
"value": 162.92278
}
]
}
]
},
{
"marker": "846aa334-232a-4015-b033-d18ebc4b1d23",
"grouped": [
{
"groupingBy": "fleet",
"groups": [
{
"group": "86fac11787333200a328c5b836cb0b4e",
"label": "Bantams",
"series": {
"label": "Fleet - AVG",
"values": [
{
"timestamp": "2020-05-01T21:05:00Z",
"value": 159.70201
},
{
"timestamp": "2020-05-01T21:10:00Z",
"value": 165.1136
}
]
}
},
{
"group": "4afac11787333200a328c5b836cb0b4e",
"label": "Bumble Untd",
"series": {
"label": "Fleet - AVG",
"values": [
{
"timestamp": "2020-05-01T21:05:00Z",
"value": 154.5403
},
{
"timestamp": "2020-05-01T21:10:00Z",
"value": 160.13445
}
]
}
}
]
}
]
}
]
MetricBase 時系列 - POST /now/clotho/transform/stream
指定された変換のリストを適用した後、1 つ以上の測定基準の変換された時系列データのストリームを返します。
この方法でデータをストリーミングすると、すべての変換結果が完了してダウンロードされるのを待つのではなく、個々の変換が完了して返されるときにデータを処理できます。大量のデータをクライアントで処理する必要がある場合、このタイプの処理はエンドツーエンドの処理時間を短縮し、クライアントのメモリ使用量を削減できる可能性があります。
- バイナリ形式でエンコードするストリーミングデータを指定します。
- ストリーミングされたデータを JSON アレイにシリアル化する、または
- ワイドまたはナロー CSV 形式でクライアントにデータをストリーミングして戻します。
URL 形式
バージョニングされた URL:/api/now/{api_version}/clotho/transform/stream
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| api_version | オプションアクセスするエンドポイントのバージョン。たとえば、v1 や v2。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。 データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| sysparm_display_value | 他のラベルが指定されていない場合に、結果データに対象レコードの表示値のラベルを付けるかどうかを示すフラグ。 有効な値:
データタイプ:ブール デフォルト値:false |
| 名前 | 説明 |
|---|---|
| end | 必須です。評価期間の終了時間。空または値がない場合は現在の時間として扱われます。 データタイプ:文字列 形式:ISO 8601 (UTC)、次のいずれか:
|
| limit | 返されるレコードの最大数。異常に大きい値はシステムパフォーマンスに影響する可能性があります。 データタイプ:数値 デフォルト:10,000 |
| metrics | 変換で使用する測定基準オブジェクトのリスト。メトリックの詳細については、「 メトリック」を参照してください。 データタイプ:アレイ |
| metrics.label | この測定基準の結果セットに使用するラベル。変換チェーンによって生成されたラベルを置き換えます。 データタイプ:文字列 デフォルト:生成されたデフォルトのラベル。 |
| metrics.metric | metrics オブジェクトが渡されない場合は必須です。変換で使用する測定基準フィールド。このフィールドは、table パラメーターで指定されたテーブルに存在する必要があります。 データタイプ:文字列 |
| metrics.transforms | 取得された時系列データに適用する変換のリスト (変換チェーン) 。各変換は、前の変換の結果に基づいて構築されます。利用可能な変換のリストについては、以下の「サポートされている変換」を参照してください。 データタイプ:アレイ |
| metrics.transforms.arg | 変換に依存します。変換に渡す 1 つまたは複数のパラメーター。 一般的なガイドライン:
データタイプ:変換に応じて、数値、文字列、ブール、または JSON オブジェクト。(利用可能な変換のリストについては、以下の「サポートされている変換」の表を参照してください)。 |
| metrics.transforms.name | transforms オブジェクトが指定されている場合は必須です。変換の名前。 利用可能な変換のリストについては、以下の「サポートされている変換」の表を参照してください。 データタイプ:文字列 |
| クエリ | 結果セットのフィルタリングに使用するエンコードされたクエリ。 指定されたテーブルのフィルターエディターを使用してクエリを作成できます。作成したら、フィルターのブレッドクラムコンテキストメニューから [URL のコピー] を選択します。 データタイプ:文字列 デフォルト:なし |
| start | 必須です。評価期間の開始時間。特別な値 all を使用すると、現在の時刻から指定した測定基準の最大保持期間を引いた時刻を開始時刻として設定できます。空または値がない場合は、暗黙的な allとして扱われます。データタイプ:文字列 形式:ISO 8601 (UTC)、次のいずれか:
|
| table | 必須です。この系列に関連付けられた GlideRecord を含むテーブルの名前。 データタイプ:文字列 |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| Accept | 応答本文のデータフォーマット。以下をサポートします。
text/csv を使用します。フォーマット=ナロー または テキスト/ CSV;フォーマット=ワイド。 |
| Content-Type | 要求本文のデータ形式。application/json のみをサポートします。 |
| ヘッダー | 説明 |
|---|---|
| なし | 応答本文のデータフォーマット。要求の指定された Accept 値に基づいて、次を使用します。
複数の Accept タイプが指定されている場合は、サポートされている最初のタイプが返されます。 |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | 成功。要求が正常に処理され、データのストリーミングが開始されます。 注: 200 応答では、変換が計算される途中でも処理エラーが発生する可能性があります。 |
| 400 | 要求が正しくありません。不適切な要求タイプまたは誤った要求が検出されました。 |
| 401 | 権限がありません。ユーザー資格情報が間違っているか、渡されていません。 |
| 404 | 見つかりません。要求アイテムが見つかりませんでした。 |
| 405 | 無効なメソッドです。この機能は無効です。 |
| 500 | 内部サーバーエラー。要求の処理中に予期しないエラーが発生しました。応答に、エラーに関する追加情報が含まれます。 |
応答本文のパラメーター (Octet-stream または JSON)
| 名前 | 説明 |
|---|---|
| 出力ストリーム (Octet-Stream) | Accept 要求ヘッダーが application/octet-stream に設定されている場合、一致する MetricBase データは、バイナリのシリアル化されたストリームとして返されます。Clotho-Util for Java アプリケーションは、このデータを解析できるデシリアライザーを提供します。 ストリームは、長さを表す整数と、それに続く各データのバイナリシリアル化で構成されます。次のエントリでは、バイナリ表現内のデータとそのデータの順序について説明します。 |
| CSV ストリーム (UTF-8 ストリーム) | 要求ヘッダー text/csvが に設定されている場合、一致する MetricBase データは、幅広形式または狭幅形式の UTF-8 エンコード CSV データとして返されます。 幅の狭い形式では、件名とタイムスタンプの列、および返される各測定基準の列が返されます。ワイド形式は、測定基準とサブジェクトのペアごとに個別の列があるタイムスタンプ列を返します。 |
| 件名 | データのソース。たとえば、データの測定基準がドローンの高度である場合、この値は特定のドローンの ID にできます。値にコロンが含まれている場合、サブジェクトの後の部分は、データが含まれている測定基準を表します。Null 値は、エンコードされた空の文字列で表されます。 サイズ:2 バイト以上 データタイプ:Java 修正 UTF 文字列 |
| Dimension | データの取得元の測定基準。Null 値は、エンコードされた空の文字列で表されます。 サイズ:2 バイト以上 データタイプ:Java 修正 UTF 文字列 |
| Label | データのラベル。Null 値は、エンコードされた空の文字列で表されます。 サイズ:2 バイト以上 データタイプ:Java 修正 UTF 文字列 |
| Type | バイトにエンコードされたデータのタイプ。 可能な値:
サイズ:1 バイト データタイプ:バイト |
| Flags | エンコードされた serializeFlags 変数。serializeTags が true で、データにタグが含まれている場合、値は 2 です。それ以外の場合は 0 です。 サイズ:1 バイト データタイプ:バイト |
| Period | データに関連付けられた期間。 サイズ:4 バイト データタイプ:整数 |
| Number of Tags | serializeTags が true の場合、これはデータに保存されているタグの数です。 サイズ:4 バイト データタイプ:整数 |
| Tags | serializeTags が true の場合、各タグがデータに保存されます。 サイズ:タグの数によって異なります (2 バイト以上)。 データタイプ:Java 修正 UTF 文字列 |
| Start Epoch Second | このデータ系列の開始時間を表すエポック UTC 時間。 サイズ:8 バイト データタイプ:長整数 |
| Number of Values | このデータに保存されている値の数。 サイズ:4 バイト データタイプ:整数 |
| Values | Type が Float Signal の場合、残りの部分は浮動小数点値で構成されます。 サイズ:Number of Values * 4 データタイプ:浮動小数点 |
| Values | Type が倍精度シグナルの場合、残りの部分は倍精度値で構成されます。 サイズ:Number of Values * 4 バイト データタイプ:倍精度 |
| モデル Json (Model) | Type が Float Model または Double Model の場合、残りの部分は JSON としてモデルを表す Java 修正 UTF 文字列です。 サイズ:2 バイト以上 データタイプ:JSON (Java 修正 UTF 文字列) |
| 大きなモデルマーカー (Big Model) | モデルの JSON の長さが 65,535 バイトを超える場合、Model Json の代わりにこのフィールドが書き込まれます。 サイズ:5 データタイプ:Java 修正 UTF 文字列 |
| 大きなモデルサイズ (Big Model) | 大きなモデルの JSON 表現の長さ。 サイズ:4 バイト データタイプ:整数 |
| 大きなモデル Json (Big Model) | 一連の UTF 文字としてのモデルの JSON 表現。サイズは Big Model Size フィールドによって決まります。 サイズ:65535 ~ 256000 バイト データタイプ:UTF 文字 |
| JSON ストリーム (JSON) | Accept 要求ヘッダーが application/json に設定されている場合、一致する MetricBase データは、新しい改行区切りの JASON オブジェクトのストリームとして返されます。次のエントリでは、返される各オブジェクトの可能な要素について説明します。 |
| label | データのラベル。この値は、エンドポイントによって生成されるか、metrics.label パラメーターに渡される値です。 データタイプ:文字列 |
| period | 各値の間の時間間隔。たとえば、60 の period は、各値が 1 分離れていることを意味します。 単位:秒 データタイプ:数値 |
| range | ISO 8601 (UTC) 形式のデータの開始時間と終了時間。 データタイプ:アレイ |
| 系列 | 個々のデータを識別します。存在する場合、通常は [glide record id]:[metric] の形式です。変換を使用する場合、これは存在しない可能性があります。データタイプ:文字列 |
| species | 返されるデータのタイプ。一連の浮動小数点値または倍精度値の場合、これは FLOAT_SIGNAL または DOUBLE_SIGNAL のいずれかです。浮動小数点データまたは倍精度データを分析するためのモデルの場合、これは FLOAT_MODEL または DOUBLE_MODEL のいずれかです。 データタイプ:文字列 |
| tags | データに関連付けられたタグ。 データタイプ:文字列のアレイ |
| value | データの浮動小数点値または倍精度値。 データタイプ:数値のアレイ |
| error | 指定されたデータ系列の変換に失敗した場合のエラーメッセージ。 データタイプ:文字列 |
サポートされている変換
| 変換 | 説明 |
|---|---|
| add | 指定された数値を各タイムスタンプ値に追加します。 引数: arg (10 進データタイプ) – 加算する数値。 たとえば、次のようになります。 |
| autocorrelate | 1 から始まって増加する期間の数で区切られたタイムスタンプ値間の相関を計算します。 |
| avg | 入力全体の対応する各タイムスタンプの平均値を含む 1 つの系列に時系列を集計します。 |
| bottom | 最小値を含む指定された数の系列を返します。 引数: arg (整数) – 返される系列の数。 たとえば、次の場合、最も小さい値のセットを含む 2 つの時系列が返されます。 |
| ceil | 各タイムスタンプの値を指定された精度に切り上げます:ceil(value / <arg>) * <arg>) 引数:arg (10 進データタイプ):切り上げた後の小数点以下桁数。 |
| collect | 収集変換呼び出しの時点までの変換チェーンの変換結果を表示します。収集変換の結果には一意のマーカーが含まれていますが、ラベルを定義することもできます。 例: |
| constrainValues | 指定された範囲外の値を、対応する最大値または最小値に置き換えます。 たとえば、次のように指定すると、0 未満の値は 0 に、100 を超える値は 100 に置き換えられます。
引数:
|
| カウント | 時系列を 1 つの系列に集計します。新しい系列には、系列全体で対応する各タイムスタンプの NaN (数値以外) ではない値の数が含まれます。 |
| derivative | タイムスタンプ間の変更率を決定します。各タイムスタンプの値と次のタイムスタンプの値の差をタイムスタンプの期間で除算します。 注: この変換は、系列内の値の数より 1 つ少ない値を返します。 |
| div | 各タイムスタンプの値を指定された数値 (arg) で除算します。 引数: arg (10 進数:各タイムスタンプの値を除算する数値。 |
| エンベロープ | 2 つの時系列を返します。いずれかの時点における最大値が一方に含まれ、もう一方に最小値が含まれます。 注: NaN は無視されますが、他の戻り値がない場合は返されます。 |
| exp | 指定された基準値を各タイムスタンプの値でべき乗します。 引数: arg (10 進データ型) – 基準値。 |
| フィルター | 移動平均の生成など、スライディングウィンドウのコンテンツに集計関数を適用します。 引数:
|
| フロア | 各タイムスタンプの値を指定された精度に切り下げます:floor(value / <arg>) * <arg> 引数:arg (10 進データタイプ):切り下げた後の小数点以下桁数。 |
| fractiles | 指定されたアレイの各分数の時系列を返します。各タイムスタンプ値は、入力系列全体の対応するタイムスタンプに関して、指定された値の分数が、指定された割合を下回っている値です。たとえば、分数が 0.5 の場合、タイムスタンプの値は、入力系列の値の半分が 0.5 未満の値になります。 引数:arg ( 10 進数のアレイ):入力系列で使用する分数。 例: |
| groupBy | 集計された変換を収集または適用する前に、指定されたフィールドでデータをグループ化します。 引数: arg (文字列):変換結果をグループ化するために使用するテーブル内のフィールドのカンマ区切りリスト。 例: |
| integrate | 各タイムスタンプの値をその期間で乗算します。 |
| interpolate | 隣接するデータ値から補間して NaN データアイテムのデータ値を作成します。 引数:arg (整数):非 NaN 値をチェックする各方向のデータサンプルの数。非 NaN 値が見つからない場合は、NaN が使用されます。 |
| inverse | 各タイムスタンプ値の反転を計算します。 |
| iqr | 四分位範囲変換を実行し、次の 4 つの系列を含む結果セットを作成します。
注: IQR = Q3 - Q1 |
| label | 変換チェーンにラベルを付けます。 注:
後続の変換でラベルが変更されるか、ラベルが置き換えられる場合があります。 引数: arg (文字列) :ラベルのテキスト。次の書式設定式を含めることができます。
例:
|
| limit | 最後に保存された値から始めて、指定された期間または値の数の最大値を返します。 引数:
|
| ログ | 各タイムスタンプの値に対して対数計算を実行します。結果は、タイムスタンプ値の指定された基準値の対数です。 引数: arg (10 進データタイプ) – 対数計算の基準値。 |
| mapValues | 指定された範囲内 (包含) の値を指定された値に置き換えます。lowerBound と upperBound の両方が NaN として指定されている場合、NaN 値を targetValueに置き換えます。 引数:
たとえば、次の例では、.1 と .9 の間の時系列のすべての値を 1 に変更します。 |
| max | 入力全体の対応する各タイムスタンプの最大値を含む系列を返します。 |
| median | 系列のセット全体の各タイムスタンプの値の中央値を含む系列を作成します。n 系列がある場合:
|
| min | 入力全体の対応する各タイムスタンプの最小値を含む系列を返します。 |
| mul | 各タイムスタンプの値を指定された数値で乗算します。 引数: arg (10 進データタイプ) – 各タイムスタンプの値を乗算する数値。 |
| パーティション | 指定された集計関数を重複しないウィンドウに適用することによって、値をフィルタリングして新しい系列を生成します。 引数:
|
| pow | 各タイムスタンプ値を指定された値でべき乗します。 引数: arg (10 進データタイプ) – 各値のべき乗値。 |
| 製品 | 選択した測定基準系列を、各タイムスタンプのすべての値の積を含む 1 つの系列に集計します。NaN は除外されます。系列内のすべての数値が NaN の場合、出力も NaN になります。 |
| resample | 固定数のポイントに、またはある頻度から別の頻度に時系列をリサンプルします。 リサンプル変換を使用して、結果セット内のサンプル数を減らし、表示するサンプル数により密接に一致するようにします。 引数:この変換にはさまざまな引数を渡すことができます。可能な各引数グループのリストを以下に示します。単一の変換内で渡すことができるこれらの引数グループは 1 つだけです。次の引数グループは AND/OR で区切られます。AND は、引数が現在のグループの一部であることを意味します。OR は、新しい引数グループの開始を意味します。
|
| round | 各タイムスタンプの値を指定された精度に切り上げます:(value / <arg>) * <arg> 引数:arg (10 進データタイプ):切り上げた後の小数点以下桁数。 |
| root | 指定されたインデックスを使用して、各タイムスタンプ値のルートを計算します。 引数: arg (10 進データ型) – ルートのインデックス。 たとえば、次の例では、各タイムスタンプの平方根が返されます。 |
| stddev | 系列のセット全体の各タイムスタンプの値の標準偏差を含む系列を作成します。 |
| sub | 各タイムスタンプの値から指定された数値を減算します。 引数:arg (数値):各タイムスタンプの値から減算する数値。 |
| sum | 選択した測定基準系列を、NaN を除く各タイムスタンプのすべての値の合計を含む 1 つの系列に集計します。系列内のすべての数値が NaN の場合、出力は NaN になります。 |
| timeshift | 値を変更せずに、指定されたオフセットを値のタイムスタンプに追加することで、時間範囲をシフトします。この変換を使用して、タイムスタンプを別のタイムゾーンにシフトします。 引数: arg (期間データタイプ) – シフトする時間。 |
| top | 最大値を含む指定された数の系列を返します。 引数: arg (整数) – 返される系列の数。 たとえば、次の場合、最も大きい値のセットを含む 2 つの時系列が返されます。 |
| データタイプ | 説明 |
|---|---|
| 集計関数 | 変換内で使用できる集計関数。
|
| DateTime | 絶対日付/時刻値は、ISO 8601 の日付と時刻形式 YYYY-MM-DDThh:mm:ss で指定されます。例:2020-02-28T13:10:42各項目の意味は次のとおりです。
相対日付/時刻値は、現在の時刻から減算される期間 (期間データ タイプ) を使用して指定されます。 例:P7D = 7 日前。 |
| 10 進数 | 次のいずれかの 10 進値。
|
| 期間 | 時間間隔の時間。期間の値は ISO 8601 期間形式で指定されます: P[n]Y[n]M[n]DT[n]H[n]M[n]S 各項目の意味は次のとおりです。
例:
|
cURL 要求
次の例は、このエンドポイントを呼び出して、mb_demo_drone テーブルの測定基準の JSON ストリームを返す方法を示しています。注意:この例のオブジェクトは、読みやすいように複数の行に展開されていますが、実際の結果では、返された各オブジェクトが個別の行に表示されます。--header "Accept:application/octet-stream" \ を設定することで、同じ呼び出しを行ってオクテットストリームを返すことができます。
curl "localhost:8080/api/now/v1/clotho/transform/stream" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--user "username":"password" \
-d "{\
\"start\": \"PT5M\",\
\"end\": \"\",\
\"table\": \"mb_demo_drone\",\
\"query\": \"fleet.nameSTARTSWITHB\",\
\"limit\": 5000,\
\"metrics\": [\
{\
\"metric\": \"mb_demo_mt_altitude\",\
\"label\": \"Series - Avg\",\
\"transforms\": [\
{\
\"name\": \"partition\",\
\"arg\": {\
\"aggregator\": \"AVG\",\
\"window\": \"PT5M\"\
}\
},
{\
\"name\": \"avg\"\
}\
]\
},
{\
\"metric\": \"mb_demo_mt_altitude\",\
\"groupBy\": \"fleet\",\
\"label\": \"Fleet - AVG\",\
\"transforms\": [\
{\
\"name\": \"partition\",\
\"arg\": {\
\"aggregator\": \"AVG\",\
\"window\": \"PT5M\"\
}\
},
{\
\"name\": \"avg\"\
}\
]\
}\
]\
}"
応答:
[
{
"label": "Series - Avg",
"tags": [
"#4fb1114f-2426-4acb-8e3e-6435dd62134c"
],
"species": "DOUBLE_SIGNAL",
"range": [
"2022-06-16T17:50:00Z",
"2022-06-16T17:50:00Z"
],
"values": [
132.86805196126303
],
"period": 300
},
{
"label": "Fleet - AVG",
"tags": [
":fleet:86fac11787333200a328c5b836cb0b4e:Bantams",
"#6641aab4-c55f-4d11-8846-26b0b706ec1c"
],
"species": "DOUBLE_SIGNAL",
"range": [
"2022-06-16T17:50:00Z",
"2022-06-16T17:50:00Z"
],
"values": [
134.3775875908988
],
"period": 300
},
{
"label": "Fleet - AVG",
"tags": [
"#6641aab4-c55f-4d11-8846-26b0b706ec1c",
":fleet:4afac11787333200a328c5b836cb0b4e:Bumble Untd"
],
"species": "DOUBLE_SIGNAL",
"range": [
"2022-06-16T17:50:00Z",
"2022-06-16T17:50:00Z"
],
"values": [
129.02530271356756
],
"period": 300
}
]
次の cURL の例では、CSV 形式オプションを使用して、Metricbase デモプラグインの mb_demo_drone [Drones] テーブルに保存されている各ドローンについて、最終日の高度値 (「mb_demo_mt_altitude」としてデータベースに保存されている) をストリーミングバックしています。この例では、データは、ドローンを識別する被験者のSys_id、値のタイムスタンプ、および高度値の 3 つの列を持つ狭いテーブル形式で返されます。
curl "https://instance.servicenow.com/api/now/v1/clotho/transform/stream" \
--request POST \
--header "Accept:text/csv;format=narrow" \
--header "Content-Type:application/json" \
--user "user name":"password" \
-d "{\
\"start\": \"P1D\",\
\"end\": \"\",\
\"table\": \"mb_demo_drone\",\
\"metrics\": [\
{\
\"metric\": \"mb_demo_mt_altitude\",\
\"transforms\": []\
}]\
}"
出力:
Subject, Timestamp,"mb_demo_drone|mb_demo_mt_altitude"
"a66b051787333200a328c5b836cb0b97",2022-11-07T22:35:00Z,92.84400939941406
"a66b051787333200a328c5b836cb0b94",2022-11-07T22:35:00Z,92.2428970336914
"6a6b051787333200a328c5b836cb0b97",2022-11-07T22:35:00Z,92.0076904296875
"ea6b051787333200a328c5b836cb0b92",2022-11-07T22:35:00Z,97.3113021850586
"a66b051787333200a328c5b836cb0b91",2022-11-07T22:35:00Z,108.49791717529297
"6a6b051787333200a328c5b836cb0b94",2022-11-07T22:35:00Z,109.04239654541016
"6a6b051787333200a328c5b836cb0b91",2022-11-07T22:35:00Z,93.72159576416016
"ee6b051787333200a328c5b836cb0b91",2022-11-07T22:35:00Z,107.69989776611328
"ee6b051787333200a328c5b836cb0b97",2022-11-07T22:35:00Z,100.86473083496094
"ee6b051787333200a328c5b836cb0b94",2022-11-07T22:35:00Z,95.77774047851562
"666b051787333200a328c5b836cb0b92",2022-11-07T22:35:00Z,105.19712829589844
"666b051787333200a328c5b836cb0b95",2022-11-07T22:35:00Z,105.92308807373047
"6e6b051787333200a328c5b836cb0b99",2022-11-07T22:35:00Z,93.59339141845703
"666b051787333200a328c5b836cb0b98",2022-11-07T22:35:00Z,94.51266479492188
"e26b051787333200a328c5b836cb0b94",2022-11-07T22:35:00Z,105.4367904663086
"6e6b051787333200a328c5b836cb0b96",2022-11-07T22:35:00Z,94.64836883544922
"6e6b051787333200a328c5b836cb0b93",2022-11-07T22:35:00Z,94.78523254394531
"e26b051787333200a328c5b836cb0b97",2022-11-07T22:35:00Z,96.99283599853516
"aa6b051787333200a328c5b836cb0b96",2022-11-07T22:35:00Z,106.67017364501953
"e26b051787333200a328c5b836cb0b91",2022-11-07T22:35:00Z,94.2446517944336
"aa6b051787333200a328c5b836cb0b93",2022-11-07T22:35:00Z,91.659912109375
"226b051787333200a328c5b836cb0b94",2022-11-07T22:35:00Z,99.5401840209961
"226b051787333200a328c5b836cb0b97",2022-11-07T22:35:00Z,98.13501739501953
"226b051787333200a328c5b836cb0b91",2022-11-07T22:35:00Z,92.2428970336914
"226b051787333200a328c5b836cb0b90",2022-11-07T22:35:00Z,106.41876983642578
"aa6b051787333200a328c5b836cb0b99",2022-11-07T22:35:00Z,107.69989776611328
"626b051787333200a328c5b836cb0b93",2022-11-07T22:35:00Z,92.96666717529297
"e66b051787333200a328c5b836cb0b99",2022-11-07T22:35:00Z,93.85079193115234
"e66b051787333200a328c5b836cb0b93",2022-11-07T22:35:00Z,96.07303619384766
"e66b051787333200a328c5b836cb0b96",2022-11-07T22:35:00Z,98.47595977783203
"2a6b051787333200a328c5b836cb0b92",2022-11-07T22:35:00Z,95.9247055053711
"226b051787333200a328c5b836cb0b9a",2022-11-07T22:35:00Z,99.5401840209961
"2a6b051787333200a328c5b836cb0b98",2022-11-07T22:35:00Z,103.1417465209961
"2a6b051787333200a328c5b836cb0b95",2022-11-07T22:35:00Z,96.99283599853516
"ae6b051787333200a328c5b836cb0b95",2022-11-07T22:35:00Z,94.64836883544922
"ae6b051787333200a328c5b836cb0b98",2022-11-07T22:35:00Z,101.8689956665039
"ae6b051787333200a328c5b836cb0b92",2022-11-07T22:35:00Z,107.4388198852539
"a26b051787333200a328c5b836cb0b98",2022-11-07T22:35:00Z,94.78523254394531
"266b051787333200a328c5b836cb0b93",2022-11-07T22:35:00Z,94.51266479492188
"2e6b051787333200a328c5b836cb0b97",2022-11-07T22:35:00Z,108.49791717529297
"2e6b051787333200a328c5b836cb0b91",2022-11-07T22:35:00Z,97.15129852294922
"2e6b051787333200a328c5b836cb0b94",2022-11-07T22:35:00Z,103.36128997802734
"a26b051787333200a328c5b836cb0b92",2022-11-07T22:35:00Z,100.47681427001953
"266b051787333200a328c5b836cb0b96",2022-11-07T22:35:00Z,103.5830078125
"266b051787333200a328c5b836cb0b99",2022-11-07T22:35:00Z,97.3113021850586
"a26b051787333200a328c5b836cb0b95",2022-11-07T22:35:00Z,105.92308807373047
"ea6b051787333200a328c5b836cb0b98",2022-11-07T22:35:00Z,95.34477996826172
"ea6b051787333200a328c5b836cb0b95",2022-11-07T22:35:00Z,100.47681427001953
"626b051787333200a328c5b836cb0b99",2022-11-07T22:35:00Z,100.86473083496094
"626b051787333200a328c5b836cb0b96",2022-11-07T22:35:00Z,106.9239730834961
MetricBase 時系列 - POST /now/clotho/put
MetricBase データベースに時系列データを追加します。
URL 形式
バージョニングされた URL:/api/now/{api_version}/clotho/put
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| api_version | アクセスするエンドポイントのバージョン。たとえば、v1 や v2。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。 データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| sysparm_ignore_unknown_series | 不明な系列を無視し、エラーを返さずにトランザクションを続行するかどうかを示すフラグ。 有効な値:
デフォルト:true |
| 名前 | 説明 |
|---|---|
| seriesRef | 必須です。更新する情報。 データタイプ:アレイ |
| seriesRef.metric | 必須です。更新する測定基準の名前。 データタイプ:文字列 |
| seriesRef.subject | 必須です。データを更新するレコードの sys_id。seriesRef.table で指定されたテーブルにあります。 データタイプ:文字列 |
| seriesRef.table | 必須です。データを保存するテーブルの名前。 データタイプ:文字列 |
| values | 必須です。保存する系列値。 データタイプ:アレイ |
| values.timestamp | 必須です。値の ISO 8601 タイムスタンプ。 データタイプ:文字列 形式: ISO 形式のタイムスタンプで UTC タイムゾーンを示す末尾の「Z」はオプションです。 |
| values.value | 必須です。測定基準値。 データタイプ:数値 |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。application/json のみをサポートします。 |
| Content-Type | 要求本文のデータ形式。application/json のみをサポートします。 |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | 成功。要求が正常に処理されました。 |
| 401 | 権限がありません。ユーザー資格情報が間違っているか、渡されていません。 |
| 500 | 内部サーバーエラー。要求の処理中に予期しないエラーが発生しました。応答に、エラーに関する追加情報が含まれます。 |
応答本文のパラメーター (JSON または XML)
| 名前 | 説明 |
|---|---|
| message | 要求のステータスを示すメッセージ (要求が正常に処理された場合は ok など)。 |
cURL 要求
curl "https://instance.servicenow.com/api/now/v1/clotho/put" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
\"seriesRef\": {
\"subject\": \"3D666b051787333200a328c5b836cb0b92\",
\"table\": \"mb_demo_drone\",
\"metric\": \"mb_demo_mt_altitude\"
},
\"values\": [
{
\"timestamp\": \"2019-03-21T17:05:00Z\",
\"value\": 0.150185
},
{
\"timestamp\": \"2019-03-21T17:06:00Z\",
\"value\": 0.46074
},
{
\"timestamp\": \"2019-03-21T17:07:00Z\",
\"value\": 0.83104
},
{
\"timestamp\": \"2019-03-21T17:08:00Z\",
\"value\": 1.260635
},
{
\"timestamp\": \"2019-03-21T17:09:00Z\",
\"value\": 1.749
}
]
}" \
--user "username":"password"
{
"result": {
"message": "ok"
}
}