Application Insights のパフォーマンス カウンターで今まで以上に詳しい分析が可能に

執筆者: Mackenzie Frackleton (Explorer Intern, Application Insights)

このポストは、8 月 16 日に投稿された Accelerate your insights with Application Insights Performance Counters の翻訳です。

 

Visual Studio Application Insights を使って Azure Web アプリのパフォーマンス カウンターを監視できるようになりました。これまでは、アプリを監視しようとしても CPU やネットワーク使用率といったパフォーマンス カウンターを Azure ポータルで利用することができませんでした。これは、Azure Web アプリが独自のマシン上で実行されていないためです。今回、新しい Aggregate Metrics (英語) パッケージによってテレメトリが提供されるようになり、ワークロードの変化に伴うアプリのリソース使用状況を監視できるようになりました。

パフォーマンス カウンターの使用に必要な作業は、Aggregate Metrics プレリリース版の NuGet パッケージ (英語) をアプリにインストールすることだけです。このパッケージは現在 SDK Labs フィード (英語) でも提供されています。インストールすると、Azure ポータルApplication Insights のメトリックス エクスプローラーで、次のようなパフォーマンス チャートを確認できるようになります。

Performance Counters in action Azure Web アプリでは、あらゆる Web アプリ、Web サイト、API を Azure クラウド上にホストすることができます。それ加えて、Visual Studio 統合、容易なデプロイ、アジリティといった数多くのメリットを提供し続けてきました。一言で言えば、Azure Web アプリはデプロイも実行も非常にシンプルなのです。

ただし、クラウド上で実行される Azure アプリのパフォーマンス監視という点では制約がありました。Web ページと Web アプリはサンドボックス環境で実行され、同じマシン上のその他のアプリとは実行が分離されます。極端に言うと、開発者にとってこのサンドボックスは、Azure Web アプリを利用する際に金銭的コストが低くなるというメリットしかありません。アプリによるパフォーマンス カウンターへのアクセスやパフォーマンス モニターの利用を妨げているのは、このサンドボックスが原因です。デスクトップでは、パフォーマンス モニターが提供する豊富なメトリックを、わかりやすい視覚化を通して確認することができます。

perfMon

これまでにも、Azure Web アプリのパフォーマンスに関する分析情報を提供してくれるメトリックはわずかですが存在しました。しかしそれらは、パフォーマンス モニターが提供するメトリックの充実度には到底及ばない数でした。

Application Insights チームは Web アプリのパフォーマンスに関するフィードバックの完成度を高めるというニーズに応えるソリューションを、Application Insights の SDK Labs (英語) に追加しました。これこそ、パフォーマンス カウンターを集約して Application Insights 経由で Azure ポータル上に視覚化し提示するソリューションです。この Aggregate Metrics (英語) ソリューションには、メモリ使用率や CPU 使用率といったさまざまなパフォーマンス カウンターが含まれています。現在パフォーマンス カウンターは履歴データを提供していますが、今後の開発ではライブ メトリックス ストリーム (英語) の実装も予定されています。

カスタム パフォーマンス カウンター

さらに今回は、スレッドやハンドルの数など、アプリのパフォーマンスをより詳しく把握できるカスタムのパフォーマンス カウンターも実装しています。これらのカウンターは、アプリで特に必要な場合にのみ、プロジェクトに個別に追加することができます。ただし、Azure Web Apps チームから提供されるコンテンツの関係上、現時点で利用可能なカスタム カウンターの数は限定的です。カスタム カウンターを使用する (英語) 場合に必要なのは、ApplicationInsights.config ファイルを調整することだけです。この点は、その他のパフォーマンス モニターの場合と同様です。

マイクロソフトのインターン プログラム

パフォーマンス カウンターは、Application Insights の 2 人のサマー インターン生、つまり、私 Mackenzie Frackleton (英語)Mateo Torres Ruiz (英語) が、継続的なプロジェクトとして取り組み続けています。最新の開発状況は私たちの GitHub プロファイルで公開しています。ぜひクリックしてご確認ください。

まとめ

これからは、Azure Web アプリのテレメトリに関するメトリックをパフォーマンス カウンターから入手することができます。私たちはいつでも皆様のフィードバックをお待ちしています。問題を発見した場合もご希望の機能がある場合も、ぜひ Application Insights の SDK Labs リポジトリよりご意見をお寄せください。Application Insights チームはこれからも開発者の皆様に役立つ高品質なツールの提供に取り組んでまいります。引き続き、皆様からのフィードバックや新機能のご要望 (英語) をご投稿ください。