Linux でホストされている ASP.NET Core Web アプリに対して Profiler を有効にする
Application Insights Profiler for .NET を使用すると、Azure App Service 上の Linux でホストされている稼働中の ASP.NET Core Web アプリの各メソッドの実行にかかった時間を追跡できます。 この記事では、Linux でホストされている Web アプリに焦点を当てて説明します。 Linux、Windows、Mac の開発環境を使用して実験することもできます。
この記事では、次の内容について説明します。
- Linux でホストされている ASP.NET Core Web アプリケーションを設定してデプロイします。
- Application Insights Profiler を ASP.NET Core Web アプリケーションに追加します。
前提条件
- 最新の .NET Core SDK をインストールします。
- 「Getting started - Installing Git」(はじめに - Git をインストールする) の指示に基づいて Git をインストールします。
- コンテキストについては、次のサンプルを確認してください。
プロジェクトをローカルで設定する
お使いのコンピューターでコマンド プロンプト ウィンドウを開きます。
ASP.NET Core MVC Web アプリケーションを作成します。
dotnet new mvc -n LinuxProfilerTest
作業ディレクトリをプロジェクトのルート フォルダーに変更します。
プロファイラー トレースを収集する NuGet パッケージを追加します。
dotnet add package Microsoft.ApplicationInsights.Profiler.AspNetCore
任意のコード エディターで、
Program.cs
で Application Insights と .NET Profiler を有効にします。 必要に応じて、カスタム Profiler 設定を追加します。WebAPI
の場合:// Add services to the container. builder.Services.AddApplicationInsightsTelemetry(); builder.Services.AddServiceProfiler();
Worker
の場合:IHost host = Host.CreateDefaultBuilder(args) .ConfigureServices(services => { services.AddApplicationInsightsTelemetryWorkerService(); services.AddServiceProfiler(); // Assuming Worker is your background service class. services.AddHostedService<Worker>(); }) .Build(); await host.RunAsync();
変更内容をローカル リポジトリに保存し、コミットします。
git init git add . git commit -m "first commit"
プロジェクトをホストする Linux Web アプリを作成する
Azure portal で、App Service on Linux を使用して Web アプリ環境を作成します。
新しい Web アプリ リソースに移動し、[デプロイ センター]>[FTPS 資格情報] を選択してデプロイ資格情報を作成します。 後で使用するため資格情報をメモしておきます。
[保存] を選択します。
[Settings](設定) タブを選択します。
ドロップダウンで [ローカル Git] を選択し、Web アプリでローカル Git リポジトリを設定します。
[保存] を選択して、Git clone URI を使用して Git リポジトリを作成します。
デプロイ オプションの詳細については、App Service のドキュメントを参照してください。
プロジェクトのデプロイ
コマンド プロンプト ウィンドウで、プロジェクトのルート フォルダーを参照します。 App Service のリポジトリを指すように Git リモート リポジトリを追加します。
git remote add azure https://<username>@<app_name>.scm.azurewebsites.net:443/<app_name>.git
- デプロイ資格情報を作成するために使用したユーザー名を使用します。
- App Service on Linux を使用して Web アプリを作成するために使用したアプリ名を使用します。
Azure に変更をプッシュし、プロジェクトをデプロイします。
git push azure main
次の例のような出力が表示されます。
Counting objects: 9, done. Delta compression using up to 8 threads. Compressing objects: 100% (8/8), done. Writing objects: 100% (9/9), 1.78 KiB | 911.00 KiB/s, done. Total 9 (delta 3), reused 0 (delta 0) remote: Updating branch 'main'. remote: Updating submodules. remote: Preparing deployment for commit id 'd7369a99d7'. remote: Generating deployment script. remote: Running deployment command... remote: Handling ASP.NET Core Web Application deployment. remote: ...... remote: Restoring packages for /home/site/repository/EventPipeExampleLinux.csproj... remote: . remote: Installing Newtonsoft.Json 10.0.3. remote: Installing Microsoft.ApplicationInsights.Profiler.Core 1.1.0-LKG ...
Application Insights を追加して Web アプリを監視する
Application Insights を Web アプリに追加するには、次の 3 つのオプションがあります。
- Azure portal の [Application Insights] ウィンドウを使用する。
- Azure portal の [構成] ウィンドウを使用する。
- [Web アプリの設定] に手動で追加する。
Azure portal の Web アプリで、左側のウィンドウで [Application Insights] を選択します。
[Application Insights を有効にする] を選択します。
[Application Insights] で [有効化] を選択します。
[Application Insights リソースへのリンク] で、新しいリソースを作成するか、既存のリソースを選択します。 この例では、新しいリソースを作成します。
[適用]>[はい] を選択して確定します。