合成 API モニタリングは、現在、オンプレミスコントローラではサポートされていません。 

合成 API モニタリングを使用すると、HTTP(s)ベースの API の可用性とパフォーマンスをモニタリングできます。これらの API は、内部、外部、またはサードパーティの API であり、世界中のさまざまな地理的位置からのものである可能性があります。以下のシナリオで、プライベート API とパブリック API をモニタリングできます。

  • プライベート API
    • マイクロサービスまたは Web サービスによって公開されている API
    • Web ページ(フロントエンド)とバックエンドの間の通信に使用される API
  • パブリック API
    • 顧客に公開されている API
    • 支払いゲートウェイやマップなどのサードパーティ API
    • パートナー API

API コレクション

API コレクションは、マイクロサービスまたはアプリケーション内のすべての API または API ジョブのグループです。

API コレクションビューには、次の API の詳細が表示されます。

  • 平均可用性
  • 総 API リクエスト数
  • 平均応答時間

API コレクションを追加、表示、または削除するには、API コレクションにアクセスする必要があります。

API ジョブ

API ジョブを使用して、単一の API または一連の API をモニタリングできます。JavaScript を使用して API ジョブを作成できます。

Sample JavaScript

(async () => {
    // GET Request
    var response = await client.get("https://www.google.com/");
    console.log(response.statusCode); // 200
    console.log(response.statusMessage); // OK
    console.log(response.body); // HTML Body
     
    // POST, PUT or DELETE Request
    response = await client.post("https://www.google.com/");   
    response = await client.put("https://www.google.com/");
    response = await client.delete("https://www.google.com/");
})(); // Make sure to call the async function at the end.
CODE

JavaScript を使用して、さまざまな認証メカニズムの実装、ペイロードの暗号化、応答の解析、および応答時間、応答サイズ、応答コンテンツなどの検証ができます。

API 認証に必要なログイン情報を合成クレデンシャル Vault に保存し、JavaScript で使用することができます。

その他の JavaScript の例については、「API モニタリングスクリプト」を参照してください。

API ジョブを次のように設定できます。

  • パフォーマンスの問題に基づいてアラートイベントをトリガーする。
  • 設定された場所から API ジョブを定期的に実行する。ジョブは、任意のタイムゾーンで、任意の曜日および時間帯に実行するように設定できます。API モニタリングでサポートされている最小頻度は 1 分です。

  • ジョブの実行時間が指定された期間を超えた場合にジョブが失敗するようにタイムアウトを設定します。デフォルトでは、ジョブの実行が 5 分以内に完了しない場合に API ジョブがタイムアウトします。タイムアウトが原因で失敗したジョブは、可用性の問題を示します。
  • API ジョブの応答時間に基づいて、警告または重大なエラーのイベントをトリガーする。誤検出を避けるために、イベントをトリガーする前に特定の回数だけ再テストするように警告イベントまたは重大なイベントを設定することもできます。障害イベントのイベントステータスを表示するには、「正常性ルール違反イベント」を参照してください。

17 の AWS の場所のどこからでも API ジョブを実行できます(各場所内、または実行間隔ごとに 1 つの場所内)。

詳細については、API モニタリングジョブの設定を参照してください。

ジョブの設定を更新して、API ジョブの実行方法を変更することができます。新しいジョブを作成するか、既存のジョブを選択して [Edit] をクリックし、設定を更新します。

作成されたすべての API ジョブのリストは、[API Jobs] リストビューに表示されます。このビューで、これらの API ジョブの可用性とパフォーマンスの傾向を表示できます。特定の時間間隔の API ジョブの傾向を表示するには、時間枠フィルタを使用します。

[API Jobs] リストビューには、選択した時間間隔での平均応答サイズ、実行場所の数、および実行数も表示されます。

セッション リスト

API ジョブの各実行は、[Jobs Sessions] ビューで確認できます。 

[Records] タブの上部には、選択した API ジョブの可用性の傾向が表示されます。各 API ジョブ実行のリストは、可用性の傾向の下に表示されます。フィルタオプションを使用して、特定の条件に基づいてジョブをフィルタ処理し、トラブルシューティング中に問題に焦点を当てることができます。

ジョブレベルの期間は、ジョブスクリプトの実行に必要な時間です。ただし、[APIs] ページの下に表示される期間は、特定の API の実行に必要な時間です。

特定のセッションをクリックして、API の詳細と応答の詳細を表示します。

