Azure App Service のパフォーマンスの監視Monitor Azure App Service performance

Azure App Services 上で実行されているご利用の ASP.NET および ASP.NET Core ベースの Web アプリケーションで、これまでよりも簡単に監視を有効にすることができるようになりました。Enabling monitoring on your ASP.NET and ASP.NET Core based web applications running on Azure App Services is now easier than ever. 以前は手動でサイト拡張機能をインストールする必要がありましたが、最新の拡張機能/エージェントが既定でアプリ サービス イメージに組み込まれました。Whereas previously you needed to manually install a site extension, the latest extension/agent is now built into the app service image by default. この記事では、Application Insights の監視を有効にする手順を説明し、大規模なデプロイ プロセスを自動化する準備となるガイダンスを提供します。This article will walk you through enabling Application Insights monitoring as well as provide preliminary guidance for automating the process for large-scale deployments.

注意

[開発ツール] > [拡張機能] を使用して Application Insights のサイト拡張機能を手動で追加することは、非推奨になりました。Manually adding an Application Insights site extension via Development Tools > Extensions is deprecated. この拡張機能のインストール方法は、新しい各バージョンの手動更新が必要でした。This method of extension installation was dependent on manual updates for each new version. 拡張機能の最新の安定版リリースが、App Service イメージの一部としてプレインストールされるようになりました。The latest stable release of the extension is now preinstalled as part of the App Service image. これらのファイルは d:\Program Files (x86)\SiteExtensions\ApplicationInsightsAgent にあり、安定版リリースごとに自動的に更新されます。The files are located in d:\Program Files (x86)\SiteExtensions\ApplicationInsightsAgent and are automatically updated with each stable release. 以下の監視を有効にするエージェント ベースの手順を実行すると、非推奨の拡張機能は自動的に削除されます。If you follow the agent based instructions to enable monitoring below, it will automatically remove the deprecated extension for you.

Application Insights を有効にするEnable Application Insights

Azure App Services がホストするアプリケーションについてアプリケーション監視を有効にする方法は 2 つあります。There are two ways to enable application monitoring for Azure App Services hosted applications:

  • エージェントベースのアプリケーション監視 (ApplicationInsightsAgent)。Agent-based application monitoring (ApplicationInsightsAgent).

    • 有効にするにはこの方法が最も簡単であり、高度な構成は不要です。This method is the easiest to enable, and no advanced configuration is required. 多くの場合、これは "ランタイム" 監視と呼ばれます。It is often referred to as "runtime" monitoring. Azure App Services では、少なくともこのレベルの監視を有効にすることをお勧めします。それから、お客様固有のシナリオに基づいて、手動のインストルメンテーションによる高度な監視が必要かどうかを評価できます。For Azure App Services we recommend at a minimum enabling this level of monitoring, and then based on your specific scenario you can evaluate whether more advanced monitoring through manual instrumentation is needed.
  • Application Insights SDK をインストールし、コードを介して 手動でアプリケーションをインストルメント化する方法Manually instrumenting the application through code by installing the Application Insights SDK.

    • このアプローチはカスタマイズできる部分がはるかに多いのですが、Application Insights SDK NuGet パッケージへの依存関係を追加する必要があります。This approach is much more customizable, but it requires adding a dependency on the Application Insights SDK NuGet packages. また、この方法では、最新バージョンのパッケージへの更新を自分で管理する必要があります。This method, also means you have to manage the updates to the latest version of the packages yourself.

    • エージェントベースの監視の既定ではキャプチャされないイベント/依存関係を追跡するためにカスタム API 呼び出しを行う必要がある場合は、この方法を使用する必要があります。If you need to make custom API calls to track events/dependencies not captured by default with agent-based monitoring, you would need to use this method. 詳細については、カスタムのイベントとメトリックのための API に関する記事を参照してください。Check out the API for custom events and metrics article to learn more. これは、現在、Linux ベースのワークロードで唯一サポートされているオプションでもあります。This is also currently the only supported option for Linux based workloads.

注意

エージェント ベースの監視と手動の SDK ベースのインストルメンテーションの両方が検出された場合は、手動のインストルメンテーション設定のみが受け付けられます。If both agent-based monitoring and manual SDK-based instrumentation is detected, only the manual instrumentation settings will be honored. これは、重複したデータが送信されないようにするためです。This is to prevent duplicate data from being sent. この詳細については、以下の「トラブルシューティング」セクションを参照してください。To learn more about this, check out the troubleshooting section below.

