Webページは多数のREST API呼び出しを利用して、データ取得や各種アクションを実行しています。またモバイルアプリはREST
APIで通信を行い、ログインページなども多く利用されます。
そのため、ページ遷移やパラメーター単体のWebアプリ監視は十分ではありません。
Site24x7のREST APIトランザクション監視を使用して、RESTアプリケーションのワークフローを監視します。監視を設定すると、トランザクションのステップそれぞれで、HTML要求とREST API呼び出しなどを監視します。最多で25のURLのシーケンスを監視できるほか、シーケンスのステップにおけるパラメーター転送も行えます。
IPv4およびIPv6対応アプリケーションを120以上のグローバル拠点から監視できます。
REST API監視は、1ベーシック監視とみなされます。
複数のAPI要求をグループにまとめて実行し、エンドポイントAPIの稼働状況、パフォーマンス、正確性を評価することができます。
トランザクション内のステップごとに表現のアサーションを定義し、応答の確認に使用できます。応答から、パラメーターを抽出・保存し、次の要求やステップで使うこともできます。
RESTベースのWebアプリを複数ステップからなる1シーケンスとして監視できます。
REST APIトランザクション監視の追加方法は次のとおりです。
スマート設定はステップの設定で、エンドポイントURLやヘッダーパラメーターなどの入力項目を、自動的にフォームに入力します。これにより、監視設定を迅速化し、適正なヘッダーリソースでAPI要求を精緻にチューニングします。
要求ヘッダーをChromeやFirefoxなどのブラウザーからコピーし[要求ヘッダーからインポートをクリックしてテキスト欄に貼り付けてください。
で要求ヘッダーを抽出する方法:
で要求ヘッダーを抽出する方法:
上記メソッドを使用して、次の操作を行えます。
カレンダーAPI監視:
CalDAVはWebDAVのカレンダー拡張を行ったもので、リモートサーバー上のカレンダー関係情報のアクセスや管理を行えます。CalDAVではiCalendar形式が使用されています。
CalDAVを使用して、各機器のカレンダーイベントの取得、新規イベントのスケジュール、リマインダー設定などのデータを同期できます。
例として、Google
CalendarおよびApple Calendarは、それらサービスにCalDAVアクセスを提供しています。
Contact
API監視:
CardDavはWebDAVにvCard拡張を行ったもので、Webサーバー上のデータにアクセスすることができるアドレス帳クライアントやサーバープロトコルを指します。データにはvCard形式が使用されています。
CardDAVを使用して、リモートサーバー間で個人情報の取得、保存、管理を行えます。
例として、Google
ContactsおよびiCloud ContactsではCardDAVを使用しています。
AWSシグネチャー:Site24x7と事前に連携されているAWSアカウントをドロップダウンから選択します。
HMACを使用してAPIリクエストを確認し、AWS
APIゲートウェイにホストされているAPIを認証します。
AWSアカウントの連携方法についてはこちらのページをご確認ください。
必須項目をすべて入力した後、[可用性確認]タブをクリックすることで行った設定をテストできます。
サービスをテストすることで、コードレベルでドリルダウンを行うことができ、設定エラーの修正等に利用できます。
パラメーター転送を利用すると、データやテストデータ検証情報を、要求のステップ間で受け渡すことができます。
各値は、XPath、JSON
Path、正規表現で応答から抽出でき、カスタムパラメーターとして保存可能です。このパラメーターから、クエリの文字列や次のステップへのpostデータを作成できます。
テキスト、XML、JSONベースの応答形式を選択し、正規表現、XPath表現、JSON
Path表現のアサーションを設定します。
${Parameter}を呼び出す場合は、呼び出した表現のアサーションの出力値は、以降の全ステップ検証に使用されます。
Swagger 2.0 /
OpenAPI形式はAPIドキュメントのサポートツールで、サーバー設定を迅速に始められます。JSON/YAMLのAPIで定義されたSwaggerで、テストシナリオを自動で作成します。JSON/YAMLファイルで定義されたSwaggerをインポートすることで、入力などの手間を削減できます。
Swaggerをインポートすると、各トランザクションが定義されたすべてのメソッドで作成されます。Site24x7が定義されたSwaggerとともにステップ名、ヘッダー、エンドポイントURLなどのAPI構造を読み取るため、設定ステップの削減になります。
Swagger定義のインポート方法は次のとおりです。
HTTP Archive (HAR)ファイルをインポートし、テストシナリオを作成できます。トランザクションのHARファイルはブラウザーの開発者ツールから取得してください。
Swaggerのように、全ステップ名、ヘッダー。エンドポイントURLなどの情報をHARファイルから抽出し、各ステップの可用性パラメーターや値を自動で取得して追加できます。
設定方法は次のとおりです。
[インポート]をクリックすると、パラメーター転送、POSTおよびPUTのJSON応答チェック、JSONPath表現、JSONスキーマチェックが、指定したHARファイルのリクエストとレスポンスに基づいて自動で行われます。
Web Services Description Language (WSDL)
URLを指定して、設定を容易に行います。
これにより、リクエストXML、エンドポイントURL、要求リクエストヘッダーが生成され、ステップにインポートされます。
次の情報を設定して、テスト操作を行います。
トランザクションのcURLファイルをブラウザーの開発者ツールを使用して抽出します。抽出したtcURLの手順では、.curlファイルでアップロードする必要があります。この機能により、各ステップのパラメーターと値が自動で入力されます。
サポートされているHTTPメソッドはPOST、PUT、DELETE、GETです。
cURLファイルをダウンロード後、次の手順を行ってください。
PostmanコレクションはAPIリクエストのグループで、チームへの共有やエクスポートを行えます。Postmanからコレクションをエクスポートし、Site24x7での監視作成に使用します。サポートされているHTTPメソッドはPOST、PUT、DELETE、GETです。
Postman (JSON)ファイルのダウンロード後、次の手順を行ってください。
REST APIトランザクション監視のユースケースは次のとおりです。
Webアプリで、APIエンドポイントが連結されている場合は、データはある要求から、次の要求へと引き渡されます。応答の全体でもその一部でも、応答パラメーターの記録が可能です。
次のユースケースを考えます。
GET Monitor Status
APIでは、Site24x7アカウントに存在するすべての監視のJSON応答を取得します。次のURLを用いると、その配下にあるJSON応答が取得可能です。ステップ1は、RESTトランザクション監視におけるトランザクションステップ1と同意です。
{
"code": 0,
"message": "success",
"data": {
"monitors": [
{
"outage_id": "1500384436349",
"name":
"JSON Check",
"downtime_millis": "3424304",
"down_reason":
"Trouble invoking url (Step Url Name) in JSON Check.\nUnable to connect to
https://www.site24x7.com${test}.",
"duration": "57 Mins 4 Secs",
"attribute_key": "transaction_time",
"status": 0,
"attributes": [
{
"attribute_label":
"web.application.details.transaction.time",
"unit": "ms",
"attribute_key": "rsptime",
"attribute_value": 2124
}
],
"last_polled_time": "2017-07-18T18:51:10+0530",
"attributeName": "TRANSACTIONTIME",
"monitor_type":
"RESTAPISEQ",
"attribute_label": "Transaction Time",
"unit":
"ms",
"monitor_id": "6000000120027"
},
{
"name":
"wewewewewew",
"status": 10,
"attributes": [
{
"attribute_label":
"web.application.details.transaction.time",
"attribute_key":
"rsptime",
"attribute_value": "-"
}
],
"last_polled_time":
"2017-06-28T15:08:20+0530",
"attributeName": "TRANSACTIONTIME",
"monitor_type": "RESTAPISEQ",
"monitor_id": "6000000064003"
}
]
}
}
{
"code": 0,
"message": "success",
"data": {
"outage_details": [
{
"display_name": "JSON Check",
"outages": [
{
"outage_id": "1500384436349",
"end_time":
"2017-07-18T20:12:33+0530",
"type": 0,
"start_time": "2017-07-18T18:57:16+0530",
"reason": "Trouble invoking url (Step Url Name) in JSON Check.\nUnable to
connect to https://www.site24x7.com${test}.",
"duration":
"1 Hrs 15 Mins "
},
{
"outage_id": "1500383206387",
"end_time": "2017-07-18T18:46:05+0530",
"type": 0,
"start_time":
"2017-07-18T18:36:46+0530",
"reason": "Trouble invoking
url (Step Url Name) in JSON Check.\nUnable to connect to
https://www.site24x7.com/${test}.",
"duration": "9 Mins 18 Secs"
}
],
"monitor_id": "6000000120027"
}
],
"info":
{
"resource_name": "JSON Check",
"end_time":
"2017-07-18T20:12:33+0530",
"resource_type_name": "Monitor",
"report_name": "Outage Report",
"period_name": "Last 24 Hours",
"formatted_start_time":
"17 July 2017 20:12 IST",
"generated_time":
"2017-07-18T20:12:33+0530",
"formatted_end_time": "18 July 2017 20:12
IST",
"start_time": "2017-07-17T20:12:33+0530",
"resource_type":
2,
"period": 1,
"formatted_generated_time": "18 July 2017 20:12
IST",
"resource_id": "6000000120027",
"report_type": 12
}
}
}
モダンなWebアプリやモバイルアプリでは、REST
APIを利用しアプリケーションを実行しています。中間ページを用いて、サインアップ、ログイン、テキスト送信などを行うこともあります。
REST
APIトランザクション監視では、このワークフローを監視します。それには、APIエンドポイントとサイトURLのすべてを、各トランザクションステップにまとめて設定し、トランザクション全体を監視できるようにしてください。