+
+

ラボ 1: Anypoint Visualizer

概要

このラボでは、Anypoint Visualizerを使用して、問題判別の時間と解決までの平均時間を短縮し柔軟な運用を実現する方法を紹介します。

ステップ 1: Anypoint Visualizerの表示

新しいAPIを開発してデプロイすることで、Visualizerに表示されるようになり、その関係性を確認できるようになります。 今回のワークショップでは、すでに本番(production)でAPIがデプロイしてあります。

  1. 左側パネルの Visualizer に移動するか、Anypoint Platform のメインページからVisualizerに移動します。

    module6 lab1 menu

    アーキテクチャを示すグラフィックが表示されます。

    module6 lab1 landing page
  2. 左側のパネルで、ビジネスグループに対応するプロダクション環境を選択します。

    module6 lab1 visualizer topic description

    グラフィックが表示されない場合は、Tagsセクションの alcworkshop をチェックしてください。

    Anypoint Visualizerは、実行中のAPI、および検出可能なMuleアプリケーションをリアルタイムにグラフィカル表示します。 グラフを使用してアプリケーションネットワークを探索し、アプリケーションネットワーク内の各ノードのスループット、応答時間、エラーなど複数のメトリクスを表示することができます。 API を更新する必要がある場合や、障害が発生している API がある場合に、影響を受けている API を簡単に表示することができます。

    画面の左側には、表示をカスタマイズするためのさまざまなフィルタが表示されます。

    module6 lab1 visualizer topic views
    1. Views - 保存済みのビューを見つけることができるコンボボックスです。保存ボタンを押すことで、現在のビューを保存することもできます。

    2. Environments - Production(本番環境)または Sandbox(サンドボックス環境)のAPIを確認することができます。1つまたは複数のビジネスグループを選択することができ、最終的にはすべてのビジネスグループを選択することができます。

    3. Tags - デプロイされたAPIにタグを付けることができるので、それらのタグでフィルタリングすることができます。 この場合、デフォルトのデプロイされたアセットにはAlcworkshopというタグが付けられています。 次のセクションでは、独自のタグを持つAPIをデプロイして、フィルタがどのように変化するかを見てみましょう。

    4. Services - デプロイされたコンポーネントをフィルタリングすることができます。

    5. Export - ビューを設定したら、画像をPNGファイルにエクスポートすることができます。

      アーキテクチャ、トラブルシューティング、ポリシーの3つのユースケースがあります。 ユースケースを特定することで、ニーズに合った可視化を選択することができます。

      ここでは、最初の2つについて説明します。

アーキテクチャの可視化

アーキテクチャの可視化では、アプリケーションネットワークのトポロジーを表示します。 Anypoint Visualizerでは、ノードの表示名を変更したり、タグを追加したり、ノードをレイヤーに割り当てたりすることができます。 アーキテクチャの可視化は、目に見えるメトリクスなしでネットワークのアーキテクチャを共有できるので、ドキュメンテーションやプレゼンテーションの目的に最も役立ちます。

  1. mon-omni-channel-api ノードをクリックします。

    サービスに関する情報が表示されます。このカードは以下のタブに分かれています:

    1. Details: ノードに関する情報を提供します。

    2. Customization: ノードが割り当てられているレイヤーと、ノードに割り当てられているタグに関する情報を提供します。このセクションからノードの表示名を編集したり、レイヤーやタグを変更したりすることができます。

      ノード名をカスタマイズする権限はありませんので、この項目は利用できません。
      module6 lab1 node detail
      Figure 1. Selected Node
      module6 lab1 details panel
      Figure 2. Detail panel
      module6 lab1 node customize
      Figure 3. Customize panel

トラブルシューティングの可視化

トラブルシューティングの可視化により、システムの健全性を表示し、パフォーマンスベースのメトリクスを評価することができます。 この可視化は、アプリや API 全体の問題や異常な動作を特定するのに役立ちます。 時間範囲によってフィルタリングされたさまざまなメトリクスを見ることができます。