エージェント ベースの監視を有効にするEnable agent-based monitoring

注意

APPINSIGHTS_JAVASCRIPT_ENABLED と urlCompression の組み合わせはサポートされていません。The combination of APPINSIGHTS_JAVASCRIPT_ENABLED and urlCompression is not supported. 詳細については、トラブルシューティングのセクションの説明を参照してください。For more info see the explanation in the troubleshooting section.

  1. アプリ サービスの Azure コントロール パネルで [Application Insights] を選択します。Select Application Insights in the Azure control panel for your app service.

    [設定] の [Application Insights] を選択する

    • このアプリケーションの Application Insights リソースを既に設定している場合を除き、新しいリソースの作成を選択します。Choose to create a new resource, unless you already set up an Application Insights resource for this application.

      注意

      [OK] をクリックして新しいリソースを作成すると、監視の設定を適用する ように求めるメッセージが表示されます。When you click OK to create the new resource you will be prompted to Apply monitoring settings. [続行] を選択すると、新しい Application Insights リソースがアプリ サービスにリンクされ、アプリ サービスの再起動がトリガー されます。Selecting Continue will link your new Application Insights resource to your app service, doing so will also trigger a restart of your app service.

      Web アプリをインストルメント化する

  2. 使用するリソースを指定した後、アプリケーションのプラットフォームごとのデータを Application Insights でどのように収集するかを選択できます。After specifying which resource to use, you can choose how you want application insights to collect data per platform for your application. ASP.NET アプリの監視は既定でオンであり、2 つの異なる収集レベルがあります。ASP.NET app monitoring is on-by-default with two different levels of collection.

    Application Insights サイト拡張機能ページのスクリーンショット。[新しいリソースの作成] が選択されています。

それぞれのルートで収集されるデータは次のとおりです。Below is a summary of data collected for each route:

DataData ASP.NET 基本収集ASP.NET Basic Collection ASP.NET 推奨収集ASP.NET Recommended collection
CPU、メモリ、および I/O の使用状況の傾向が追加されますAdds CPU, memory, and I/O usage trends はいYes はいYes
使用状況の傾向が収集され、可用性の結果からトランザクションへの相関関係が有効になりますCollects usage trends, and enables correlation from availability results to transactions はいYes はいYes
ホスト プロセスによって処理されていない例外が収集されますCollects exceptions unhandled by the host process はいYes はいYes
負荷がかかっているときの APM メトリックの精度が上がります (サンプリングが使用される場合)Improves APM metrics accuracy under load, when sampling is used はいYes はいYes
要求/依存関係の境界を越えてマイクロサービスが相互に関連付けられますCorrelates micro-services across request/dependency boundaries いいえ (シングルインスタンス APM 機能のみ)No (single-instance APM capabilities only) はいYes
  1. 以前に applicationinsights.config ファイルで制御できたサンプリングなどの設定を構成する場合、[アプリケーション設定] で対応するプレフィックスを使用して同じ設定と対話できるようになりました。To configure settings like sampling, which you could previously control via the applicationinsights.config file you can now interact with those same settings via Application settings with a corresponding prefix.

    • たとえば、最初のサンプリング率を変更するには、MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_InitialSamplingPercentage100 の値の [アプリケーション設定] を作成できます。For example, to change the initial sampling percentage, you can create an Application setting of: MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_InitialSamplingPercentage and a value of 100.

    • サポートされるアダプティブ サンプリング テレメトリ プロセッサ設定の一覧については、コード関連ドキュメントを参照してください。For the list of supported adaptive sampling telemetry processor settings, you can consult the code and associated documentation.

クライアント側の監視を有効にするEnable client-side monitoring

ASP.NET の場合、クライアント側の監視はオプトインです。Client-side monitoring is opt-in for ASP.NET. クライアント側の監視を有効にするには:To enable client-side monitoring:

  • [設定] > [構成]Settings > Configuration
    • [アプリケーション設定] で、新しいアプリケーション設定 を作成します。Under Application settings, create a new application setting:

      名前: APPINSIGHTS_JAVASCRIPT_ENABLEDName: APPINSIGHTS_JAVASCRIPT_ENABLED

      値: trueValue: true

    • 設定を [保存] し、アプリを [再起動] します。Save the settings and Restart your app.