API Details:次のパラメータの開始時間、終了時間、継続時間などの追加の詳細を表示します。

  • Wait
  • DNS
  • TCP
  • 要求
  • 最初のバイト
  • ダウンロード
  • Total

Response Details:次の詳細を表示します。

  • ステータス コード
  • 応答所要時間
  • 応答サイズ
  • 応答の詳細
  • 応答ペイロード

いずれかの API が失敗した場合、エラーの詳細と、システムが原因を特定できる場合は理由が表示されます。成功した API の応答ペイロードが表示されます。

ジョブが 1 時間未満実行された後、応答ペイロードが表示されます。

[Charts] タブには、選択した API ジョブの可用性の傾向、応答時間の傾向、および応答サイズの傾向が表示されます。

管理者ロールを持たないユーザーは、セッションデータを表示できません。ユーザーにセッションデータの表示権限を付与する場合は、次の手順を実行します。

  1. the gear icon > [Administration] > [Roles] に移動します。
  2. ロールを選択し、[Analytics] をクリックします。
  3. [Events] で、[Type] ドロップダウンから [Synthetic Sessions ] を選択します。
  4. ユーザーが特定のコレクションのセッションデータのみを表示できるようにするには、[Can view synthetic data from the following App Keys] の下の [Add] をクリックしてアプリケーションキーを選択します。

  5. Save をクリックします。
    このロールに割り当てられたユーザーは、セッションデータを表示できます。

セッションの詳細

各 API ジョブの実行の詳細は、[Session Details] ページで確認できます。[Session Summary] には、コンソールログ、セッションサイズ、セッション時間、および場所が表示されます。

API モニタリングジョブの作成中には、JavaScript にコンソールログを含め、[Console Logs] の下にログを表示することができます。シビラティ(重大度)に基づいて次のコンソールログを追加できます。

  • Log
  • Debug
  • 情報
  • エラー(Error)
  • 警告

[View Console Logs] をクリックすると、さまざまなタイプのコンソールログが表示されます。 

ログがキャプチャされない場合は、利用できるログがないことを示すメッセージが表示されます。キャプチャされたログの数が 100 の上限に達した場合は、警告メッセージが表示されます。 

コンソールログ全体をクリップボードにコピーしたり、テキストファイルとしてダウンロードしたりすることもできます。

コンソールログには、次の制限があります。

  • API あたり 100 個のログエントリがキャプチャされる
  • 各メッセージの最大制限は 0.5 Kb または 512 文字

[Session Summary] ページの左側には、API リクエストのステータスコード、使用されたメソッド、および URL が表示されます。

右側には、API ジョブで実行された各 API の情報が表示されます。各 API の以下のパラメータの開始時間、終了時間、および期間を、このページで確認できます。

  • Wait
  • DNS
  • TCP
  • SSL および TLS
  • リクエスト日時
  • 最初のバイト
  • ダウンロード時間
  • 合計時間

API の概要

API ページには、異なるジョブのすべての API の概要が表示されます。API のリクエスト数、応答サイズ、および期間が表示されます。データを表示する時間範囲をフィルタ処理できます。

API の期間は、ジョブの期間とは異なります。API の期間は、特定の API の実行に必要な時間です。ただし、[Sessions] ページの下に表示される期間は、ジョブスクリプトの実行に必要な時間です。

API の詳細

API を選択して、[Details] をクリックすると、その特定の API の詳細を表示することができます。または、API をダブルクリックして詳細を表示することもできます。個々の API ページには、応答時間やリクエスト数などの、その API の概要が表示されます。

このページには、以下のパラメータのグラフも表示されます。

  • HTTP ステータスコードの傾向
  • 応答時間の傾向
  • 応答サイズの傾向
  • 待機時間の傾向
  • DNS 時間の傾向
  • TCP 時間の傾向
  • TLS 時間の傾向


さまざまなコレクションのジョブ全体の API トレンドを表示する

[View Options] をクリックして、表示または非表示にする列を設定できます。

[Selected Collections] オプションを使用して API をフィルタリングできます。デフォルトでは、親コレクションの API のみが表示されます。

[Selected Collections ] をクリックして、API を表示する API コレクションを選択します。選択したコレクションのすべての API が表示されます。複数のコレクションを選択すると、API がすべてのコレクションに共通の場合、その API の統合データが表示されます。

たとえば、https://www.google.com/ が 2 つのコレクションの一部である場合、表示されるデータ(リクエスト数、応答サイズ、期間など)は、両方のコレクションの累積データです。