Azure Internet Analyzer (Preview) を試してみた (フィードバック編)

[前回の記事](https://qiita.com/tetsuya-ooooo/items/f83c1388940cdde73c7a)の「[スコアカードを確認](https://qiita.com/tetsuya-ooooo/items/f83c1388940cdde73c7a#%E3%82%B9%E3%82%B3%E3%82%A2%E3%82%AB%E3%83%BC%E3%83%89%E3%82%92%E7%A2%BA%E8%AA%8D)」した際は、「カスタムエンドポイントの測定がカウントされない」と書きました。その後、いろいろ進展がありましたので、続きを書いていきます。


# 気持ちを改めて

その後、年明けて、改めて[プロファイルを作成](https://qiita.com/tetsuya-ooooo/items/f83c1388940cdde73c7a#azure-internet-analyzer-%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)して、[テストを構成](https://qiita.com/tetsuya-ooooo/items/f83c1388940cdde73c7a#%E3%83%86%E3%82%B9%E3%83%88%E3%82%92%E6%A7%8B%E6%88%90%E3%81%99%E3%82%8B)して、[JavaScript クライアントを組み込んで](https://qiita.com/tetsuya-ooooo/items/f83c1388940cdde73c7a#javascript-%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%82%92%E7%B5%84%E3%81%BF%E8%BE%BC%E3%82%80)みた (以前と変わらない設定、手順で) ところ、スコアカードにカスタムエンドポイントのログが出力されるようになりました。:blush:

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230264/b400f8f4-f181-49fe-8798-c7c019d399bb.png)

※検証シナリオは以下のとおりでした。(おさらい)

> - Web アプリケーション... Azure 東日本の Web Apps 上のアプリケーション
> - Endpoint A (ETROBOJP-EP)... 上記アプリケーション内に設置 (カスタムエンドポイント)
>  - 現 Web サーバーとの間のレイテンシを測定
> - Endpoint B (JAPANWEST-EP)... Azure 西日本の構成済みエンドポイント
>  - ここに置いたら…と仮定した場所との間のレイテンシを測定

それでは、前回の記事でちゃんとできていなかった「スコアカードを確認」してみましょう。


# スコアカードを確認 (改めて)

[参考：スコアカードの解釈](https://docs.microsoft.com/ja-jp/azure/internet-analyzer/internet-analyzer-scorecard?WT.mc_id=AZ-MVP-5003113)


## 測定数

公式ドキュメントに書かれているとおり、「カウントが大きいほど、結果は正確」となり、分析の信頼性が高くなります。エンドポイント A と B の測定カウントは近い値になるはずです (わずかな違いはあるが、問題なし) が、あまりにも測定カウントに大きな違いがある場合、信頼できない分析結果となってしまいます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230264/61269280-e1f7-2dcf-37d6-2bb1158596d6.png)


## パーセンタイル

「パーセンタイル」とは、データを昇順に並べて、小さいほうから数えて任意の％に位置する値のことを指します。
たとえば、「P50」は、データの真ん中に位置する測定値を示しています。一般的な待機時間を把握する場合はこの値を見ます。最も悪い待機時間は「P95」の値を見ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230264/c4f90a1d-c5ff-0f06-4fa4-547ed2108c64.png)


## 差分 (Delta)

エンドポイント A と B のメトリック値の差です。この値が正の値の場合はエンドポイント B が A より優れている、負の値の場合はその逆となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230264/6e6a4757-2472-19d7-66af-f3a7c1420bc1.png)


## 95% CI (信頼区間)

95% の頻度で測定値が示した範囲となったことを表します。
たとえば、「P50 の 95% CI」は、「中央値に位置するほとんどの測定カウントの待機時間 (ms) はこの範囲でした」ということを示しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230264/3b9211b6-fa54-9844-3f28-07ef52aec3d6.png)


## 時系列

測定値が時間とともにどのように変化しているかを表します。
平日・休日、日中・夜間のレイテンシーの違いが分かりやすく、イチバン目に付くところだと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230264/bdb3b395-87a5-86dd-f3c9-1119423ebec9.png)


# フィードバックしました