クライアント側の監視を無効にするには、[アプリケーション設定] から関連付けられているキーと値のペアを削除するか、値を false に設定します。To disable client-side monitoring either remove the associated key value pair from the Application settings, or set the value to false.

監視の自動化Automate monitoring

Application Insights を使用したテレメトリの収集を有効にするのに必要なのは、アプリケーション設定の設定のみです。In order to enable telemetry collection with Application Insights, only the Application settings need to be set:

利用可能な Application Insights の設定が表示された App Service のアプリケーション設定

アプリケーション設定の定義Application settings definitions

アプリ設定の名前App setting name 定義Definition Value
ApplicationInsightsAgent_EXTENSION_VERSIONApplicationInsightsAgent_EXTENSION_VERSION メインの拡張機能で、実行時の監視を制御します。Main extension, which controls runtime monitoring. ~2
XDT_MicrosoftApplicationInsights_ModeXDT_MicrosoftApplicationInsights_Mode 既定モードのみ、最適なパフォーマンスを保証するため重要な機能が有効になります。In default mode only, essential features are enabled in order to insure optimal performance. default または recommendeddefault or recommended.
InstrumentationEngine_EXTENSION_VERSIONInstrumentationEngine_EXTENSION_VERSION バイナリ再書き込みエンジン InstrumentationEngine がオンにされるかどうかを制御します。Controls if the binary-rewrite engine InstrumentationEngine will be turned on. この設定は、パフォーマンスに影響し、コールド スタート/起動時間に影響を与えます。This setting has performance implications and impacts cold start/startup time. ~1
XDT_MicrosoftApplicationInsights_BaseExtensionsXDT_MicrosoftApplicationInsights_BaseExtensions SQL と Azure テーブル テキストが依存関係呼び出しと共にキャプチャされるかどうかを制御します。Controls if SQL & Azure table text will be captured along with the dependency calls. パフォーマンスの警告: アプリケーションのコールド スタートアップ時間が影響を受けます。Performance warning: application cold start up time will be affected. この設定には InstrumentationEngine が必要です。This setting requires the InstrumentationEngine. ~1

Azure Resource Manager を使用した App Service のアプリケーション設定App Service Application settings with Azure Resource Manager

App Services のアプリケーション設定は、Azure Resource Manager テンプレートを使用して管理および構成できます。Application settings for App Services can be managed and configured with Azure Resource Manager templates. この手法は、Azure Resource Manager オートメーションで新しい App Service リソースをデプロイするとき、または既存のリソースの設定を変更するときに使用できます。This method can be used when deploying new App Service resources with Azure Resource Manager automation, or for modifying the settings of existing resources.

アプリ サービスに使用されるアプリケーション設定 JSON の基本構造を次に示します。The basic structure of the application settings JSON for an app service is below:

      "resources": [
        {
          "name": "appsettings",
          "type": "config",
          "apiVersion": "2015-08-01",
          "dependsOn": [
            "[resourceId('Microsoft.Web/sites', variables('webSiteName'))]"
          ],
          "tags": {
            "displayName": "Application Insights Settings"
          },
          "properties": {
            "key1": "value1",
            "key2": "value2"
          }
        }
      ]

アプリケーション設定が Application Insights 用に構成されている Azure Resource Manager テンプレートの例として、このテンプレートは役立ちます。238 行目以降のセクションは特に有益です。For an example of an Azure Resource Manager template with Application settings configured for Application Insights, this template can be helpful, specifically the section starting on line 238.

Application Insights の設定をすべて既定の設定にして Azure Resource Manager テンプレートを作成するには、Application Insights を有効にして新しい Web アプリを作成する場合のようにプロセスを開始します。To create an Azure Resource Manager template with all the default Application Insights settings configured, begin the process as if you were going to create a new Web App with Application Insights enabled.

Automation オプション の選択Select Automation options

App Service の Web アプリ作成メニュー

このオプションにより、必要な設定がすべて設定済みの、最新の Azure Resource Manager テンプレートが生成されます。This option generates the latest Azure Resource Manager template with all required settings configured.

App Service の Web アプリ テンプレート

