+
+

ラボ 3: Functional Monitoring

概要

API Functional Monitoringソリューションを使用すると、開発者と運用者は、非運用環境と運用環境の両方で API のライフサイクル全体を通じ、APIの挙動とパフォーマンスの一貫した継続的なテストを実行することができます。

API Functional Monitoringは、公開されているAPIが開発、テスト、本番環境に配信される際の品質と信頼性を向上させます。このモニタは、Anypoint Platformで開発するAPIに特化しているだけでなく、公開されているあらゆるAPIの品質と信頼性のテストを実行するために使用することもできます。

このラボでは、定期的な間隔でAPIを呼び出し、公開されているAPIの信頼性と品質を確保するためのテストを実行するAPI Functional Monitoringテストを作成します。

ステップ 1: APIコンソールでエンドポイントをテスト

  1. 前回のラボでは、Visualizerと利用可能な機能を確認しました。Visualizerに戻り、前回のラボでデプロイしたノードを選択してください。

    module6 lab3 image1
  2. アプリケーションのホスト名をコピーして貼り付け、URLの最後に /console を追加してブラウザに貼り付けてください。これでデプロイしたAPIのコンソールが開きます。

    module6 lab3 image2
  3. 機能モニターで使用するエンドポイントを選択します。エンドポイント /product/{product_id} GET を選択してみましょう。

    module6 lab3 image3

    APIをテストするには、右上の Try It をクリックします。

  4. リソースを取得するためにエンドポイントに id を与える必要があります。idには 1 を使用します。コンソールの product_id フィールドに 1 を入力し、SEND をクリックします。

    module6 lab3 image4

    ELMOのおもちゃの製品情報が出力されます。

    module6 lab3 image5
  5. これでエンドポイントが動作していることが分かるので、リクエストURL フィールドからURLをコピーして、Functional Monitoringで使用するためにメモしておきましょう。

    module6 lab3 image6

ステップ 2: Functional Monitorの作成

  1. Anypoint Platformに戻り、左上のメインメニューから Monitoring に移動し、Functional Monitoring をクリックすると、以下のようなページが表示されます:

    module6 lab3 image7a
    module6 lab3 image7b
  2. モニターを作成したいので、Create をクリックします。 最初のステップは、モニターに名前を付けることです。イニシャルと次の -omnichannel-monitor を使用します。 例えば、Max Mule の場合は、次のようになります

    mm-omnichannel-monitor

    その他の値はデフォルトのままにして下さい。

    module6 lab3 image7
  3. nextをクリックすると、プロセスのステップ2に移ります:

    module6 lab3 image8

    ここでは、APIを監視するために使用するエンドポイントとHTTPメソッドを指定する方法が表示されます。その他にコードエディタでエンドポイントを作成する事もできます。

  4. omni-channel-apiのAPIコンソールでブラウザタブに戻り、実行されたクエリのリクエストURLをコピーします。

    module6 lab3 image10

    その後、functional monitorに戻り、リクエストURLを貼り付けます。

    module6 lab3 image11
  5. 次はアサーションを追加して、API に期待している機能的な動作を確実に取得できるようにします。

    追加するアサーションは次の2つです:

    1. ステータスコード(Status code)は 200 でなければなりません。

    2. 応答本文(Response body)の id は 1 でなければなりません。

      module6 lab3 image12

      Next をクリックして続行します。

  6. ステップ3では、サードパーティの通知ツールをフィードするレポーターを追加することができます。このステップとしては、メールレポーターを追加します。

    最初のボックスでドロップダウンリストを開き、Emailを選択します。
    module6 lab3 image14

    Emailを選択したら、次のボックスに移動し、電子メールアドレスを追加し、キーボードの Enterキー を押します。必要に応じて複数のメールアドレスを入力することができます。

    メールアドレスを入力した欄に登録するには、Enterキー を押す必要があります。
  7. これでモニターの設定は完了です。最後にページ下部のcreateボタンをクリックします。

    モニターが作成され、デプロイされるまでしばらく待ちます。テストが実行され、実行結果のフィードバックが始まります。

ステップ 3: Functional Monitor の出力をレビュー

  1. タイマーマークをクリックすると、実行履歴を見ることができます。

    module6 lab3 image15
  2. テストの履歴は各実行をの概要を表示します。

    module6 lab3 image16

    テスト出力を確認するには、Detail をクリックして別のビューを開きます。

    module6 lab3 image17

    右側の下向き矢印をクリックして、入力 HTTP と出力 HTTP ヘッダとペイロードを含む実行の詳細を確認します。機能テストでエラーが発生した場合は、呼び出しの入力と出力のすべての詳細情報をファイルとしてダウンロード可能です。

    module6 lab3 image18
  3. 左側のメニューの項目をクリックして、 functional monitoringメニューに戻ります。

  4. 作成したfunctional monitorを選びます。

    functional monitorsでは、かなり高度なことが行えます。functional monitorsアクティビティをさらに活用するために、DataWeaveで記述することができるようになっています。

  5. 3点リーダー(︙)から Download monitor を選択して、テストファイルをダウンロードします。

    module6 lab3 image20

    zipファイルがダウンロードされます。アーカイブを開き、中の main.dwl ファイルを開きます。以下のようなDataWeaveコードがいくつか表示されます。

import * from bat::BDD
import * from bat::Assertions
---
suite("mm-omnichannel-monitor1") in [
  GET `http://mm-mon-omni-channel-api.us-e2.cloudhub.io/api/products/product/1` with {
  "headers": {}
} assert [
    $.response.status mustEqual 200,
$.response.body.id mustEqual 1
  ]
]

追加演習として、これらのスクリプトを自由に編集して、より高度な機能的なモニターを作成するためのプラットフォームにアップロードすることができます。 参考資料はここにあります。

まとめ

このラボでは、次の手順を完了しました:

  • APIコンソールを使用してエンドポイントをテスト

  • functional monitorを作成して実行

  • functional monitorの実行結果を確認し、DataWeaveコードで Functional Monitor がどのように構築されるかを確認

さらに学ぶには:

  • Functional Monitor についての詳細は、ドキュメント確認してください。

おめでとうございます! モジュール6の全てのラボが完了しました。

モジュール 7に進んで下さい。

Submit your feedback!
Share your thoughts to help us build the best workshop experience for you!
Take our latest survey!