SyntheticsAsyncBulkCreate API
SyntheticsAsyncBulkCreate API は、非同期合成モニターの作成を管理するためのエンドポイントを提供します。
この API を使用して、要求ごとに最大 5,000 台のモニターを作成します。即時の検証と結果が必要な小規模なバッチ操作の場合、またはモニターをインシデントにリンクする場合は、要求ごとに最大 50 台のモニターの作成をサポートする SyntheticsBulkCreate API を使用します。
モニターは、JSON または CSV 形式のデータを使用して作成できます。Postman またはターミナルで JSON または CSV ファイルを使用する方法の詳細については、「 Synthetics モニタリング開発者ガイド」を参照してください。
この API には、ServiceNow Store で利用可能な Synthetic monitoring アプリケーション (com.snc.uib.sow_synthetics) が必要です。この API を呼び出す前に、Synthetics モニタリング用に少なくとも 1 つの MID サーバー 場所を設定する必要があります。手順については、「Create synthetic monitoring locations」を参照してください。さらに、監視対象のエンドポイントの構成アイテム (CI) が Configuration Management Database (CMDB)に存在している必要があります。
SyntheticsAsyncBulkCreate - GET /sn_sow_synthetics/synthetics_async_bulk_create/{job_id}
一括モニター作成ジョブの進行状況を確認します。
このエンドポイントを呼び出すには、ユーザーに x_snc_sow_synthetics.synthetics_viewer ロールが必要です。
URL 形式
バージョニングされた URL: /api/sn_sow_synthetics/{api_version}/synthetics_async_bulk_create/{job_id}
デフォルト URL: /api/sn_sow_synthetics/synthetics_async_bulk_create/{job_id}
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| api_version | オプション。アクセスするエンドポイントのバージョン。たとえば、 v1 や v2 などです。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。 データタイプ:文字列 |
| job_id | モニター作成ジョブの ID。 テーブル:Synthetics 一括ジョブ [sn_sow_synthetics_bulk_job] 列:ジョブ ID データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| なし |
ヘッダー
次の要求ヘッダーと応答ヘッダーは、この HTTP アクションにのみ適用されるか、別の方法でこのアクションに適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。application/json のみをサポートします。 |
| 認証 | HTTP ベーシック認証または OAuth ベアラートークン。 ベーシック認証形式: OAuth 形式: |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 202 | 承認済み。ジョブステータスが正常に取得されました。 |
| 401 | 権限がありません。ユーザー認証情報が正しくないか、渡されていません。 |
| 403 | 禁止されました。ジョブステータスを確認するには、ユーザーに x_snc_sow_synthetics.synthetics_viewer ロールが必要です。 |
| 404 | 見つかりません。指定された ID のジョブがテーブル Synthetics 一括ジョブ [sn_sow_synthetics_bulk_job] に見つかりませんでした。 |
| 500 | 内部サーバーエラー要求の処理中に予期しないエラーが発生しました。応答には、エラーに関する追加情報が含まれています。 |
応答本文のパラメーター (JSON)
| 名前 | 説明 |
|---|---|
| エラー | API 要求が失敗した場合に返されるオブジェクト。 データタイプ: オブジェクト |
| error.code | エラーコード。 可能な値:
データタイプ:文字列 |
| error.details | エラーに関するその他の詳細。 このオブジェクトに含まれる要素は、エラーの種類によって異なります。 データタイプ: オブジェクト |
| error.message | エラーメッセージ。 データタイプ:文字列 |
| result | モニター作成ジョブのステータスに関する情報を含むオブジェクト。 データタイプ: オブジェクト |
| result.job_id | モニター作成ジョブの ID。 テーブル:Synthetics 一括ジョブ [sn_sow_synthetics_bulk_job] 列:ジョブ ID データタイプ:文字列 |
| result.message | モニター作成ジョブのステータスに関するメッセージ。 データタイプ:文字列 |
| result.status | モニター作成ジョブのステータス。 可能な値:
データタイプ:文字列 |
| result.summary | モニター作成ジョブの現在のサマリーデータ。 データタイプ: オブジェクト |
| result.summary.created | 正常に作成されたモニターの数 データタイプ:数値 |
| result.summary.failed | 作成または更新できなかったモニターの数。 データタイプ:数値 |
| result.summary.processed | ジョブによって処理されたモニターの数。 データタイプ:数値 |
| result.summary.successful | 正常に作成または更新されたモニターの数。 データタイプ:数値 |
| result.summary.total | ジョブに含まれるモニターの合計数。 データタイプ:数値 |
| result.summary.updated | 正常に更新されたモニターの数。 データタイプ:数値 |
| result.errors | 失敗したモニターのエラー情報。 データタイプ:アレイ |
| result.errors.check_number | POST /sn_sow_synthetics/synthetics_async_bulk_create の要求本文で指定されたchecksアレイ内のモニターの順序。 データタイプ:数値 |
| result.errors.error_code | エラーコード。 可能な値:
データタイプ:文字列 |
| result.errors.error_message | エラーメッセージ。 データタイプ:文字列 |
| result.errors.name | モニターの名前。 データタイプ:文字列 |
cURL 要求
この例では、モニター作成ジョブのステータスを確認します。
curl "https://instance.service-now.com/api/sn_sow_synthetics/v1/synthetics_async_bulk_create/BCJ-1776889518281-0baf339f" \
--request GET \
--header "Accept:application/json" \
--user 'username':'password'
応答本文:ジョブ処理。
{
"result": {
"job_id": "BCJ-1776889518281-0baf339f",
"status": "processing",
"message": "Processing in progress: 150/500 (30%)",
"summary": {
"total": 500,
"processed": 150,
"successful": 148,
"created": 145,
"updated": 3,
"failed": 2
}
}
}
応答本文:ジョブが正常に完了しました。
{
"result": {
"job_id": "BCJ-1776889518281-0baf339f",
"status": "completed",
"message": "Job completed successfully. 497 monitors created, 3 updated, 0 failed out of 500 total.",
"summary": {
"total": 500,
"processed": 500,
"successful": 500,
"created": 497,
"updated": 3,
"failed": 0
}
}
}
応答本文:ジョブが完了しました (エラーあり)。
{
"result": {
"job_id": "BCJ-1776889518281-0baf339f",
"status": "completed",
"message": "Job completed. 98 monitors created, 0 updated, 2 failed out of 100 total.",
"summary": {
"total": 100,
"processed": 100,
"successful": 98,
"created": 98,
"updated": 0,
"failed": 2
},
"errors": [
{
"check_number": 23,
"name": "Invalid Monitor",
"error_code": "CREATE_FAILED",
"error_message": "cmdb_ci is required"
},
{
"check_number": 45,
"name": "Bad Location Monitor",
"error_code": "CREATE_FAILED",
"error_message": "Location not found: invalid_sys_id"
}
]
}
}
SyntheticsAsyncBulkCreate - POST /sn_sow_synthetics/synthetics_async_bulk_create
1 回の非同期操作で複数の Synthetics モニターを作成します。
このエンドポイントは、要求ごとに最大 5,000 台のモニターの作成をサポートし、最大ペイロードサイズは 10 MB です。このエンドポイントを呼び出すと、モニターを 500 台ずつのバッチで非同期に作成するジョブが送信されます。エンドポイント GET /sn_sow_synthetics/v1/synthetics_async_bulk_create/{job_id} を呼び出して、ジョブのステータスを確認します。
このエンドポイントを呼び出すには、ユーザーに x_snc_sow_synthetics.synthetics_editor ロールが必要です。
URL 形式
バージョニングされた URL: /api/sn_sow_synthetics/{api_version}/synthetics_async_bulk_create
デフォルト URL: /api/sn_sow_synthetics/synthetics_async_bulk_create
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| api_version | オプション。アクセスするエンドポイントのバージョン。たとえば、 v1 や v2 などです。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。 データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| チェック | 必須です。モニターを作成するエンドポイント構成オブジェクトのアレイ。このアレイには、API 要求ごとに最大 5,000 個のオブジェクトを含めることができます。 データタイプ:アレイ |
| checks.alert_severity | 失敗したモニターテストに対して作成されたアラートの重大度レベル。このパラメーターは、 checks.should_create_alert が true に設定されている場合にのみ使用します。有効な値:
デフォルト値:1 データタイプ:数値 |
| checks.alert_tags | 失敗したモニターテストに対して作成されたアラートに使用するカスタムタグ。このパラメーターは、 checks.should_create_alert が true に設定されている場合にのみ使用します。このオブジェクトに含まれる要素は、使用されるタグによって異なります。たとえば、次に示すように、タグを環境やチームに使用できます。 デフォルト:空のオブジェクト データタイプ: オブジェクト |
| checks.body | POST、PUT、または PATCH エンドポイントの要求本文。Content-Type ヘッダーに応じて、有効な JSON または XML 文字列である必要があります。最大サイズは 10KB です。デフォルト:Null データタイプ:文字列 |
| checks.body_condition | 応答本文の検証。 データタイプ: オブジェクト |
| checks.body_condition.expression | 応答本文を確認する式。式は、正規表現、JSONPath、および XPath のサポートを含む、任意の文字列値にすることができます。 デフォルト:Null データタイプ:文字列 |
| checks.body_condition.type | 応答本文を checks.body_condition.expressionに対して評価するために使用される検証のタイプ。 有効な値 (大文字と小文字を区別):
デフォルト:Null データタイプ:文字列 |
| checks.cmdb_ci | 必須です。CMDBエンドポイント構成アイテム (CI) のSys_id。 テーブル:HTTP エンドポイント [cmdb_ci_endpoint_http] データタイプ:文字列 |
| checks.credential | エンドポイント要求に含めるモニターの認証情報のSys_id。 テーブル: デフォルト:Null データタイプ:文字列 |
| checks.description | モニターの説明。 データタイプ:文字列 |
| checks.enabled | モニターの作成直後に実行を開始するかどうかを示すフラグ。 有効な値:
デフォルト:true データタイプ:ブーリアン |
| checks.headers | エンドポイント要求に含めるモニターの HTTP ヘッダーのアレイ。 データタイプ:アレイ デフォルト:空のアレイ (ヘッダーなし) |
| checks.headers.name | Authorization や Content-Type などの HTTP ヘッダーの名前。データタイプ:文字列 |
| checks.headers.value | ベ アラートークン や アプリケーション/json などの HTTP ヘッダーの値。データタイプ:文字列 |
| checks.interval | 必須です。モニターの実行頻度 (分単位)。 ServiceNow ホストされている場所は、モニターごとに 1 分あたり 6 回のテストに制限されています。 有効な値:1〜60 たとえば、値 データタイプ:数値 |
| checks.locations | 必須です。モニターに使用する MID サーバー 場所のsys_idsのリスト。 テーブル:Synthetic 場所 [sn_sow_synthetics_location] データタイプ:文字列 |
| checks.max_latency_ms | 許容可能な最大応答時間 (ミリ秒)。一般的なガイドラインは、エンドポイントタイプに応じて 500 〜 5000 ミリ秒です。 モニターはテスト時にこの値と照合し、応答時間がこの値を超えるとテストは失敗します。 デフォルト:Null (レイテンシしきい値なし) データタイプ:数値 |
| checks.method | 必須です。使用する HTTP メソッド。 有効な値 (大文字と小文字の区別なし):
データタイプ:文字列 |
| checks.name | 必須です。モニターの表示名。 最大長:100 文字 データタイプ:文字列 |
| checks.parent_service_sys_id | 必須です。このエンドポイントがサポートするビジネスサービスのSys_id。サービスレベルレポートと影響分析に使用されます。 テーブル:ビジネスサービス [cmdb_ci_service] データタイプ:文字列 |
| checks.query_string | エンドポイント要求に含めるモニターのクエリパラメーター。 デフォルト:Null データタイプ:文字列 |
| checks.should_create_alert | テストが失敗した場合にモニターがアラートを作成するかどうかを示すフラグ。 有効な値:
デフォルト値:false データタイプ:ブーリアン |
| checks.single_api_check_sys_id | エンドポイントのモニターのSys_id。このパラメーターを使用して、既存のモニターを更新します。 テーブル:単一の API [sn_sow_synthetics_check_single_api] デフォルト:Null データタイプ:文字列 |
| checks.support_group_sys_id | 必須です。このエンドポイントを担当するサポートグループのSys_id。アラートのルーティングとアサインに使用されます。 テーブル: Group [sys_user_group] データタイプ:文字列 |
| checks.valid_http_code | 正常な応答で想定される HTTP ステータスコード。 有効な形式:
モニターはテスト時にこれらの値と照合し、実際のステータスコードがリスト内の値と一致しない場合は不合格になります。 デフォルト:Null データタイプ:文字列 |
| checks.valid_http_code_type | 応答から HTTP ステータスコードを確認するために使用される検証のタイプ。 有効な値 (大文字と小文字を区別):
デフォルト:Null データタイプ:文字列 |
ヘッダー
次の要求ヘッダーと応答ヘッダーは、この HTTP アクションにのみ適用されるか、別の方法でこのアクションに適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。application/json のみをサポートします。 |
| 認証 | HTTP ベーシック認証または OAuth ベアラートークン。 ベーシック認証形式: OAuth 形式: |
| Content-Type | 要求本文のデータ形式。サポートされているタイプ: application/json または text/csv。 デフォルト: application/json |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 202 | 承認済み。一括モニター作成ジョブが送信されました。 |
| 400 | 要求が正しくありません。要求の検証に失敗しました。エラーの詳細については、応答本文の error.code と error.message を確認してください。 一般的な原因:
|
| 401 | 権限がありません。ユーザー認証情報が正しくないか、渡されていません。 |
| 403 | 禁止されました。モニターを作成するには、ユーザーに x_snc_sow_synthetics.synthetics_editor ロールが必要です。 |
| 413 | ペイロードが大きすぎます。要求本文が 10MB の制限を超えています。 |
| 415 | サポートされていないメディアタイプ。ペイロードは JSON または CSV 形式にする必要があります。 |
| 429 | 要求が多すぎるか、アクティブなモニター作成ジョブが多すぎます。待ってから再試行してください。詳細については、応答本文の error.code と error.message を確認してください。 レート制限:
|
| 500 | 内部サーバーエラー要求の処理中に予期しないエラーが発生しました。応答には、エラーに関する追加情報が含まれています。 |
応答本文のパラメーター (JSON)
| 名前 | 説明 |
|---|---|
| エラー | API 要求が失敗した場合に返されるオブジェクト。 データタイプ: オブジェクト |
| error.code | エラーコード。 可能な値:
データタイプ:文字列 |
| error.details | エラーに関するその他の詳細。 このオブジェクトに含まれる要素は、エラーの種類によって異なります。 データタイプ: オブジェクト |
| error.message | エラーメッセージ。 データタイプ:文字列 |
| result | モニター作成ジョブに関する情報を含むオブジェクト。 データタイプ: オブジェクト |
| result.job_id | モニター作成ジョブの ID。 テーブル:Synthetics 一括ジョブ [sn_sow_synthetics_bulk_job] 列:ジョブ ID データタイプ:文字列 |
| result.job_sys_id | モニター作成ジョブのSys_id。 テーブル:Synthetics 一括ジョブ [sn_sow_synthetics_bulk_job] データタイプ:文字列 |
| result.message | モニター作成ジョブのステータスに関するメッセージ。 データタイプ:文字列 |
| result.status | モニター作成ジョブのステータス。 API 要求が成功した場合 (ステータスコード データタイプ:文字列 |
| result.status_check_url | モニター作成ジョブの現在のステータスを追跡するためのエンドポイント。詳細については、「 GET /sn_sow_synthetics/v1/synthetics_async_bulk_create/{job_id}」を参照してください。 データタイプ:文字列 |
cURL 要求
この例では、2 つの API エンドポイントのモニターを作成するジョブを送信します。
curl "https://instance.service-now.com/api/sn_sow_synthetics/v1/synthetics_async_bulk_create" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
"checks": [
{
"name": "Production API Health Check",
"method": "GET",
"description": "Monitors the main API health endpoint",
"interval": 5,
"cmdb_ci": "21d4073087807610f13cbbf7cebb3500",
"enabled": true,
"should_create_alert": true,
"alert_severity": 1,
"locations": [
"0fd0279b87003210f13cbbf7cebb3552",
"2244a48d87cc7610f13cbbf7cebb3554"
],
"headers": [
{
"name": "Accept",
"value": "application/json"
}
],
"query_string": null,
"credential": "",
"body": null,
"parent_service_sys_id": "6731133c87c07610f13cbbf7cebb35d8",
"support_group_sys_id": "019ad92ec7230010393d265c95c260dd",
"alert_tags": {
"environment": "production",
"team": "platform"
},
"valid_http_code_type": "equals",
"valid_http_code": "200",
"max_latency_ms": 5000,
"body_condition": {
"type": "jsonpath",
"expression": "$.status == 'ok'"
}
},
{
"name": "User Service POST Test",
"method": "POST",
"description": "Tests user creation endpoint",
"interval": 10,
"cmdb_ci": "21d4073087807610f13cbbf7cebb3503",
"enabled": true,
"should_create_alert": true,
"alert_severity": 2,
"locations": [
"2244a48d87cc7610f13cbbf7cebb3554"
],
"headers": [
{
"name": "Content-Type",
"value": "application/json"
}
],
"body": "{\"test\": true}",
"parent_service_sys_id": "6731133c87c07610f13cbbf7cebb35e1",
"support_group_sys_id": "0762d92db72422103a858bbb4e11a928",
"valid_http_code_type": "in_range",
"valid_http_code": "200-201",
"max_latency_ms": 3000
}
]
}" \
--user 'username':'password'
応答本文:ジョブが正常に作成されました。
{
"result": {
"job_id": "BCJ-1706789123456-a1b2c3d4",
"job_sys_id": "abc123def456abc123def456",
"status": "pending",
"message": "Job created successfully. File uploaded. Processing will begin shortly.",
"status_check_url": "/api/sn_sow_synthetics/v1/synthetics_async_bulk_create/BCJ-1706789123456-a1b2c3d4"
}
}
応答本文:同時モニター作成ジョブ制限エラー。
{
"error": {
"code": "CONCURRENT_JOB_LIMIT",
"message": "Maximum concurrent jobs exceeded. Please wait for existing jobs to complete."
}
}
応答本文:レート制限エラー。
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Please try again later.",
"details": {
"remaining_per_minute": 0,
"remaining_per_hour": 5,
"remaining_per_day": 100
}
}
}