以下はサンプルです。すべての AppMonitoredSite をサイト名に置き換えてください。Below is a sample, replace all instances of AppMonitoredSite with your site name:

{
    "resources": [
        {
            "name": "[parameters('name')]",
            "type": "Microsoft.Web/sites",
            "properties": {
                "siteConfig": {
                    "appSettings": [
                        {
                            "name": "APPINSIGHTS_INSTRUMENTATIONKEY",
                            "value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').InstrumentationKey]"
                        },
                        {
                            "name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
                            "value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').ConnectionString]"
                        },
                        {
                            "name": "ApplicationInsightsAgent_EXTENSION_VERSION",
                            "value": "~2"
                        }
                    ]
                },
                "name": "[parameters('name')]",
                "serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
                "hostingEnvironment": "[parameters('hostingEnvironment')]"
            },
            "dependsOn": [
                "[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
                "microsoft.insights/components/AppMonitoredSite"
            ],
            "apiVersion": "2016-03-01",
            "location": "[parameters('location')]"
        },
        {
            "apiVersion": "2016-09-01",
            "name": "[parameters('hostingPlanName')]",
            "type": "Microsoft.Web/serverfarms",
            "location": "[parameters('location')]",
            "properties": {
                "name": "[parameters('hostingPlanName')]",
                "workerSizeId": "[parameters('workerSize')]",
                "numberOfWorkers": "1",
                "hostingEnvironment": "[parameters('hostingEnvironment')]"
            },
            "sku": {
                "Tier": "[parameters('sku')]",
                "Name": "[parameters('skuCode')]"
            }
        },
        {
            "apiVersion": "2015-05-01",
            "name": "AppMonitoredSite",
            "type": "microsoft.insights/components",
            "location": "West US 2",
            "properties": {
                "ApplicationId": "[parameters('name')]",
                "Request_Source": "IbizaWebAppExtensionCreate"
            }
        }
    ],
    "parameters": {
        "name": {
            "type": "string"
        },
        "hostingPlanName": {
            "type": "string"
        },
        "hostingEnvironment": {
            "type": "string"
        },
        "location": {
            "type": "string"
        },
        "sku": {
            "type": "string"
        },
        "skuCode": {
            "type": "string"
        },
        "workerSize": {
            "type": "string"
        },
        "serverFarmResourceGroup": {
            "type": "string"
        },
        "subscriptionId": {
            "type": "string"
        }
    },
    "$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0"
}

PowerShell で有効にするEnabling through PowerShell

PowerShell を使用してアプリケーションの監視を有効にするために必要な操作は、基になるアプリケーション設定の変更のみです。In order to enable the application monitoring through PowerShell, only the underlying application settings need to be changed. 以下は、リソース グループ "AppMonitoredRG" 内の "AppMonitoredSite" という Web サイトのアプリケーションの監視を有効にし、データを "012345678-abcd-ef01-2345-6789abcd" インストルメンテーション キーに送信するように構成するサンプルです。Below is a sample, which enables application monitoring for a website called "AppMonitoredSite" in the resource group "AppMonitoredRG", and configures data to be sent to the "012345678-abcd-ef01-2345-6789abcd" instrumentation key.

注意

この記事は、Azure Az PowerShell モジュールを使用するように更新されています。This article has been updated to use the Azure Az PowerShell module. Az PowerShell モジュールは、Azure と対話するために推奨される PowerShell モジュールです。The Az PowerShell module is the recommended PowerShell module for interacting with Azure. Az PowerShell モジュールの使用を開始するには、「Azure PowerShell をインストールする」を参照してください。To get started with the Az PowerShell module, see Install Azure PowerShell. Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.

$app = Get-AzWebApp -ResourceGroupName "AppMonitoredRG" -Name "AppMonitoredSite" -ErrorAction Stop
$newAppSettings = @{} # case-insensitive hash map
$app.SiteConfig.AppSettings | %{$newAppSettings[$_.Name] = $_.Value} # preserve non Application Insights application settings.
$newAppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"] = "012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights instrumentation key
$newAppSettings["APPLICATIONINSIGHTS_CONNECTION_STRING"] = "InstrumentationKey=012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights connection string
$newAppSettings["ApplicationInsightsAgent_EXTENSION_VERSION"] = "~2"; # enable the ApplicationInsightsAgent
$app = Set-AzWebApp -AppSettings $newAppSettings -ResourceGroupName $app.ResourceGroup -Name $app.Name -ErrorAction Stop

