Application Insights SDK の自己診断ログを収集する方法
Application Insights SDK を使用して Application Insights 自動インストルメンテーションまたは手動インストルメンテーションを使用してアプリケーションをインストルメント化すると、Application Insights SDK 自体に問題が発生する可能性があります。 このシナリオでは、Application Insights の問題を特定して診断するために、Application Insights SDK の診断ログが必要です。
この記事では、次の Application Insights SDK の自己診断ログを収集する方法について説明します。
- Application Insights .NET/.NET Core Framework SDK
- Application Insights Java 2.x
- Application Insights Java 3.x
Application Insights .NET/.NET Core Framework SDK
Application Insights .NET/.NET Core Framework SDK のバージョン 2.18.0-beta2 以降では、SDK 自体からログをキャプチャし、指定されたディレクトリ内のログ ファイルに書き込む "自己診断" 機能が提供されます。
自己診断の構成
次の内容を含む ApplicationInsightsDiagnostics.json という名前のファイルを使用して自己診断を構成します。
{
"LogDirectory": "<LogDirectory>",
"FileSize": <FileSize>,
"LogLevel": "<LogLevel>"
}
Note
- 自己診断用の構成ファイルには、Application Insights .NET/.NET Core Framework SDK が解析するための有効なパラメーターが必要です。 ファイルが無効または形式が正しくない場合、SDK はそのファイルを無視し、自己診断は有効になりません。 ただし、これは監視対象アプリケーションの正常な機能には影響しません。
- この構成ファイルは、4 KB 以下にする必要があります。 それ以外の場合は、最初の 4 KB のコンテンツのみが読み取られます。
- Application Insights .NET/.NET Core Framework SDK は、10 秒ごとに構成ファイルの読み取りを試み、ログ ファイルを作成または循環して上書きします。
構成パラメーターの説明を次に示します。
構成パラメータ | 説明 |
---|---|
LogDirectory |
ログ ファイルが格納されているディレクトリ。 絶対パスまたは Web アプリケーションの現在の作業ディレクトリへの相対パスを指定できます。 このログ ファイルには、20220307-193542.w3wp.exe.7692.logなど、YearMonthDay-HourMinuteSecond.ExecutableName.ProcessId.logという名前が付けられます。 ファイル名は、ファイルの作成時に生成されるタイムスタンプで始まります。 |
FileSize |
ログ ファイルのサイズを KB 単位で指定する正の整数。 この値は 1 メガバイト (MB) から 128 MB (両端を含む) である必要があります。または、最も近い上限または下限に丸められます。 ログ ファイルは、この構成済みの最大サイズを超えません。 |
LogLevel |
キャプチャするイベントのレベル。 この値は、 EventLevel のいずれかのフィールドと一致する必要があります。 重大度レベルが低いほど、重大度レベルが高くなります (たとえば、 Warning には Error レベルと Critical レベルが含まれます)。 |
Web アプリケーションの自己診断
自己診断を有効にするには、Web アプリケーションの現在の作業ディレクトリに移動し、 ApplicationInsightsDiagnostics.json 構成ファイルを作成します。
自己診断を無効にするには、構成ファイルを削除します。 Web アプリケーションの実行中でも、アプリケーションを再起動しなくても自己診断を有効または無効にすることができます。
ほとんどの場合、アプリケーションと共にファイルをドロップできます。 現在の作業ディレクトリを見つけるには、次の 2 つの方法があります。
Windows では、プロセス エクスプローラーを使用します。
プロセス エクスプローラーを開き、プロセスを選択し、 Properties ダイアログ ボックスを開きます。 Image ファイルで現在のディレクトリを探します。
GetCurrentDirectory
メソッドとAppContext.BaseDirectory
メソッドを呼び出して、現在の作業ディレクトリを取得します。
Windows での App Service Web アプリの自己診断
Azure portal から App Service Web アプリに移動します。
[ Advanced Tools>Go を選択して、Kudu ページに移動します。
Kudu ダッシュボードで、 Debug コンソール>CMDを選択します。
App Service Web アプリがあるディレクトリ ( D:\home\site\wwwroot など) に移動します。
Kudu ダッシュボードの上部にある "+" 記号を使用して、 wwwroot フォルダーに新しいファイルを作成し、 ApplicationInsightsDiagnostics.jsonする名前を付けます。
ApplicationInsightsDiagnostics.json ファイルは、<drive>:\home\site\wwwroot フォルダーに配置する必要があります。 すべての App Service Web Apps が同じドライブに存在するわけではありません。 一部は C: ドライブ上にあり、一部は D: ドライブ上にある可能性があります。 それを見つけるには、既定の Kudu ページの Site フォルダー および Temp フォルダー フィールドを確認します。
次の構成を編集して、 ApplicationInsightsDiagnostics.json ファイルに追加します。
{ "LogDirectory": "<drive>:\home\site\wwwroot", "FileSize": 5120, "LogLevel": "Verbose" }
Note
LogDirectory
パラメーターは、簡単にアクセスできるように <drive>:\home の下の場所に設定する必要がありますが、十分なアクセス権がある場合は他の場所が有効です。ファイルを保存します。
10 秒後、 20220307-193542.w3wp.exe.7692.logなどの新しいログ ファイルが wwwroot フォルダーに表示されます。
構成ファイルを削除するか、 ApplicationInsightsDiagnostics.bakに名前を変更します。
10 秒後、ログ記録は停止します。
Linux での App Service Web アプリの自己診断
ローカル コンピューターでファイルを作成し、 ApplicationInsightsDiagnostics.jsonに名前を付けます。
ファイルを編集し、次の内容を追加します。
{ "LogDirectory": ".", "FileSize": 5120, "LogLevel": "Verbose" }
ファイルを保存します。
Azure portal から App Service Web アプリに移動します。
[ Advanced Tools>Go を選択して、Kudu ページに移動します。
ブラウザー セッションが開始されたら、URL の末尾に
/newui
を追加します。 ブラウザーの URL はhttps://<appname>.scm.azurewebsites.net/newui
のようになります。Enter キーを押します。 新しい UI が表示された Kudu ページが開きます。
左側のメニューで、[ファイル マネージャーを選択します。
Site フォルダーを選択し、wwwroot フォルダーを選択します。
ApplicationInsightsDiagnostics.json ファイルを wwwroot フォルダーにドラッグ アンド ドロップします。
10 秒後、新しいログ ファイルが wwwroot フォルダーに表示されます (例: 20220307-193542.w3wp.exe.7692.log)。
構成ファイルを削除するか、 ApplicationInsightsDiagnostics.bakに名前を変更します。
10 秒後、ログ記録は停止します。
Application Insights Java 2.x
Application Insights Java 2.6 以前のバージョンの診断ログを収集できます。 これを行うには、ApplicationInsights.xml構成ファイルのルート ノードの下 (プロジェクトの resources フォルダー内) に<SDKLogger>
要素を追加します。 <SDKLogger>
要素では、ロガーにファイルへの出力を指示できます。
ApplicationInsights.xml ファイルの例を次に示します。
<SDKLogger type="FILE"><!-- or "CONSOLE" to print to stderr -->
<Level>TRACE</Level>
<UniquePrefix>AI</UniquePrefix>
<BaseFolderPath>C:/agent/AISDK</BaseFolderPath>
</SDKLogger>
詳細については、「 Java Web プロジェクトでの Azure アプリlication Insights のトラブルシューティングを参照してください。
Application Insights Java 3.x
Application Insights Java 3.x の診断ログは、"自己診断" 機能を使用して収集できます。 これを行うには、 自己診断を参照してください。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。