Azure Websites の Diagnostics as a Service (DaaS) に関するアップデート
このポストは、12 月 1 日に投稿された New Updates to DaaS – Diagnostics as a Service for Azure Websites の翻訳です。
Microsoft Azure Websites では Diagnostic as a Service (DaaS) Site Extension の初回リリース以降、いくつかの新機能の追加と機能強化が実施されました。
その中の最近の DaaS Site Extension の更新についてご紹介します。
1) PHP プロセス レポート
PHP で開発されたアプリケーションは、遅い応答のトラブルシューティングや制限時間内でのプロセスのスナップショットの把握には向いていません。従来の DaaS でサポートされていた PHP ダンプの取得および分析機能では、さまざまな情報が得られる反面、ダンプの保存と分析に多くの時間とリソースを要していました。特に多数の PHP-CGI 処理時 (PHP コードを実行する処理) には顕著でした。このような場合の効率改善のために、マイクロソフトは新たに、実行中の PHP プロセスにアタッチでき、ダンプを取得せずに PHP プロセス レポートを処理する機能を追加しました。この機能では、次のような内容を確認できます。
サイト上で実行中の全 PHP プロセスの一覧
各 PHP-CGI プロセスの詳細情報
2) PHP エラー ログ アナライザー
サイト所有者が PHP のエラー ログ (php-errors.log) を直接 DaaS Site Extension から収集し、分析できるようになります。既定では、PHP アプリケーションで例外が発生するたびに php-errors.log が生成されるようになっています。このログは、お客様の logfiles ディレクトリに格納されます。PHP のエラー ログ処理レポートは、次の機能を使用して作成されます。
一意の PHP イベント (エラー、警告、解析エラーなど) の解析後、重複するイベントが削除され時系列順に表示されます。
このレポートでは次の内容を確認できます。
- 24 時間以内に発生した PHP の致命的なエラー
- 7 日間以内に発生した PHP の致命的なエラー
- 24 時間以内に発生した PHP の解析エラー
- 7 日間以内に発生した PHP の解析エラー
- すべての致命的なエラー
- エラー発生回数上位 10 の PHP ページ
3) DaaS サイトの機能強化
- すべてのバージョンの PHP に対応する PHP シンボルが事前に Websites 環境で読み込まれているため、サイト所有者が操作することなく、実行中の PHP プロセスとダンプ分析に適切なシンボルが自動で適用されます。
- カスタム シンボルのサポートにより、サイト所有者は、DaaS でのダンプ分析で使用するためのカスタム モジュール用シンボルをアップロードできます。このシンボルは、FTP または任意のデプロイ方法にて D:\home\Symbols にアップロードできます。これにより、カスタム モジュールでも、行単位の詳細なコード分析結果をいつでも得ることができます。
- Web サイトの設定を自動で認識し、使用可能なコレクターとアナライザーを決定します。データ収集のログ記録を有効化する方法が表示されますので、こちらもご覧ください。
- コマンド ラインからの DaaS 機能の利用および Web API への対応 (DaaSConsole.exe) によって、診断タスクの自動化が可能になりました。サイト所有者は、DaaS のコマンド ラインからセッションの作成や表示、キャンセルができます。自動復旧機能で検出された条件で DaaS セッションを開始する場合、このコマンド ラインは、D:\home\data\DaaS\bin ディレクトリの Kudu CMD コンソールから実行することができます。
[Syntax]
D:\home\data\DaaS\bin>daasconsole.exe
Usage: DaasConsole.exe -<parameter1> [param1 args] [-parameter2 ...]
Parameters:
-Troubleshoot <Diagnoser1> [<Diagnoser2> ...] [TimeSpanToRunForInSeconds]
Create a new Collect and Analyze session with the requested diagnosers. Default TimeSpanToRunForInSeconds is 30
-CollectLogs <Diagnoser1> [<Diagnoser2> ...] [TimeSpanToRunForInSeconds]
Create a new Collect Only session with the requested diagnosers. Default TimeSpanToRunForInSeconds is 30
-CollectKillAnalyze <Diagnoser1> [<Diagnoser2> ...] [TimeSpanToRunForInSeconds]
Create a new Collect Only session with the requested diagnosers, kill the main site's w3wp process to restart w3wp, then analyze the collected logs. Default TimeSpanToRunForInSeconds is 30
-ListDiagnosers
List all available diagnosers
-ListSessions
List all sessions
-GetSasUri
Get the blob storage Sas Uri
-SetSasUri <SasUri>
Set the blob storage Sas Uri
-Setup
Start the continuous webjob runner (if it's already started this does nothing)
-GetSetting <SettingName>
The the value of the given setting
-SetSetting <SettingName> <SettingValue>
Save new value for the given setting
-ListInstances
List all live instances
-AnalyzeSession <SessionId>
Begin analysis for session with the specified ID
-CancelSession <SessionId>
Cancel session with the specified ID
[Examples]
To list all diagnosers run:
DaasConsole.exe -ListDiagnosers
To collect and analyze memory dumps of w3wp.exe with 60 seconds interval, just run
DaasConsole.exe -Troubleshoot "Memory Dump" 60
To collect memory dumps, kill w3wp, and then analyze the logs run
DaasConsole.exe -CollectKillAnalyze "Memory Dump" 60
To specify a custom folder to get the diagnostic tools from, set the DiagnosticToolsPath setting to the desired location
- ダンプの取得および分析の際に SCM プロセスはスキップされ、Websites の Worker プロセスのみを取得します。
- ダンプ生成は 1 回のみに制限されます。