利用可能なメトリクスは以下の通りです:

  • 平均応答時間

  • 平均スループット

  • 失敗

  • 平均CPU使用率

  • 平均メモリ使用率

    接続数に応じて色が濃淡で表現されていることに注目してください。

    異なるビューを見て、グラフィックがどのように変化するかを確認してください。

    module6 lab1 avg response
    Figure 4. Avg response view
    module6 lab1 failures
    Figure 5. Failures view
    エラーが表示されない場合は、時間範囲を Past 24 hours(過去24時間)に変更してください。
    module6 lab1 avg memory
    Figure 6. Avg memory utilization view
    1. mon-omni-channel-api-<#> ノードをクリックします。

      左側に Omni Channel APIの詳細が表示されます。

      module6 lab1 api detail

      2つのパネルがあります。

  • Details: このセクションでは、一般的な情報を見ることができます。

  • Monitoring: 特定のメトリクスとダッシュボードを見ることができます。

    カスタマイズのパラメータを変更するには、Visualizer Editor Role が必要です。 レイヤーやタグは、デプロイ時にプロパティとして設定できます。
    1. 詳細ビュー以外のグラフの任意の側面をクリックします。

    2. Metricsで Avg response time を選択し、再度 mon-omni-channel-api-<id> をクリックします。

    3. Monitoring タブをクリックします。

      2つのセクションが表示されます。

      1. Metrics

      2. Response time

        module6 lab1 monitoring details

        2つのボタンが表示されます:

  • View Logs: ランタイムマネージャのアプリケーション ログへのリンクです。

    module6 lab1 log
  • View Dashboard: モニタリングダッシュボードへのリンクです。

    module6 lab1 dashboard

    モニタリングダッシュボードについては、ラボ2で説明します。

ポリシーの可視化

ポリシーの可視化 では、アプリケーションネットワークのポリシーの俯瞰図を確認できます。 どのコンポーネントが選択したポリシーに準拠しているかを表示し、セキュリティやポリシーの適用に問題が発生している可能性のある箇所を特定できます。

+ この時点でデプロイされている Mule アプリには API Manager でポリシー適用された API はありません。

ステップ 2: Omni Channel APIのデプロイ

別のOmni Channel APIをcloudhubにデプロイし、APIのストレスをかけていきます。

  1. Runtime Managerに移動します。

    module6 lab1 select arm
  2. 左側のメニューで、Production 環境を選択します。

  3. デプロイされているMuleアプリケーションを確認してみましょう。

    全て、数字で終わっています。この数字は次のステップで必要になるのでメモしておきましょう。

  4. Deploy applicaton ボタンを押します。

    module6 lab1 deploy application selection
  5. 次の画面で、Choose file ボタンを押し、Import file from Exchange を選択します。

    module6 lab1 from exchange
  6. 次のページで Example Typeを選択します。

  7. 検索アセット名の中に omni と入力します。

  8. omni-channel-api を選択します。

  9. 最後に Select を押します。

    module6 lab1 select from exchange
  10. アプリケーション名を <name>-omni-channel-api で補完します。<name>を自分のイニシャルに置き換えてください。

    module6 lab1 main deployment screen
    Figure 7. このようなものが表示されるはずです。
  11. Properties に移動します。

    module6 lab1 go to properties
  12. Text View を選択します。

  13. 以下のプロパティをコピーして貼り付けます。

    process.api.host.fulfillment=mon-order-fullfilment-api-<id>.us-e2.cloudhub.io
    domain.api.host.orders=mon-order-api-<id>.us-e2.cloudhub.io
    domain.api.host.customers=mon-customer-api-<id>.us-e2.cloudhub.io
    domain.api.host.products=mon-product-api-<id>.us-e2.cloudhub.io
    anypoint.platform.config.analytics.agent.enabled=true
    anypoint.platform.visualizer.tags=<name>-alcworkshop
    anypoint.platform.visualizer.layer=Experience

    <id>を冒頭でメモした番号に置き換えてください。

    anypoint.platform.visualizer.tags プロパティの <name> をイニシャルに置き換えます。

    最初の 4 つのプロパティは、呼び出される API のホスト名です。

    次の3つのプロパティはVisualizerプロパティです。

    • anypoint.platform.config.analytics.agent.enabled: エージェントがプラットフォームにメトリクスを送信してモニタリングや可視化を行うことを有効にします。 このパラメータがない場合、デプロイされたAPIはVisualizerに表示されず、監視されません。

    • anypoint.platform.visualizer.tags: このプロパティは、API のフィルタリングに役立ちます。

    • anypoint.platform.visualizer.layer: このプロパティは、APIが表示される論理層を設定します。

    module6 lab1 deploy properties tab
  14. Deploy Application を押します。

    アプリケーションがデプロイされ、起動されるのを待ちます。

    module6 lab1 deployed app
  15. Anypoint Visualizerに戻ります。

    新しいデプロイされたアプリケーションが表示されるはずです。

    module6 lab1 new deployed
    Visualizerにアプリケーションが表示されない場合は、前のステップで設定したタグが選択されていることを確認してください。
  16. 適用されたフィルターでビューを保存するには、saveボタンを押します。

