REST APIシーケンス監視
REST APIシーケンス監視――概要
多くのWebアプリケーションは、HTMLとAPIコールを複雑に組み合わせて構築されています。そのようなアプリケーションの動作は、データの取得やアクションの実行をREST APIコールに大きく依存しています。APIコールに障害が発生すると、アプリケーションの動作に影響を与える可能性があります。したがって、各APIコールを監視することが重要です。
Applications ManagerのREST APIシーケンス監視は、REST APIを使用するモバイルアプリやWebアプリの動作やワークフローの完全性を監視します。
新規REST APIシーケンス監視の作成
REST APIシーケンス監視を追加するには、次の手順に従ってください。
- サブメニュー内新規監視の監視の新規追加をクリックし、REST APIシーケンスを選択します。
- 表示名を入力します。
- 監視のステータスを更新するポーリング間隔(分)を指定します。
- 監視するトランザクションステップを指定します。各ステップはアプリケーションのワークフローにおけるAPIコールを表します。以下の2つの方法でトランザクションステップを追加できます:
- ステップのインポート: Webブラウザーで生成されたHARファイルに記録されたAPIトランザクションをインポートしてトランザクションステップを追加できます。 HARファイルの作成についての詳細はこちらをご参照ください。
- ステップの追加: トランザクションステップを手動で監視に追加できます。以下の手順で情報を入力します:
- 追加するステップ名を指定します。
- 監視するREST APIのエンドポイントURLを入力します。指定可能なURLは、HTTPまたはHTTPSです。
- エラーで停止オプションを有効にした場合、ステップでエラーが発生した際に監視をダウンにし、それ以降のステップの実行を停止します。
- タイムアウトを秒単位で指定します。
- APIリクエストにアクセスするフォーム送信方法を指定します。GET、POST、 PUT、DELETEのいずれかのHTTPメソッドを指定します。
- POSTまたはPUTメソッドを選択した場合、リクエストBodyタイプを以下の3つから選択します:
- フォームを選択した場合、リクエストbodyは行単位フォーマットで入力します。
- テキストを選択した場合、リクエストbodyはテキストフォーマットで入力します。
- XMLを選択した場合、リクエストbodyはXMLフォーマットで入力します。
- JSONを選択した場合、リクエストbodyはJSONフォーマットで入力します。
- APIサーバーへの接続に必要なHTTPリクエストヘッダーを設定します。
- 必要に応じて、ユーザー認証に必要な認証情報を入力するか、または認証情報マネージャーの一覧から選択します。認証が不要な場合はなしを選択します。選択可能な認証のオプションは以下の通りです:
- Basic認証:ユーザー名やパスワードなどの基本的な認証情報を使用して、REST APIエンドポイントを認証します。
- 認証情報マネージャー:認証情報マネージャーに登録した認証情報の一覧から資格情報を選択して、REST APIエンドポイントを認証します。
- OAuthトークン:OAuthトークンを使用してREST APIエンドポイントを認証します。
- Webトークン:Webトークンを使用してREST APIエンドポイントを認証します。
- 接続が成功したことを表す成功ステータスコードを、カンマ(,)またはコロン(:)区切りで指定します。
成功のステータスコードが「202」と「200」の場合の例: 202,200 または 202:200 - 応答タイプを指定します。レスポンスがXMLまたはJSONの場合、監視情報ページの応答詳細タブで特定の応答を定義できます。
- API応答のコンテンツチェックを実施する場合は、応答のコンテンツチェックを追加のチェックボックスを有効にします。有効にした場合、以下の操作を行います:
- API応答のコンテンツチェック時に確認したい含むべき内容または含まれるべきでない内容 を指定します。
- 大文字と小文字を区別する必要がある文字列のコンテンツチェックの場合は、キーワード検索で大文字小文字を区別するを有効にします。
- 正規表現を使用したコンテンツチェックを実施する場合は正規表現のチェックボックスを有効にします。詳細は正規表現のページをご参照ください。
メモ:- チェックしようとするコンテンツがAPI応答に含まれることをご確認ください。
- コンテンツ検索は、大文字と小文字を区別して行われます。2つ以上の単語を指定した場合は、それぞれの単語に対してコンテンツ検索が行われます。半角スペースは区切り文字として機能します。
- 例えば、コンテンツに「applications manager」と指定した場合、「applications」と「manager」を別々に検索します。半角スペースを含む文字列すべてに対してコンテンツ検索を実施する場合は、ダブルクォーテーション(")を使用して"applications manager"のように文字列を指定してください。
- パラメーター転送で値を抽出するために、適切な応答形式を選択します。正規表現、JSONPath表現、XPath表現が使用可能です。(テキスト、XML、JSON)
- API応答から値を取得するために必要な追加パラメーター を、「値名-値」のペア形式で指定します。値は、API応答のタイプに基づいて指定します。
- テキストの場合、正規表現で指定します。
- JSONの場合、JSONPath表現で指定します。
- XMLの場合、XPath表現で指定します。
詳しくはパラメーター転送をご参照ください。 - API応答から値を取得するために必要な応答ヘッダーを、「値名-値」のペア形式で指定します。 値は正規表現で指定します。
上記すべての詳細情報を入力したら、保存をクリックします。
- REST APIシーケンス監視を監視グループに関連付ける場合、監視グループから監視グループを選択します(任意)。関連付ける監視グループを複数選択できます。
- 監視追加をクリックします。REST APIシーケンスをネットワークから検出し、監視を開始します。
メモ:1つの監視につき、最大25ステップが指定できます。
パラメーター転送
パラメーター転送は、連続したリクエスト間におけるデータの受け渡し・データの検証を行うために使用します。API応答からXPath、JSONPath、または正規表現を使用して個々の値を抽出し、カスタムパラメーターとして保存できます。また、応答ヘッダーから正規表現を使用して値を抽出することもできます。これらのパラメーターは、後続のステップでカスタムクエリー文字列やPOSTデータを構築するために使用できます。テキスト、XML、JSONのいずれかの応答データ形式を選択すると、正規表現、XPath表現、JSONPath表現によるアサーションを作成できます。連続するステップのHTTPリクエストに${Parameter}引数を呼び出すと、呼び出された式アサーションの出力値がステップ検証シナリオで使用されます。
監視されるパラメーター
監視タブをクリックし、監視カテゴリービューに移動します。Webサーバー/サービスセクションのREST APIシーケンスをクリックすると、REST APIシーケンス監視の一括設定ビューが表示されます。一括設定ビューは3つのタブから構成されます:
- 可用性タブには、過去 24 時間または 30 日間の可用性の履歴が表示されます。
- パフォーマンスタブには、過去24時間または30日間のステータスとイベントが表示されます。
- リストビューでは、一括設定が可能です。
REST APIシーケンス監視で表示されるメトリックの一覧と対応するタブは以下の通りです:
パフォーマンス概要
パラメーター | 説明 |
---|---|
平均応答時間 | シーケンス内のすべてのAPIについて、完全な応答を得るまでに要した平均時間(ミリ秒) |
トランザクション時間 | シーケンス内のすべてのトランザクションを完了するのに要した合計時間(ミリ秒) |
ステップ応答時間 | 記録したステップで、APIの応答を得るまでに要した合計時間(ミリ秒) |
ページサイズ | 記録されたステップにおける、APIの合計応答サイズ(バイト) |
応答詳細
パラメーター | 説明 |
---|---|
REST APIシーケンス | |
ステップ名 | 記録されたステップの名前 |
応答時間 | 記録したステップでAPI応答を得るまでの時間(ミリ秒) |
DNS時間 | ドメイン解決に要した時間(ミリ秒) |
接続時間 | サーバーとのTCP接続確立に要した時間(ミリ秒) |
(初期応答時間)First Byte Time | サーバーへの接続が確立してから、最初のAPI応答を得るまでの時間(ミリ秒) |
ダウンロード時間 | API応答の最後のバイトを受信するために要した時間(ミリ秒) |
ページサイズ | 記録されたステップにおけるAPIの総応答サイズ(バイト) |
応答 | 記録したステップで取得したAPI応答を表示します。API応答にカスタム属性を定義することで、特定の値を監視することも可能です。詳細はこちらをご参照ください。 |
API応答のカスタム属性
API応答の特定の値を監視するための属性を、ユーザーが独自に定義できます。
- 応答がXMLタイプの場合: XSLT変換を使用し、監視する特定の値を定義できます。以下の条件を満たすことをご確認ください:
- 出力メソッドが「テキスト」であり、以下の構文のもの
<xsl:output method="テキスト"/>
- 最終的な出力が属性名::属性値の形式であること
Days:<xsl:value-of select="days"/>
上記の例の場合、API応答に存在する<days>タグの値を値とする属性「Name」が作成されます。
- 出力メソッドが「テキスト」であり、以下の構文のもの
- 応答がJSONタイプの場合 JSONスキーマを使用して、ユーザー定義の属性を設定できます。以下の条件を満たすことをご確認ください:
- 属性が属性名::属性値の形式で定義されていること。
例: Temperature::response.weather.temperature
上記の例は、返された温度変数の値を含む属性名「Temperature」が作成されます。 - 複数のJSONスキーマを定義する場合、改行を区切りとすること
- JSONにドット(.)が含まれる場合、「_sep_」に置き換えます。ドット(.)を含む個々のキーすべてに対して置き換えを行う必要があります。上記の温度変数の例の場合、最後のキー「temperature」が「temperature.celsius」として定義されていたとすると、Temperature::response.weather.temperature_sep_celsiusのように置き換えます。
- 属性が属性名::属性値の形式で定義されていること。