Azure Web Sites の Diagnostic as a Service (DaaS)

このポストは、7 月 8 日に投稿した DaaS – Diagnostics as a Service for Azure Web Sites の翻訳です。

Azure Web Sites は、さまざまなアプリケーション (Web サイト) をホスティングできる優れたプラットフォームです。ほとんどのアプリケーションは完成度が高く、何の問題もなく動作しますが、場合によっては問題が発生することもあります。主な原因はコード バグまたはサービス全体の問題と見られており、問題の特定および原因解析は容易ではありません。

もちろん、役に立つデータ ポイントもあります。たとえば、HTTP ログ、イベント ログ、プロセス メモリ ダンプなどです。問題は、データの利用方法です。問題を解決したり、問題の解決に役立つガイダンスを得るためには、これらのログをどう解釈するかが重要になってきます。ほとんどのユーザーは、マイクロソフトのサポートに問い合わせたり、フォーラムのコミュニティ メンバーに質問して、問題の特定や解決のヒントを得るでしょう。しかし、ボタンをクリックするだけで回答が得られれば、もっと便利だと思いませんか? その機能を提供するのが、マイクロソフトの新しい Diagnostic as a Service (略して DaaS) です。

簡単に利用できるようにするために、DaaS は Site Extension として提供されます。使い方について説明したショート ビデオはこちら (英語) です。

メモ : DaaS は Basic モードと Standard モードでのみご利用いただけます。

 

よく寄せられる質問 (FAQ)

1) DaaS にアクセスするにはどうすればよいでしょうか。

DaaS は Site Extension であり、サイトの SCM エンドポイントからアクセスできます。実際のサイト名に合わせて SCM URL を変更し、ページをブラウズします。
https://<YourSiteName>.scm.azurewebsites.net/DaaS

メモ: <YourSiteName> の位置に実際のサイト名を入力します。

ログイン画面が開き、サイト管理者の資格情報を要求するメッセージが表示されます。

 

2) DaaS はどのような状況で使用すべきですか。

今回リリースされた DaaS は、アプリケーション固有の問題の特定や原因解析に役立ちます。DaaS で診断可能な問題の主な症状は次のとおりです。

  • ŸWeb サイトの応答が遅い
  • Ÿランダム要求がタイムアウトになる
  • ŸWeb ページがハングする (完全に開かず、読み込み中のまま停止する)

DaaS は、Web サイトの健康状態のサンプルを抽出したり、必要に応じてデータの分析を行う場合にも使用できます。

 

3) DaaS で収集、分析できるデータにはどのようなものがありますか。

今回リリースされた DaaS は、次のデータに対応しています。

  • ŸWeb サイト (アプリケーション) プロセスのメモリ ダンプ
  • ŸHTTP ログ
  • Ÿイベント ログ

メモ: 今回リリースされた DaaS を使用するには、 [WEB SERVER LOGGING] をオンにし、 [FILE SYSTEM] に設定する必要があります (下のスクリーンショットを参照)。

外部ストレージに保存された HTTP ログは分析されず、エラーが表示されます。

 

4) [Diagnose Now] オプションの機能について教えてください。

このオプションは、「何か問題が発生したとき」のヘルプ ボタンとして使用します。ボタンを押すと、既定の設定で診断セッションがスタートします。既定では、Web サイトのすべての VM インスタンスのメモリ ダンプ、HTTP ログ、イベント ログが収集され、分析されます。2 分経過すると、再度メモリ ダンプが収集され、分析されます。このように、アプリケーションの状態を 2 とおり記録しておくことにより、パフォーマンス低下の問題が発生した場合にトラブルシューティングを行うことができます。すべてのオプションには、コンテキスト ヘルプが用意されています。