次のステップでは、このAPIにストレスをかけて、オンラインでメトリクスを確認していきます。

ステップ 3: APIに負荷をかける

このステップでは、すでにデプロイされているAPIに負荷をかけ、メトリクスが時間の経過とともにどのように変化するかを見ていきます。

Postmanでリクエストのコレクションをインポートして、数回実行してみます。

Postmanがインストールされていない場合は、 ここから 入手できます。

  1. Postmanスクリプトを ここから ダウンロードしてください。

  2. ダブルクリックしてzipを開きます。中には2つのファイルが入っています:

    • omni-channel.postman_collection.json

    • alc-workshop.postman_environment.json

  3. Postmanを開きます。

    module6 lab1 postman icon
  4. 上部の Import ボタンを押します。

    module6 lab1 postman import
  5. Upload Files ボタンを押します。

    module6 lab1 postman upload file
  6. 新しい画面が開きます。omni-channel.postman_collection.json というファイルをインポートします。

    module6 lab1 requests imported
    Figure 8. 左側にインポートされた7つのリクエストが表示されているはずです。
  7. 環境変数をインポートします。再度 Import ボタンを押下します。そして、再度 Upload Files を選択します。

    module6 lab1 postman wheel
  8. alc-workshop.postman_environment.json をインポートします。

  9. Import ボタンを押下し、終了します。

    module6 lab1 postman import env
  10. 含まれている環境変数を使用するためにドロップダウンリストから alc-workshop 変数を選択します。

    module6 lab1 drop down list
  11. 画面右上のeye(目のアイコン)をクリックします。

    module6 lab1 eye
  12. current value の値(Visualizer内のホスト名)を設定します。

    module6 lab1 current value

    リクエストの1つをテストして、ホスト名の値が正しいかどうかを確認することができます。

  13. コレクション名で、3つの点が並んだボタンを押し、more actions menu を開きます。そして、 Run Collection ボタンを押します。

  14. 次のオプションを Runner optionsに設定します。

    Name Value

    Environment

    alc-workshop

    Iterations

    1000

    Delay

    0

  15. 残りの値はデフォルトのままにしておきます。Run Omni Channel ボタンを押します。

    module6 lab1 postman collection run
  16. 1分待って、Visualizerのグラフに戻ります。リアルタイムで異なるメトリクスがどのように変化するかを確認してください。

    module6 lab1 visualizer realtime

    最近デプロイされたAPIが、その依存関係とともにVisualizerのグラフに表示されていることに注目してください。

    また、インパクト分析を行っています。 3つのシステムAPIがどのように負荷を処理しているかを見て、どれもスケールアップする必要がないことを確認してください。

  17. 最後にグラフを画像として書き出すことができます。

    module6 lab1 save image

まとめ

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

  • Anypoint Visualizer の紹介

  • 新しい API を導入し、Visualizer のトポロジー更新を検証

  • 新しい API を呼び出し、Visualizer のパフォーマンス・メトリックの更新を検証

さらに学ぶには:

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

おめでとうございます!ラボ1が完了しました。

ラボ 2へ進んで下さい。

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