監視の拡張機能/エージェントのアップグレードUpgrade monitoring extension/agent

バージョン 2.8.9 以降からのアップグレードUpgrading from versions 2.8.9 and up

バージョン 2.8.9 からのアップグレードは自動的に実行され、追加の操作は必要ありません。Upgrading from version 2.8.9 happens automatically, without any additional actions. 新しい監視ビットは、バックグラウンドでターゲット アプリ サービスに配信され、アプリケーションの再起動時に取得されます。The new monitoring bits are delivered in the background to the target app service, and on application restart they will be picked up.

実行している拡張機能のバージョンを確認するには、http://yoursitename.scm.azurewebsites.net/ApplicationInsights にアクセスしますTo check which version of the extension you are running visit http://yoursitename.scm.azurewebsites.net/ApplicationInsights

URL パス http://yoursitename.scm.azurewebsites.net/ApplicationInsights のスクリーンショット

バージョン 1.0.0 - 2.6.5 からのアップグレードUpgrade from versions 1.0.0 - 2.6.5

バージョン 2.8.9 以降では、プレインストールされたサイト拡張機能が使用されています。Starting with version 2.8.9 the pre-installed site extension is used. 以前のバージョンを使用している場合は、次の 2 つの方法のいずれかを使用して更新できます。If you are an earlier version, you can update via one of two ways:

  • ポータル経由で有効にしてアップグレードするUpgrade by enabling via the portal. (Azure App Service の Application Insights 拡張機能がインストールされている場合でも、UI には [有効] ボタンのみが表示されます。(Even if you have the Application Insights extension for Azure App Service installed, the UI shows only Enable button. 背後では、以前のプライベート サイト拡張機能が削除されます)。Behind the scenes, the old private site extension will be removed.)

  • PowerShell を使用してアップグレードする:Upgrade through PowerShell:

    1. プレインストールされたサイト拡張機能 ApplicationInsightsAgent を有効にするようにアプリケーション設定を指定します。Set the application settings to enable the pre-installed site extension ApplicationInsightsAgent. PowerShell で有効にする」を参照してください。See Enabling through PowerShell.
    2. Azure App Service の Application Insights 拡張機能という名前のプライベート サイト拡張機能を手動で削除します。Manually remove the private site extension named Application Insights extension for Azure App Service.

2.5.1 より前のバージョンからアップグレードする場合は、ApplicationInsigths dll がアプリケーションの bin フォルダーから削除されていることを確認します。トラブルシューティングの手順を参照してください。If the upgrade is done from a version prior to 2.5.1, check that the ApplicationInsigths dlls are removed from the application bin folder see troubleshooting steps.

トラブルシューティングTroubleshooting

以下は、Azure App Services 上で実行されている ASP.NET および ASP.NET Core ベースのアプリケーションの拡張機能/エージェント ベースの監視について、手順を追って説明するトラブルシューティング ガイドです。Below is our step-by-step troubleshooting guide for extension/agent based monitoring for ASP.NET and ASP.NET Core based applications running on Azure App Services.

注意

