New Relic では、NerdGraph を使用してスクリプト化された API モニターを作成できます。スクリプト化されたAPIモニターは、カスタム JavaScript コードを実行して、ブラウザーを使用せずに API とバックエンド サービスをテストし、HTTP requestsを作成し、プログラム的にレスポンスを検証します。 このチュートリアルでは、NerdGraph API を使用してスクリプト化された API モニターの作成を自動化する方法の例を示します。
スクリプト化されたAPIモニターを作成する
syntheticsCreateScriptApiMonitorミューテーションを使用してスクリプト化された API モニターを作成できます。この変更により、JavaScript コードを実行してAPIエンドポイントを検証するカスタムAPIテストをセットアップできるようになります。
入力
パラメータ | データタイプ | 必須ですか? | 説明 |
|---|---|---|---|
| 整数 | はい | モニターが作成される New Relic 。 |
| 配列 | はい | モニターがチェックを実行する 識別子の配列 (例:
)。 |
| 弦 | はい | スクリプト化された API モニターの表示名。 |
| イナム | はい | モニターが実行される頻度。オプション:
、
、
、
、
、
、
、
、
。 |
| 弦 | はい | モニターで使用されるランタイム タイプ。受け入れられる値は
のみです。 |
| 弦 | はい | モニターで使用されるランタイム タイプのバージョン。受け入れられる値は
のみです。 |
| 弦 | はい | モニターで使用される言語。受け入れられる値は
のみです。 |
| 弦 | はい | モニターが実行する 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 モニターの更新された表示名。 |
| イナム | いいえ | モニターが実行される頻度。オプション:
、
、
、
、
、
、
、
、
。 |
| 弦 | いいえ | モニターで使用されるランタイム タイプ。受け入れられる値は
のみです。 |
| 弦 | いいえ | モニターで使用されるランタイム タイプのバージョン。受け入れられる値は
のみです。 |
| 弦 | いいえ | モニターで使用される言語。受け入れられる値は
のみです。 |
| 弦 | いいえ | モニターが実行する 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モニターのランタイムをアップグレードする
スクリプト化された API モニターをアップグレードして、新しい Node.js 16.10 ランタイムを使用できます。これにより、モニターで最新の Node.js 機能とセキュリティ更新が使用されるようになります。
入力
パラメータ | データタイプ | 必須ですか? | 説明 |
|---|---|---|---|
| 弦 | はい | アップグレードするモニターの一意のエンティティ 。 |
| 弦 | はい | ランタイムタイプ。受け入れられる値は
のみです。 |
| 弦 | はい | ランタイムバージョン。受け入れられる値は
のみです。 |
| 弦 | はい | スクリプト言語。受け入れられる値は
のみです。 |
サンプルリクエスト
mutation { syntheticsUpdateScriptApiMonitor( guid: "ENTITY_GUID" monitor: { runtime: { runtimeType: "NODE_API" runtimeTypeVersion: "16.10" scriptLanguage: "JAVASCRIPT" } } ) { errors { description type } }}サンプル回答
成功した応答はエラーに対してnullを返します:
{ "data": { "syntheticsUpdateScriptApiMonitor": { "errors": null } }}モニター ランタイムのアップグレードで問題が発生した場合、 errors配列には、何が問題であったかを説明するdescriptionフィールドとtypeフィールドを持つオブジェクトが含まれます。
スクリプト API モニターのランタイムをダウングレードする
スクリプト化された API モニターをダウングレードして、レガシー ランタイムを使用することができます。これは互換性の理由で必要な場合がありますが、レガシー ランタイムは 2024 年 10 月 22 日にサポートが終了することに注意してください。
重要
レガシー ランタイムは非推奨となり、2024 年 10 月 22 日にサポートが終了します。一時的な互換性が必要な場合を除き、レガシー ランタイムへのダウングレードは推奨されません。
入力
パラメータ | データタイプ | 必須ですか? | 説明 |
|---|---|---|---|
| 弦 | はい | ダウングレードするモニターの一意のエンティティ 。 |
| 弦 | はい | レガシーランタイムを使用するには、空の文字列
に設定します。 |
| 弦 | はい | レガシーランタイムを使用するには、空の文字列
に設定します。 |
| 弦 | はい | レガシーランタイムを使用するには、空の文字列
に設定します。 |
サンプルリクエスト
mutation { syntheticsUpdateScriptApiMonitor( guid: "ENTITY_GUID" monitor: { runtime: { runtimeType: "", runtimeTypeVersion: "", scriptLanguage: "" } } ) { 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ミューテーションを使用してそれを完全に削除できます。
モニターを削除するには、 「合成モニターの削除」セクションを参照してください。