クラウドサービス:診断サポートの改善
今回のリリースでは、クラウドサービスの診断サポートにも大きな改良がいくつか行われています。
簡単な診断の構成
Visual Studioは、いくつかのバージョンにWindows Azureの診断を有効にしています。
今回のWindows Azure .NET SDKリリースでは、適切な診断データ収集計画に基づいたデータを活用して、エラーの発見および本番環境での便利な情報が簡単に提供できるようにしました。
Visual Studioソリューションエクスプローラにあるクラウドサービスロールを右クリックすると、そのためのConfigurationが引き出せます。
今回のSKDリリースでは、その中のDiagnosticsセクションが更新されています。
デフォルトの.NETトレースリスナーおよびTrace.TraceErrorコードでとらえたエラーを、どのように収集して保存するかが構成できるようになったこのDiagnosticsセクションは、コードや設定および初期化は一切必要なく利用できます。実行時に使用したい収集計画を、Errors Only[デフォルト]、All Information、Custom Planから指定できます。
Custom Planは非常にリッチで、エラーレベル、パフォーマンスカウンター、インフラのログ、収集の頻度など、細かい制御ができます。
上記の構成UIを通じて行った診断計画は、diagnostics.wadcfg XMLファイルに保存されます。
サーバーエクスプローラ内でクラウドサービス・ロール・ノードを開くと、ファイルがあるので、必要に応じて直接テキストエディタで設定を編集できます。
ファイルはソースコードと一緒に保存されるので、ソース制御の下で管理できます。
またクラウドサービスでも展開でき、アプリケーションの再展開なく変更が可能です(以下に本番の更新方法をカバーしています)。
本番サービス上の診断を確認
今回のリリースで、Visual Studioで直接クラウドサービスから本番の診断データを、非常に簡単に開発者が確認できるようにし、またクラウドサービス上でより詳細な診断データをとらえるかどうかの切り替えを、クラウドサービスを再展開しなくてもできるようになりました(これにより本番の問題をより素早くデバッグできます)。
すべてのクラウドサービスで、本番サービスのエラーやその他の重要なステータスの簡単な概要を、Visual StudioでView Diagnostics Dataコマンドをクリックすると確認できます。
このコマンドは、Visual Studioサーバーエクスプローラにあるクラウドサービス内の各ロールノードを表示させます。
このコマンドを実行すると、Windows Azure内のクラウドサービスに対する診断テーブルにクエリを投げ、最新データの簡単な概要を一覧化します。以下の例では、SQL DBに接続するためのアプリの構成を更新し忘れていたために、展開されたサービスでストアドプロシージャのコールに失敗していることが確認できます。
より詳細な診断データは、クラウドサービスの診断Storageアカウントに保存されています。View all dataリンクをクリックして進みます。これは、新しいWindows Azure Storage Tableビューワです。クエリビルダーを利用すると、診断データのビューを変更できます。以下の例では、TimeStamp(Virtual)に対するクエリにより、5:48PM以降に発生したものにフィルターをかけています。これは、データが収集もしくは転送された時間ではなく、サービスで発生した時間を参照しています。
これにより、問題点を確認するための履歴ログの調査がより簡単になります。