Java アプリケーションを監視する際に推奨される方法は、コードを変更せずに自動インストルメンテーションを使用することです。The recommended approach to monitor Java applications is to use the auto-instrumentation without changing the code. Application Insights Java 3.0 エージェントのガイドラインに従ってください。Please follow the guidelines for Application Insights Java 3.0 agent.

  1. ApplicationInsightsAgent を介してアプリケーションが監視されていることを確認します。Check that the application is monitored via ApplicationInsightsAgent.

    • ApplicationInsightsAgent_EXTENSION_VERSION アプリ設定が "2 以下" の値に設定されていることを確認します。Check that ApplicationInsightsAgent_EXTENSION_VERSION app setting is set to a value of "~2".
  2. 監視対象のアプリケーションが要件を満たしていることを確認します。Ensure that the application meets the requirements to be monitored.

    • https://yoursitename.scm.azurewebsites.net/ApplicationInsights に移動しますBrowse to https://yoursitename.scm.azurewebsites.net/ApplicationInsights

    https://yoursitename.scm.azurewebsites/applicationinsights 結果ページのスクリーンショット

    • Application Insights Extension StatusPre-Installed Site Extension, version 2.8.12.1527, is running. であることを確認しますConfirm that the Application Insights Extension Status is Pre-Installed Site Extension, version 2.8.12.1527, is running.

    • 実行中ではない場合は、Application Insights の監視を有効にする手順を実行します。If it is not running, follow the enable Application Insights monitoring instructions

    • 状態ソースが存在し、以下のようになっていることを確認します。Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.jsonConfirm that the status source exists and looks like: Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json

      • 似た値が存在しない場合は、アプリケーションが現在実行されていないか、サポートされていないことを意味します。If a similar value is not present, it means the application is not currently running or is not supported. アプリケーションが実行されていることを確認するには、手動でアプリケーションの URL/アプリケーション エンドポイントにアクセスしてみてください。これで、ランタイム情報を使用できるようになります。To ensure that the application is running, try manually visiting the application url/application endpoints, which will allow the runtime information to become available.
    • IKeyExiststrue であることを確認しますConfirm that IKeyExists is true

      • false の場合は、お客様の ikey guid を指定した APPINSIGHTS_INSTRUMENTATIONKEYAPPLICATIONINSIGHTS_CONNECTION_STRING をアプリケーション設定に追加します。If it is false, add APPINSIGHTS_INSTRUMENTATIONKEY and APPLICATIONINSIGHTS_CONNECTION_STRING with your ikey guid to your application settings.
    • AppAlreadyInstrumentedAppContainsDiagnosticSourceAssembly、および AppContainsAspNetTelemetryCorrelationAssembly のエントリがないことを確認します。Confirm that there are no entries for AppAlreadyInstrumented, AppContainsDiagnosticSourceAssembly, and AppContainsAspNetTelemetryCorrelationAssembly.

      • これらのエントリのいずれかが存在する場合は、アプリケーションから Microsoft.ApplicationInsightsSystem.Diagnostics.DiagnosticSource、および Microsoft.AspNet.TelemetryCorrelation のパッケージを削除します。If any of these entries exist, remove the following packages from your application: Microsoft.ApplicationInsights, System.Diagnostics.DiagnosticSource, and Microsoft.AspNet.TelemetryCorrelation.
      • ASP.NET Core アプリのみ: アプリケーションが Application Insights パッケージを参照している場合 (たとえば、以前に ASP.NET Core SDK を使用してアプリをインストルメント化した場合 (またはインストルメント化しようとした場合))、App Service の統合が有効にならず、データが Application Insights に表示されないことがあります。For ASP.NET Core apps only: in case your application refers to any Application Insights packages, for example if you have previously instrumented (or attempted to instrument) your app with the ASP.NET Core SDK, enabling the App Service integration may not take effect and the data may not appear in Application Insights. この問題を解決するには、ポータルで [Interop with Application Insights SDK](Application Insights SDK との相互運用) をオンにすると、Application Insights にデータが表示されます。To fix the issue, in portal turn on "Interop with Application Insights SDK" and you will start seeing the data in Application Insights

      重要

      この機能はプレビュー状態ですThis functionality is in preview

      既存のアプリの設定を有効にする

      これで、Application Insights SDK がもともと使用されていたか、使用しようとしていた場合でも、コード不要アプローチを使用してデータが送信されるようになりました。The data is now going to be sent using codeless approach even if Application Insights SDK was originally used or attempted to be used.

      重要

      アプリケーションが Application Insights SDK を使用してテレメトリを送信していた場合、そのようなテレメトリは無効になります。つまり、たとえば、Track*() メソッドなどのカスタム テレメトリ (存在する場合)、およびサンプリングなどのカスタム設定は無効になります。If the application used Application Insights SDK to send any telemetry, such telemetry will be disabled – in other words, custom telemetry - if any, such as for example any Track*() methods, and any custom settings, such as sampling, will be disabled.

PHP および WordPress はサポートされていないPHP and WordPress are not supported

PHP および WordPress サイトはサポートされていません。PHP and WordPress sites are not supported. 現時点では、これらのワークロードをサーバー側で監視するために正式にサポートされている SDK/エージェントはありません。There is currently no officially supported SDK/agent for server-side monitoring of these workloads. ただし、クライアント側の JavaScript を Web ページに追加することで PHP または WordPress サイトでクライアント側のトランザクションを手動でインストルメント化するのは、JavaScript SDK を使用することで実行できます。However, manually instrumenting client-side transactions on a PHP or WordPress site by adding the client-side JavaScript to your web pages can be accomplished by using the JavaScript SDK.

