
ラボ 1: Anypoint Visualizer
ステップ 1: Anypoint Visualizerの表示
新しいAPIを開発してデプロイすることで、Visualizerに表示されるようになり、その関係性を確認できるようになります。 今回のワークショップでは、すでに本番(production)でAPIがデプロイしてあります。
-
左側パネルの Visualizer に移動するか、Anypoint Platform のメインページからVisualizerに移動します。
アーキテクチャを示すグラフィックが表示されます。
-
左側のパネルで、ビジネスグループに対応するプロダクション環境を選択します。
グラフィックが表示されない場合は、Tagsセクションの alcworkshop をチェックしてください。
Anypoint Visualizerは、実行中のAPI、および検出可能なMuleアプリケーションをリアルタイムにグラフィカル表示します。 グラフを使用してアプリケーションネットワークを探索し、アプリケーションネットワーク内の各ノードのスループット、応答時間、エラーなど複数のメトリクスを表示することができます。 API を更新する必要がある場合や、障害が発生している API がある場合に、影響を受けている API を簡単に表示することができます。
画面の左側には、表示をカスタマイズするためのさまざまなフィルタが表示されます。
-
Views - 保存済みのビューを見つけることができるコンボボックスです。保存ボタンを押すことで、現在のビューを保存することもできます。
-
Environments - Production(本番環境)または Sandbox(サンドボックス環境)のAPIを確認することができます。1つまたは複数のビジネスグループを選択することができ、最終的にはすべてのビジネスグループを選択することができます。
-
Tags - デプロイされたAPIにタグを付けることができるので、それらのタグでフィルタリングすることができます。 この場合、デフォルトのデプロイされたアセットにはAlcworkshopというタグが付けられています。 次のセクションでは、独自のタグを持つAPIをデプロイして、フィルタがどのように変化するかを見てみましょう。
-
Services - デプロイされたコンポーネントをフィルタリングすることができます。
-
Export - ビューを設定したら、画像をPNGファイルにエクスポートすることができます。
アーキテクチャ、トラブルシューティング、ポリシーの3つのユースケースがあります。 ユースケースを特定することで、ニーズに合った可視化を選択することができます。
ここでは、最初の2つについて説明します。
-
アーキテクチャの可視化
アーキテクチャの可視化では、アプリケーションネットワークのトポロジーを表示します。 Anypoint Visualizerでは、ノードの表示名を変更したり、タグを追加したり、ノードをレイヤーに割り当てたりすることができます。 アーキテクチャの可視化は、目に見えるメトリクスなしでネットワークのアーキテクチャを共有できるので、ドキュメンテーションやプレゼンテーションの目的に最も役立ちます。
-
mon-omni-channel-api ノードをクリックします。
サービスに関する情報が表示されます。このカードは以下のタブに分かれています:
-
Details: ノードに関する情報を提供します。
-
Customization: ノードが割り当てられているレイヤーと、ノードに割り当てられているタグに関する情報を提供します。このセクションからノードの表示名を編集したり、レイヤーやタグを変更したりすることができます。
ノード名をカスタマイズする権限はありませんので、この項目は利用できません。 Figure 1. Selected NodeFigure 2. Detail panelFigure 3. Customize panel
-
トラブルシューティングの可視化
トラブルシューティングの可視化により、システムの健全性を表示し、パフォーマンスベースのメトリクスを評価することができます。 この可視化は、アプリや API 全体の問題や異常な動作を特定するのに役立ちます。 時間範囲によってフィルタリングされたさまざまなメトリクスを見ることができます。
利用可能なメトリクスは以下の通りです:
-
平均応答時間
-
平均スループット
-
失敗
-
平均CPU使用率
-
平均メモリ使用率
接続数に応じて色が濃淡で表現されていることに注目してください。 異なるビューを見て、グラフィックがどのように変化するかを確認してください。
Figure 4. Avg response viewFigure 5. Failures viewエラーが表示されない場合は、時間範囲を Past 24 hours(過去24時間)に変更してください。 Figure 6. Avg memory utilization view-
mon-omni-channel-api-<#> ノードをクリックします。
左側に Omni Channel APIの詳細が表示されます。
2つのパネルがあります。
-
-
Details: このセクションでは、一般的な情報を見ることができます。
-
Monitoring: 特定のメトリクスとダッシュボードを見ることができます。
カスタマイズのパラメータを変更するには、Visualizer Editor Role が必要です。 レイヤーやタグは、デプロイ時にプロパティとして設定できます。 -
詳細ビュー以外のグラフの任意の側面をクリックします。
-
Metricsで Avg response time を選択し、再度 mon-omni-channel-api-<id> をクリックします。
-
Monitoring タブをクリックします。
2つのセクションが表示されます。
-
Metrics
-
Response time
2つのボタンが表示されます:
-
-
-
View Logs: ランタイムマネージャのアプリケーション ログへのリンクです。
-
View Dashboard: モニタリングダッシュボードへのリンクです。
モニタリングダッシュボードについては、ラボ2で説明します。
ステップ 2: Omni Channel APIのデプロイ
別のOmni Channel APIをcloudhubにデプロイし、APIのストレスをかけていきます。
-
Runtime Managerに移動します。
-
左側のメニューで、Production 環境を選択します。
-
デプロイされているMuleアプリケーションを確認してみましょう。
全て、数字で終わっています。この数字は次のステップで必要になるのでメモしておきましょう。
-
Deploy applicaton ボタンを押します。
-
次の画面で、Choose file ボタンを押し、Import file from Exchange を選択します。
-
次のページで Example Typeを選択します。
-
検索アセット名の中に
omni
と入力します。 -
omni-channel-api
を選択します。 -
最後に Select を押します。
-
アプリケーション名を
<name>-omni-channel-api
で補完します。<name>を自分のイニシャルに置き換えてください。Figure 7. このようなものが表示されるはずです。 -
Properties に移動します。
-
Text View を選択します。
-
以下のプロパティをコピーして貼り付けます。
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が表示される論理層を設定します。
-
-
Deploy Application を押します。
アプリケーションがデプロイされ、起動されるのを待ちます。
-
Anypoint Visualizerに戻ります。
新しいデプロイされたアプリケーションが表示されるはずです。
Visualizerにアプリケーションが表示されない場合は、前のステップで設定したタグが選択されていることを確認してください。 -
適用されたフィルターでビューを保存するには、saveボタンを押します。
次のステップでは、このAPIにストレスをかけて、オンラインでメトリクスを確認していきます。
ステップ 3: APIに負荷をかける
このステップでは、すでにデプロイされているAPIに負荷をかけ、メトリクスが時間の経過とともにどのように変化するかを見ていきます。
Postmanでリクエストのコレクションをインポートして、数回実行してみます。
Postmanがインストールされていない場合は、 ここから 入手できます。
-
Postmanスクリプトを ここから ダウンロードしてください。
-
ダブルクリックしてzipを開きます。中には2つのファイルが入っています:
-
omni-channel.postman_collection.json
-
alc-workshop.postman_environment.json
-
-
Postmanを開きます。
-
上部の Import ボタンを押します。
-
Upload Files ボタンを押します。
-
新しい画面が開きます。
omni-channel.postman_collection.json
というファイルをインポートします。Figure 8. 左側にインポートされた7つのリクエストが表示されているはずです。 -
環境変数をインポートします。再度 Import ボタンを押下します。そして、再度 Upload Files を選択します。
-
alc-workshop.postman_environment.json
をインポートします。 -
Import ボタンを押下し、終了します。
-
含まれている環境変数を使用するためにドロップダウンリストから alc-workshop 変数を選択します。
-
画面右上のeye(目のアイコン)をクリックします。
-
current value の値(Visualizer内のホスト名)を設定します。
リクエストの1つをテストして、ホスト名の値が正しいかどうかを確認することができます。
-
コレクション名で、3つの点が並んだボタンを押し、more actions menu を開きます。そして、 Run Collection ボタンを押します。
-
次のオプションを Runner optionsに設定します。
Name Value Environment
alc-workshop
Iterations
1000
Delay
0
-
残りの値はデフォルトのままにしておきます。Run Omni Channel ボタンを押します。
-
1分待って、Visualizerのグラフに戻ります。リアルタイムで異なるメトリクスがどのように変化するかを確認してください。
最近デプロイされたAPIが、その依存関係とともにVisualizerのグラフに表示されていることに注目してください。
また、インパクト分析を行っています。 3つのシステムAPIがどのように負荷を処理しているかを見て、どれもスケールアップする必要がないことを確認してください。
-
最後にグラフを画像として書き出すことができます。
まとめ
このラボでは、以下の手順を完了しました:
-
Anypoint Visualizer の紹介
-
新しい API を導入し、Visualizer のトポロジー更新を検証
-
新しい API を呼び出し、Visualizer のパフォーマンス・メトリックの更新を検証
さらに学ぶには:
-
Visualizer についての詳細は、ドキュメント確認してください。
おめでとうございます!ラボ1が完了しました。
ラボ 2へ進んで下さい。