[前回の記事に書いたとおり](https://qiita.com/tetsuya-ooooo/items/f83c1388940cdde73c7a#%E3%81%8A%E3%81%BE%E3%81%91)、Azure Internet Analyzer プロダクトマネージャーである [Megan Beatty](https://twitter.com/_meganbeatty) さんとお話しする機会を得ることができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230264/83b42a6d-7182-6539-d035-ba1b92cc2bfd.png)

そのやり取りする際、「英語が上手に話せず、伝えたいことがちゃんと伝わるかとても心配だ」ってメールを返したら、通訳してくれる方もアサインしていただけました。恐れずトライしてみるものですね。とてもやさしい対応で感動しました。:joy:


## ミーティングのメンバー

- [Megan Beatty](https://twitter.com/_meganbeatty) さん
 - Azure Internet Analyzer のプロダクトマネージャー。[Microsoft Ignite The Tour Tokyo](https://www.microsoft.com/ja-jp/ignite-the-tour/Tokyo) で私がお話していたところを見つけた方。:heart_eyes:
- [Diego Perez Botero](https://www.linkedin.com/in/diego-perez-botero-8529a422/) さん
 - Azure Internet Analyzer のテックリード ("テックリード"をわかりやすく言うと「エンジニアチームの窓口兼リーダー」)。当日、私が困ったことをいろいろと調べてくれり、答えてくれた方。この記事のチェックもしてくれた！:heart_eyes:
- [Kayoko Nakano Gray](https://www.linkedin.com/in/kayoko-nakano-gray-7011583/) さん
 - サービスエンジニア (CXP)。当日、私のおぼつかない日本語 (英語も?) を通訳していただいた方。:heart_eyes:
- [筆者](https://mvp.microsoft.com/ja-jp/PublicProfile/5003113?fullName=Tetsuya%20Odashima)
 - 興味本位で Azure Internet Analyzer を試してみたひと。


## いろいろ聞いてみた

フィードバックなので、主にちょっと困っていることを質問してみました。

### Q. カスタムエンドポイントの測定値がスコアカードに反映されるタイミングは？

ひととおりにセットアップしてもすぐに結果が見えるものではないので、この設定が正しいのか否か分かりづらいですね。

> A.
エンドポイントの測定値がスコアカードに反映されるのに現在の仕様では「通常 6 時間」かかる。2 ～ 3 日かかる場合もある。
1 回の測定で、エンドポイントに複数回アクセスしているが、そのうちひとつでも失敗した場合はその測定カウントは「0 (ゼロ)」となる (要するにカウントされない)。

> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230264/68c9ec03-920b-d921-afbb-2a1089b720d4.png)
※ちなみに https://www.etrobo.jp/trans.gif は失敗するよ (筆者のところからだと 200 OK なんだけど、アクセス元によるのか？)

> スコアカードが表示されない場合の注意点がトラブルシューティングに書いてあるからそれも確認してね。
[参考：Azure Internet Analyzer のトラブルシューティング](https://docs.microsoft.com/ja-jp/azure/internet-analyzer/troubleshoot?WT.mc_id=AZ-MVP-5003113)


### Q. スコアカードのパーセンタイル (Latency Scorecard) に分析結果が表示される条件は？

なんとなく平日は見ることはできず、土日になるとその週の分析結果が反映されているように感じました。
どういう状態になるとスコアカードが表示されるのかが公式ドキュメントから読み取れません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230264/b0056c8c-ea37-a14a-82fd-be5604fedc03.png)
※:point_up:このスクリーンショットは 2020/1/28 に取ったもの

> A.
その日 (上のスクリーンショットでいうと 2020/1/28) に収集された測定値の分析結果は、翌日 (2020/1/29) 中にはスコアカードに反映されるよ。

> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230264/92b88c33-4c97-95e4-05b5-f5047b01f89a.png)
※:point_up:このスクリーンショットは 2020/1/29 に取ったもの

> なお、この点に関して、公式ドキュメントから読み取りづらいのはおっしゃるとおりでわれわれも認識しているし、Public Preview になれば製品自体が安定する。今後、公式ドキュメントにもどういう状態になったらスコアカードが表示されるのかということは明確に記載する。 (がんばっているよ！:grin: )
[参考：スコアカードの解釈](https://docs.microsoft.com/ja-jp/azure/internet-analyzer/internet-analyzer-scorecard?WT.mc_id=AZ-MVP-5003113)

### Q. エンドポイント A と B の構成は？

エンドポイント A と B にはそれぞれどういう位置付けで置いたら良いのでしょうか。
私は以下のように解釈しています。

> ひとつのテストは「A」と「B」の 2 つのエンドポイントで構成されます。エンドポイント B はエンドポイント A に対して相対的に分析されます。つまり、エンドポイント A の測定結果を基準に、エンドポイント B の測定結果が評価されて分析されるということ。

つまり、私がやった検証だと

- Endpoint A ... 現 Web サーバーとの間のレイテンシを測定するため
- Endpoint B ... ここに置いたら…と仮定した場所との間のレイテンシを測定するため

このようなかんじでの各エンドポイントの置き方は正しいのでしょうか？

> A.
ご認識どおり。

> - Endpoint A ... 基準となるもの、比較元、Source
> - Endpoint B ... 比較する対象のもの、比較先、Target

> [参考：Internet Analyzer とは (プレビュー) > 推奨されるテスト シナリオ](https://docs.microsoft.com/ja-jp/azure/internet-analyzer/internet-analyzer-overview?WT.mc_id=AZ-MVP-5003113#suggested-test-scenarios)
[参考：ポータルを使用して Internet Analyzer テストを作成する (プレビュー) > 構成](https://docs.microsoft.com/ja-jp/azure/internet-analyzer/internet-analyzer-create-test-portal?WT.mc_id=AZ-MVP-5003113#configuration)


## その他

その他、私が取り扱ったシナリオについてもご意見いただきました。

> 今回の検証は東日本リージョンと西日本リージョンのレイテンシを比較しようというものだけど、そもそも東日本と西日本はかなり近い位置にあるので、レイテンシの違いはほとんどないよね (10ms ～ 20ms 程度の差)。 だからシナリオ的には向いてないね。やるなら、東アジアや東南アジアと比較したほうが良いと思うよ。


# まとめ

ということで検証した結果、東日本リージョン、西日本リージョン、どちらにデプロイしてもレイテンシはほぼ変わらないということですね... :sweat_smile:

※Azure Internet Analyzer のまとめは[前回の記事でやった](https://qiita.com/tetsuya-ooooo/items/f83c1388940cdde73c7a#%E3%81%BE%E3%81%A8%E3%82%81)ので割愛。

![IgniteTourTokyo_JAZUG_LT_p27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230264/e60d0b80-00e5-78d9-b9f7-cb57733cea5a.png)