以下の表は、これらの値の意味、その根本的な原因、推奨される修正について詳細に説明したものです。The table below provides a more detailed explanation of what these values mean, their underlying causes, and recommended fixes:

問題の値Problem Value 説明Explanation FixFix
AppAlreadyInstrumented:true この値は、SDK の一部の側面が既にアプリケーションに存在することが拡張機能で検出され、拡張機能が停止されることを示します。This value indicates that the extension detected that some aspect of the SDK is already present in the Application, and will back-off. これは、System.Diagnostics.DiagnosticSourceMicrosoft.AspNet.TelemetryCorrelation、または Microsoft.ApplicationInsights への参照が原因である可能性がありますIt can be due to a reference to System.Diagnostics.DiagnosticSource, Microsoft.AspNet.TelemetryCorrelation, or Microsoft.ApplicationInsights これらの参照を削除します。Remove the references. これらの参照の一部は、特定の Visual Studio テンプレートによって既定で追加されており、以前のバージョンの Visual Studio で Microsoft.ApplicationInsights への参照が追加されている可能性があります。Some of these references are added by default from certain Visual Studio templates, and older versions of Visual Studio may add references to Microsoft.ApplicationInsights.
AppAlreadyInstrumented:true アプリケーションで ASP.NET Core 2.1 または 2.2 をターゲットにしている場合、この値は、SDK の一部の側面が既にアプリケーションに存在することが拡張機能で検出され、拡張機能が停止されることを示します。If the application is targeting ASP.NET Core 2.1 or 2.2, this value indicates that the extension detected that some aspect of the SDK is already present in the Application, and will back-off .NET Core 2.1、2.2 をご利用のお客様は、代わりに Microsoft.AspNetCore.App メタパッケージを使用することをお勧めしますCustomers on .NET Core 2.1,2.2 are recommended to use Microsoft.AspNetCore.App meta-package instead. さらに、ポータルで [Interop with Application Insights SDK](Application Insights SDK との相互運用) をオンにします (上記の手順を参照してください)。In addition, turn on "Interop with Application Insights SDK" in portal (see the instructions above).
AppAlreadyInstrumented:true この値は、以前のデプロイのアプリ フォルダーに上記の dll が存在する場合でも発生する可能性があります。This value can also be caused by the presence of the above dlls in the app folder from a previous deployment. アプリ フォルダーを消去し、これらの dll が削除されたことを確認してください。Clean the app folder to ensure that these dlls are removed. ローカル アプリの bin ディレクトリと App Service の wwwroot ディレクトリの両方を確認します。Check both your local app's bin directory, and the wwwroot directory on the App Service. (App Service Web アプリの wwwroot ディレクトリを確認するには、次のようにします。高度なツール (Kudu) > デバッグ コンソール > CMD > home\site\wwwroot)。(To check the wwwroot directory of your App Service web app: Advanced Tools (Kudu) > Debug console > CMD > home\site\wwwroot).
AppContainsAspNetTelemetryCorrelationAssembly: true この値は、アプリケーション内の Microsoft.AspNet.TelemetryCorrelation への参照が拡張機能で検出され、拡張機能が停止されることを示します。This value indicates that extension detected references to Microsoft.AspNet.TelemetryCorrelation in the application, and will back-off. 参照を削除します。Remove the reference.
AppContainsDiagnosticSourceAssembly**:true この値は、アプリケーション内の System.Diagnostics.DiagnosticSource への参照が拡張機能で検出され、拡張機能が停止されることを示します。This value indicates that extension detected references to System.Diagnostics.DiagnosticSource in the application, and will back-off. ASP.NET の場合は、参照を削除します。For ASP.NET remove the reference.
IKeyExists:false この値は、インストルメンテーション キーが AppSetting APPINSIGHTS_INSTRUMENTATIONKEY に存在しないことを示します。This value indicates that the instrumentation key is not present in the AppSetting, APPINSIGHTS_INSTRUMENTATIONKEY. 考えられる原因:値が誤って削除された、自動化スクリプトで値を設定し忘れたなどの原因が考えられます。Possible causes: The values may have been accidentally removed, forgot to set the values in automation script, etc. 設定が App Service アプリケーション設定に存在することを確認します。Make sure the setting is present in the App Service application settings.

