現在、New Relic は、v1 と v3 の 2 つのバージョンの外形監視 API をサポートしています。 バージョン 3 は 2016 年 10 月にリリースされました。 Version 1 is deprecated となり、最終的には利用できなくなります。 終了日は発表されていない。 ただし、v1 に対してこれ以上の開発や変更は行われません。
注意 推奨事項: v3合成API を使用して新しいモニターを作成し、v1スクリプトを同等のv3に移行します。
New Relic のシンセティックモニタリングの REST API を使用するには、 API アクセスを有効にして、アカウント設定から Admin User's API key を生成する必要があります。その後、コマンドラインで標準的なAPIコールを行うことができます。
シンプルでスクリプトのあるモニターの管理 合成RESTAPI呼び出しを行うには、管理者ユーザーのAPIキーを使用する必要があります。アカウントのRESTAPIキーは機能しません。
注意 合成RESTAPIは、アカウントのリクエストのレートを1秒あたり3リクエストに制限します。このしきい値を超えて行われたリクエストは、429応答コードを返します。
これらの例は、curlコマンドを示しています。
すべてのモニターを取得する アカウントのNewRelicにあるすべてのモニターのリストを表示するには、GETリクエストをhttps://synthetics.newrelic.com/synthetics/api/v1/monitors
に送信します。例えば:
> -H 'X-Api-Key:API_KEY' https://synthetics.newrelic.com/synthetics/api/v1/monitors
リクエストが成功すると、 200 OK レスポンスが返されます。 返されるデータは 、次の形式のJSONオブジェクトになります。
"locations" : array of strings ,
特定のモニターを取得する New Relic で単一の既存のモニターを表示するには、GET リクエストをhttps://synthetics.newrelic.com/synthetics/api/v1/monitors/MONITOR_ID
に送信します。 次の例のMONITOR_ID
特定のモニター ID に置き換えます。
> -H 'X-Api-Key:API_KEY' https://synthetics.newrelic.com/synthetics/api/v1/monitors/MONITOR_ID
リクエストが成功すると、 200 OK レスポンスが返されます。 返されるデータは 、次の形式のJSONオブジェクトになります。
"locations" : array of strings ,
無効なモニター ID は、エラー404 Not Found : 指定されたモニターは存在しません」を返します。
モニターを作成する New Relicのアカウントに新しいモニターを追加するには、モニターを説明するJSONペイロードを含むPOSTリクエストをhttps://synthetics.newrelic.com/synthetics/api/v1/monitors
に送信します。
"name" : string [ required ] ,
"type" : string (SIMPLE , BROWSER , SCRIPT_API , SCRIPT_BROWSER) [ required ] ,
"frequency" : integer (minutes) [ required , must be one of 1 , 5 , 10 , 15 , 30 , 60 , 360 , 720 , or 1440 ] ,
"uri" : string [ required for SIMPLE and BROWSER type ] ,
"locations" : array of strings (send a GET request to https :
"status" : string (ENABLED , DISABLED) [ required ] ,
さらに、REST API 経由でadd a scripted monitor に追加の API エンドポイントを呼び出し 、作成したばかりのモニターのスクリプトを送信します。
以下の例の Synthetics REST API attributes をあなたの特定の値に置き換えてください。
> -X POST -H 'X-Api-Key:API_KEY' \
> -H 'Content-Type: application/json' https://synthetics.newrelic.com/synthetics/api/v1/monitors \
$ "uri": "http://my-uri.com",
$ "locations": ["AWS_US_WEST_1"],
リクエストに成功すると、location
ヘッダーで指定された新規作成モニターのURLと共に、201 Created レスポンスが返されます。可能なエラーコード:
400 Bad Request : 1 つ以上のモニター値が無効であるか、リクエストの形式が無効です。 たとえば、周波数が範囲外であるか、指定された 1 つ以上の場所が無効です (応答本文のエラーメッセージを参照してください)。402 Payment Required :モニターを作成すると、アカウントで購入したチェックの限度額を超える定期的なチェックが増加します。既存のモニターを更新する New Relicで既存のモニターを更新するには、PUTリクエストをhttps://synthetics.newrelic.com/synthetics/api/v1/monitors/MONITOR_ID
に送信します。さらに、スクリプト化モニターの場合、BASE64でエンコードされたスクリプトを更新する の手順に従います。
次の例の MONITOR_ID
を特定のモニター ID に置き換え、外形監視 REST APIプロパティを 特定の値に置き換えます。
> -X PUT -H 'X-Api-Key:API_KEY' \
> -H 'Content-Type: application/json' https://synthetics.newrelic.com/synthetics/api/v1/monitors/MONITOR_ID \
$ "name": "updated monitor name",
$ "uri": "http://my-uri.com/",
$ "locations": ["AWS_US_WEST_1"],
PUTリクエストの目的は、ターゲットエンティティを置き換えることにあります。既存のモニターを更新する場合、新しいモニター を作成するときにJSONペイロードで使用する、すべての属性が必要になります。
リクエストに成功すると、空白の本文と共に、204 No Content レスポンスが返されます。可能なエラーコード:
400 Bad Request : 1 つ以上のモニター値が無効であるか、リクエストの形式が無効です。 たとえば、周波数が範囲外であるか、指定された 1 つ以上の場所が無効です (応答本文のエラーメッセージを参照してください)。404 Not Found :指定されたモニターが存在しません。既存のモニターを削除する New Relic 内の既存のモニターを削除するには、 https://synthetics.newrelic.com/synthetics/api/v1/monitors/MONITOR_ID
に DELETE リクエストを送信します。 次の例のMONITOR_ID
特定のモニター ID に置き換えます。
> -H 'X-Api-Key:API_KEY' \
> -X DELETE https://synthetics.newrelic.com/synthetics/api/v1/monitors/MONITOR_ID
リクエストが成功すると、空の本文を持つ204 No Content レスポンスが返されます。 リクエストが失敗すると、レスポンス404 Not Found が返されます: 指定されたモニターは存在しません。
有効なロケーションのリストを取得 New Relic で有効なロケーションのリストを取得するには、次のコマンドを使用します。
> -X GET -H 'X-Api-Key:API_KEY' https://synthetics.newrelic.com/synthetics/api/v1/locations
スクリプトによるモニターの管理 一般的な API に加えて、 scripted browser ( SCRIPT_BROWSER
) およびapi test ( SCRIPT_API
) モニター タイプ用の API メソッドがいくつかあります。
これらの例は、curlコマンドを示しています。
モニターのスクリプトを取得する アカウントの New Relic で特定のSCRIPT_BROWSER
またはSCRIPT_API
モニターに関連付けられたスクリプトを表示するには、GET リクエストをhttps://synthetics.newrelic.com/synthetics/api/v1/monitors/MONITOR_ID/script
に送信します。 MONITOR_ID
特定のモニター ID に置き換えます。 例えば:
$ -H 'X-Api-Key: API_KEY'
$ https://synthetics.newrelic.com/synthetics/api/v1/monitors/MONITOR_ID/script
リクエストが成功すると、 200 OK レスポンスが返されます。返されるデータは、次の形式のJSONオブジェクトになります。
"scriptText" : BASE64 encoded string
可能なエラーコード:
403 Forbidden: 指定されたモニターのタイプはSCRIPT_BROWSER
またはSCRIPT_API
ではありません。404 Not Found: 指定されたモニターが存在しないか、またはモニターに関連付けられたスクリプトが存在しません。スクリプト化モニターを追加する REST APIを使ってNew Relicに新しいスクリプトモニターを追加するには。
標準のAPI手順に従って新しいモニターを追加し 、 type
をSCRIPT_BROWSER
またはSCRIPT_API
として識別します。
$MONITOR_UUID/script
エンドポイントに対するスクリプトのBASE64エンコードバージョンで新規モニターを更新します。
詳細については、例 を参照してください。
モニターのスクリプトを更新する アカウントの New Relic の特定のSCRIPT_BROWSER
またはSCRIPT_API
モニターに関連付けられたスクリプトを更新するには、 scriptText
(必須) を含む JSON ペイロードを使用して PUT リクエストをhttps://synthetics.newrelic.com/synthetics/api/v1/monitors/MONITOR_ID/script
に送信します。 scriptLocations
データは、 Verified Script Execution がオンになっているプライベートロケーションにのみ必要です。
HMAC文字列の生成に使用するパスワードは、プライベートロケーションに設定されたパスワードと一致する必要があります。HMAC文字列の生成には、SHA256アルゴリズムを使用します。
"scriptText" : BASE64 encoded String ,
"hmac" BASE64 encoded String of SHA256 HMAC for location
MONITOR_ID
特定のモニター ID に置き換えます。 スクリプトの例を次に示します。
var assert = require('assert');
この例では、 scriptLocation
のパスワードとしてpassword
を使用しています。
> -H "X-Api-Key:'API_KEY'" \
> -H 'content-type: application/json' \
> 'https://synthetics.newrelic.com/synthetics/api/v1/monitors/MONITOR_ID/script' \
$ "scriptText": "dmFyIGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOw0KYXNzZXJ0LmVxdWFsKCcxJywgJzEnKTs=",
$ "name": "my_vse_enabled_location",
$ "hmac": "MjhiNGE4MjVlMDE1N2M4NDQ4MjNjNDFkZDEyYTRjMmUzZDE3NGJlNjU0MWFmOTJlMzNiODExOGU2ZjhkZTY4"
リクエストに成功すると、空白の本文と一緒に204 No Content のレスポンスが返されます。可能なエラーコード:
400 Bad Request: scriptText
またはhmac
に対する無効のBASE64でエンコードされた文字列です。403 Forbidden: 指定されたモニターのタイプがSCRIPT_BROWSER
またはSCRIPT_API
ではありません。404 Not Found: 指定されたモニターが存在しません。スクリプト化ブラウザの例 New RelicのREST APIとbashスクリプトを使用して、スクリプト化されたブラウザモニターを作成する例を示します。
スクリプト化ブラウザAPIの例 以下の例では、スクリプトによるブラウザモニタを作成するためのcurlコマンドを示しています。
Bashスクリプトの例 この例は、 SCRIPTED_BROWSER
モニターを作成するbashスクリプトを示しています。
$ monitorName = 'Test API Script'
$ monitorType = 'SCRIPT_BROWSER'
$ locations = '"AWS_US_WEST_1", "AWS_US_EAST_1"'
$ scriptfile = sample_synth_script.js
$ script = $( cat " $scriptfile " )
$ payload = "{ \" name \" : \" $monitorName \" , \" frequency \" : $frequency , \" locations \" : [ $locations ], \" status \" : \" ENABLED \" , \" type \" : \" $monitorType \" , \" slaThreshold \" : $slaThreshold , \" uri \" : \" \" }"
$ echo "Creating monitor"
$ while IFS = ':' read key value ; do
$ value = ${value ## +( [ [ : space : ] ] )} ; value = ${value %% +( [ [ : space : ] ] )}
$ location ) LOCATION = " $value "
$ HTTP* ) read PROTO STATUS MSG <<< " $key { $value :+: $value }"
$ done < < ( curl -sS -i -X POST -H "X-Api-Key: $adminAPIKey " -H 'Content-Type: application/json' https://synthetics.newrelic.com/synthetics/api/v1/monitors -d " $payload " )
$ if [ $STATUS = 201 ] ; then
$ echo "Monitor created, $LOCATION "
$ echo "Uploading script"
$ encoded = ` echo " $script " | base64 `
$ scriptPayload = '{"scriptText":"' $encoded '"}'
$ curl -s -X PUT -H "X-Api-Key: $adminAPIKey " -H 'Content-Type: application/json' " $LOCATION /script" -d $scriptPayload
$ echo "Monitor creation failed"
$ echo "script file not found, not creating monitor"
シンセティック属性 ここでは、SyntheticsのREST APIコールで使用される属性をアルファベット順に並べています。
Synthetics API attribute
Definition
apiVersion
文字列です。バージョン番号です。
emails
文字列の配列。New Relic で アラート通知を受けるためのメールアドレス 。
frequency
整数です。 チェックの間の分数 。有効な値は、1、5、15、30、60、360、720、および1440です。
id
特定の合成モニターのUUID。
locations
Array of strings: Array of locations by full label.
name
文字列です。 モニターの名前 .
scriptLocations
文字列: 検証済みスクリプト実行 を使用したプライベートロケーション のname
値とhmac
値。
scriptText
文字列です。 scripted monitors のBASE64エンコードされたテキストです。
slaThreshold
倍です。 Synthetics SLA レポート の値、単位は秒。
status
文字列: 有効な値には、 ENABLED
およびDISABLED
が含まれます。
type
文字列: モニターの種類 .有効な値は以下の通りです。
SIMPLE
(ping)BROWSER
SCRIPT_BROWSER
SCRIPT_API
uri
文字列: SIMPLE
およびBROWSER
モニタータイプ のURI;たとえば、 http://my-site.com
。 SCRIPT_BROWSER
およびSCRIPT_API
の場合はオプション。
userID
整数。特定のユーザーID。
特定のモニターエンドポイント 特定のモニターに対してRESTAPI呼び出しを行う場合は、エンドポイントの一部としてmonitor_uuid
を含めます。 monitor_uuid
は、URLの一部であるGUIDです。たとえば、選択した合成モニター のURLは次のとおりです。
https://synthetics.newrelic.com/accounts/nnnn/monitors/ab123-c456d-e78-90123-f45g
monitor_uuid
は、 /monitors/
に続く値です。