New Relic では、NerdGraph を使用してスクリプト化された API モニターを作成できます。スクリプト化されたAPIモニターは、カスタム JavaScript コードを実行して、ブラウザーを使用せずに API とバックエンド サービスをテストし、HTTP requestsを作成し、プログラム的にレスポンスを検証します。 このチュートリアルでは、NerdGraph API を使用してスクリプト化された API モニターの作成を自動化する方法の例を示します。
スクリプト化されたAPIモニターを作成する
syntheticsCreateScriptApiMonitorミューテーションを使用してスクリプト化された API モニターを作成できます。この変更により、JavaScript コードを実行してAPIエンドポイントを検証するカスタムAPIテストをセットアップできるようになります。
入力
パラメータ | データタイプ | 必須ですか? | 説明 |
|---|---|---|---|
| 整数 | はい | モニターが作成される New Relic 。 |
| 配列 | はい | モニターがチェックを実行する 識別子の配列 (例:
)。 |
| 弦 | はい | スクリプト化された API モニターの表示名。 |
| イナム | はい | モニターが実行される頻度。オプション:
、
、
、
、
、
、
、
、
。 |
| 弦 | はい | モニターで使用されるランタイム タイプ。受け入れられる値は
のみです。 |
| 弦 | はい | モニターで使用されるランタイムタイプのバージョン。現在のNode.jsバージョンには
を使用してください(推奨)。
のような特定の古いバージョンも受け入れられますが、非推奨になります。 |
| 弦 | はい | モニターで使用される言語。受け入れられる値は
のみです。 |
| 弦 | はい | モニターが実行する JavaScript コード。これは base64 でエンコードされたものではなく、プレーンテキストである必要があります。スクリプトは $http オブジェクトを使用して HTTP requests作成し、 APIテストを実行できます。 |
| イナム | はい | モニターのステータス。オプション:
(モニターはアクティブでチェックを実行中)、
(モニターは非アクティブ)。 |
| 浮く | いいえ | SLA レポートの入力に使用される、モニターの Apdex ターゲット (秒単位)。デフォルトは 7.0 秒です。 |
サンプルリクエスト
mutation { syntheticsCreateScriptApiMonitor( accountId: ACCOUNT_ID monitor: { locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "YOUR_MONITOR_NAME" period: PERIOD runtime: { runtimeType: "RUNTIME_TYPE" runtimeTypeVersion: "RUNTIME_TYPE_VERSION" scriptLanguage: "SCRIPT_LANGUAGE" } script: "SCRIPT_CONTENT" status: STATUS apdexTarget: APDEX_TARGET } ) { errors { description type } }}サンプル回答
成功した応答はエラーに対してnullを返します:
{ "data": { "syntheticsCreateScriptApiMonitor": { "errors": null } }}モニターの作成中に問題が発生した場合、 errors配列には、何が問題であったかを説明するdescriptionとtypeフィールドを持つオブジェクトが含まれます。
スクリプト化されたAPIモニターを更新する
syntheticsUpdateScriptApiMonitorミューテーションを使用して、既存のスクリプト API モニターを更新できます。これにより、すでに作成されているスクリプトAPIモニターの設定を変更できます。
入力
パラメータ | データタイプ | 必須ですか? | 説明 |
|---|---|---|---|
| 弦 | はい | 更新するモニターの一意のエンティティ 。 |
| 配列 | いいえ | モニターがチェックを実行する 識別子の配列 (例:
)。 |
| 弦 | いいえ | スクリプト化された API モニターの更新された表示名。 |
| イナム | いいえ | モニターが実行される頻度。オプション:
、
、
、
、
、
、
、
、
。 |
| 弦 | いいえ | モニターで使用されるランタイム タイプ。受け入れられる値は
のみです。 |
| 弦 | いいえ | モニターで使用されるランタイムタイプのバージョン。現在のNode.jsバージョンには
を使用してください(推奨)。
のような特定の古いバージョンも受け入れられますが、非推奨になります。 |
| 弦 | いいえ | モニターで使用される言語。受け入れられる値は
のみです。 |
| 弦 | いいえ | モニターが実行する JavaScript コード。これは base64 でエンコードされたものではなく、プレーンテキストである必要があります。 |
| イナム | いいえ | モニターのステータス。オプション:
(モニターはアクティブでチェックを実行中)、
(モニターは非アクティブ)。 |
| 浮く | いいえ | SLA レポートの入力に使用される、モニターの Apdex ターゲット (秒単位)。デフォルトは 7.0 秒です。 |
サンプルリクエスト
mutation { syntheticsUpdateScriptApiMonitor( guid: ENTITY_GUID monitor: { locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "YOUR_MONITOR_NAME" period: PERIOD runtime: { runtimeType: "RUNTIME_TYPE" runtimeTypeVersion: "RUNTIME_TYPE_VERSION" scriptLanguage: "SCRIPT_LANGUAGE" } script: "SCRIPT_CONTENT" status: STATUS apdexTarget: APDEX_TARGET } ) { errors { description type } }}サンプル回答
成功した応答はエラーに対してnullを返します:
{ "data": { "syntheticsUpdateScriptApiMonitor": { "errors": null } }}モニターの更新中に問題が発生した場合、 errors配列には、何が問題であったかを説明するdescriptionとtypeフィールドを持つオブジェクトが含まれます。
スクリプト化されたAPIモニターのランタイムをアップグレードする
新しいNode.jsランタイムを使用するように、スクリプト化されたAPIモニターをアップグレードできます。最新のNode.jsリリースには、バージョン22.20.0の使用をお勧めします。
重要
Node.jsのバージョン管理: 特定のNode.jsバージョン(16.10など)はサポート終了となります。2026年11月18日に、古いNode.jsバージョンを使用しているスクリプトAPIモニターは、Node.js 22に強制アップグレードされます。現在サポートされているバージョンは22.20.0です。モニターが最新のNode.jsのアップデートと機能を使用できるようにするため、この日付までにruntimeTypeVersion: "22.20.0"にアップグレードしてください。
入力
パラメータ | データタイプ | 必須ですか? | 説明 |
|---|---|---|---|
| 弦 | はい | アップグレードするモニターの一意のエンティティ 。 |
| 弦 | はい | ランタイムタイプ。受け入れられる値は
のみです。 |
| 弦 | はい | ランタイムバージョン。最新のNode.jsバージョンには
を使用してください(推奨)。
のような古い特定のバージョンも受け入れられますが、非推奨になります。 |
| 弦 | はい | スクリプト言語。受け入れられる値は
のみです。 |
サンプルリクエスト
Node.js バージョン 22.20.0 にアップグレード(推奨):
mutation { syntheticsUpdateScriptApiMonitor( guid: "ENTITY_GUID" monitor: { runtime: { runtimeType: "NODE_API" runtimeTypeVersion: "22.20.0" scriptLanguage: "JAVASCRIPT" } } ) { errors { description type } }}サンプル回答
成功した応答はエラーに対してnullを返します:
{ "data": { "syntheticsUpdateScriptApiMonitor": { "errors": null } }}モニター ランタイムのアップグレードで問題が発生した場合、 errors配列には、何が問題であったかを説明するdescriptionフィールドとtypeフィールドを持つオブジェクトが含まれます。
VSE が有効なプライベートロケーション間でスクリプト化されたAPIモニターを移動する
スクリプト化されたAPIモニターを VSE 対応のプライベートロケーション間で移動できます。 検証済みスクリプト実行 (VSE) を有効にしてプライベートロケーション間でモニターを移動する場合は、セキュリティ検証のために HMAC を再生成するためのスクリプトを含める必要があります。
入力
パラメータ | データタイプ | 必須ですか? | 説明 |
|---|---|---|---|
| 弦 | はい | 移動するモニターの一意のエンティティ 。 |
| 配列 | はい | プライベートロケーション設定の配列。 各場所には、VSE 対応の場所の場合は
と
必要です。 |
| 弦 | はい | ターゲットプライベートロケーションのエンティティ GUID。 |
| 弦 | はい | ターゲットプライベートロケーションの VSE パスワード。 |
| 弦 | はい | モニターが実行する JavaScript コード。VSE 対応の場所間を移動するときに HMAC を再生成するには、これを含める必要があります。 |
サンプルリクエスト
mutation { syntheticsUpdateScriptApiMonitor( guid: "ENTITY_GUID" monitor: { locations: { private: [{ guid: "LOCATION_GUID", vsePassword: "YOUR_VSE_PASSWORD" }] } script: "SCRIPT_CONTENT" } ) { errors { description type } monitor { status } }}サンプル回答
成功した応答では、エラーに対してnull返され、モニターのステータスが含まれます。
{ "data": { "syntheticsUpdateScriptApiMonitor": { "errors": null, "monitor": { "status": "ENABLED" } } }}モニターの移動に問題がある場合は、 errors配列に、何が問題であったかを説明するdescriptionとtypeフィールドを持つオブジェクトが含まれます。
スクリプト化されたAPIモニターを削除する
スクリプト化された API モニターが不要になった場合は、 syntheticsDeleteMonitorミューテーションを使用してそれを完全に削除できます。
モニターを削除するには、 「合成モニターの削除」セクションを参照してください。