APPINSIGHTS_JAVASCRIPT_ENABLED と urlCompression はサポートされていませんAPPINSIGHTS_JAVASCRIPT_ENABLED and urlCompression is not supported

APPINSIGHTS_JAVASCRIPT_ENABLED=true を使用する場合 (この場合、コンテンツがエンコードされます)、次のようなエラーが発生する可能性があります。If you use APPINSIGHTS_JAVASCRIPT_ENABLED=true in cases where content is encoded, you might get errors like:

  • 500 URL 書き換えエラー500 URL rewrite error
  • 500.53 URL 書き換えモジュール エラー。HTTP 応答のコンテンツがエンコード ('gzip') されている場合、アウトバウンド書き換えルールを適用することはできませんというメッセージを伴います。500.53 URL rewrite module error with message Outbound rewrite rules cannot be applied when the content of the HTTP response is encoded ('gzip').

これは、APPINSIGHTS_JAVASCRIPT_ENABLED アプリケーション設定が true に設定されており、同時に content-encoding が存在することが原因です。This is due to the APPINSIGHTS_JAVASCRIPT_ENABLED application setting being set to true and content-encoding being present at the same time. このシナリオはまだサポートされていません。This scenario is not supported yet. 回避策は、アプリケーション設定から APPINSIGHTS_JAVASCRIPT_ENABLED を削除することです。The workaround is to remove APPINSIGHTS_JAVASCRIPT_ENABLED from your application settings. 残念ながら、これは、クライアント/ブラウザー側の JavaScript インストルメンテーションがまだ必要な場合、Web ペーでは手動の SDK 参照が必要であることを意味します。Unfortunately this means that if client/browser-side JavaScript instrumentation is still required, manual SDK references are needed for your webpages. JavaScript SDK での手動のインストルメンテーションに関する手順に従ってください。Please follow the instructions for manual instrumentation with the JavaScript SDK.

Application Insights エージェント/拡張機能の最新情報については、リリース ノートのページを参照してください。For the latest information on the Application Insights agent/extension, check out the release notes.

Web アプリでデプロイされた既定の Web サイトでは、クライアント側の自動監視はサポートされませんDefault website deployed with web apps does not support automatic client-side monitoring

Azure App Services で ASP.NET または ASP.NET Core ランタイムを使用して Web アプリを作成すると、1 つの静的な HTML ページがスターター Web サイトとしてデプロイされます。When you create a web app with the ASP.NET or ASP.NET Core runtimes in Azure App Services it deploys a single static HTML page as a starter website. 静的な Web ページには、IIS の ASP.NET マネージド Web パーツも読み込まれます。The static webpage also loads a ASP.NET managed web part in IIS. これにより、サーバー側のコードなし監視をテストすることはできますが、クライアント側の自動監視はサポートされません。This allows for testing codeless server-side monitoring, but does not support automatic client-side monitoring.

Azure App Services Web アプリで ASP.NET または ASP.NET Core に対するクライアント側のコードなし監視をテストする場合は、ASP.NET Core Web アプリの作成ASP.NET Framework Web アプリの作成に関する公式のガイドに従って、この記事にある監視を有効にするための手順を使用することをお勧めします。If you wish to test out codeless server and client-side monitoring for ASP.NET or ASP.NET Core in a Azure App Services web app we recommend following the official guides for creating a ASP.NET Core web app and creating an ASP.NET Framework web app and then use the instructions in the current article to enable monitoring.

接続文字列とインストルメンテーション キーConnection string and instrumentation key

コード不要の監視を使用している場合は、接続文字列のみが必要です。When codeless monitoring is being used, only the connection string is required. ただし、手動のインストルメンテーションを実行する場合は、SDK の以前のバージョンとの下位互換性を維持するためにインストルメンテーション キーを設定することをお勧めします。However, we still recommend setting the instrumentation key to preserve backwards compatibility with older versions of the SDK when manual instrumentation is being performed.

リリース ノートRelease notes

最新の更新プログラムとバグ修正については、リリース ノートを参照してくださいFor the latest updates and bug fixes consult the release notes.

次のステップNext steps