メモ:

  • Ÿ本番 Web サイトで診断を実行すると、データを収集し分析している間に、パフォーマンスが多少低下します。
  • Ÿ既定では、ログやレポートはユーザーのファイル システムの Data\DaaS\Logs and Data\DaaS\Reports フォルダーに保存されます。セッションが終了するたびにデータをダウンロードし、サイトから削除して、空き領域を確保することをお勧めします。データのダウンロード方法については、以下の質問 6 を参照してください。続いて、[Schedule Analysis] オプション (詳細は次項で説明) を選択し、データを保存するストレージの場所を指定することができます。こうしておけばデータを失う心配がありません。

 

5) [Schedule Analysis] オプションの機能について教えてください。

これは、診断セッションをカスタマイズするオプションです。ウィザードを使って、次の操作を行うことができます。

  • ŸDaaS セッションの実行時間または実行間隔を設定します。
  • Ÿ収集、分析するデータの種類を指定します。この画面にはコンテキスト ヘルプと警告があります。これらは、データの種類の隣をクリックすると表示されます。
  • ŸWeb サイトが複数の VM インスタンスで実行されている場合は、VM インスタンスを指定して、そのインスタンスのデータを収集、分析することができます。インスタンスを指定しなかった場合、既定ですべてのインスタンスのデータが収集、分析されます。
  • Ÿ今すぐ収集と分析を行う、または、今すぐ収集だけして分析は後で行うように選択することができます。
  • Ÿデータやレポートを保存するカスタム BLOB ストレージの場所を設定できます。一度設定するとそれが既定のオプションになり、[Diagnose Now] オプションを選択したとき、指定の BLOB ストレージにデータが保存されるようになります。

 

6) データやレポートは既定ではどこに保存されますか。

既定では、データやレポートは Web サイトのファイル システムの D:\home\data\DaaS\Reports and D:\home\data\DaaS\Logs フォルダーに保存されます。

VM からすべてのレポートとデータをダウンロードする場合、次の SCM エンドポイント URL を使用します。

https:// <YourSiteName>. scm.azurewebsites.net /Zip/ data/DaaS

メモ : <YourSiteName> の位置に実際のサイト名を入力します。

カスタム BLOB ストレージの場所を指定したセッションでは、データは指定の BLOB に保存されます。

 

カスタム BLOB ストレージではなく Web サイトのファイル システムを使用する場合は、ディスク クォータに達するのを防ぐために、診断の実行のたびに診断データをバックアップして、削除することをお勧めします。DaaS を使って VM ファイル システム上にデータやレポートを生成すると、ストレージ クォータが消費されます。

 

7) データやレポートは既定ではどこに表示されますか。

[Sessions] セクションにダウンロード リンク付きで一覧表示されます。セッションを展開すると、セッション時間、データの種類、収集および分析のステータスが表示されます。ナビゲート ボタン (小さな矢印を円で囲んだアイコン) をクリックすると、特定のセッションの詳細が表示されます。

 

8) どのような分析レポートが生成されるのでしょうか。

サポートされている 3 種類のデータのサンプル レポートのスクリーンショットを以下に掲載します。実際のレポートは、アプリケーション/Web サイトによって異なります。また、以下のスクリーンショットはレポートの冒頭部分のみです。

メモリ ダンプ

HTTP ログ

イベント ログ

 

9) PHP ログ、カスタマーアプリケーションログなど、その他のデータを収集し、分析することはできますか。

DaaS では、カスタムのデータ コレクターおよびアナライザーを作成することができます (このプロセスは現在「パワー ユーザー」向けとなっていますが、次回以降のリリースで使いやすく改善される予定です)。具体的な設定手順については、今後のブログ記事で説明します。

 

10) メモリダンプレポートに推奨事項が表示されません。また、スレッドのコール スタックがアプリケーション内の既知のメソッドに解決されません。なぜですか。

最新リリースの DaaS は、マイクロソフトのパブリック シンボル サーバーにしか対応していません。つまり、PHP のような OSS バイナリの場合、シンボルを解決することができません。将来的には、OSS バイナリやカスタム バイナリ シンボルを Web サイトのコンテンツ フォルダーにアップロードできるようになる予定です。そうなれば、シンボルが正しく解決されるようになります。