Monitorování aplikací pro Azure App Service a ASP.NET Core

Povolení monitorování webových aplikací založených na ASP.NET Core běžících na službě Aplikace Azure Service je teď jednodušší než kdy jindy. Dříve jste museli aplikaci instrumentovat ručně. Nejnovější rozšíření nebo agent je teď ve výchozím nastavení integrovaný do image služby App Service. Tento článek vás provede povolením monitorování Přehledy aplikací služby Azure Monitor. Poskytuje také předběžné pokyny pro automatizaci procesu pro rozsáhlá nasazení.

Poznámka:

Podpora příjmu dat založeného na instrumentačním klíči skončí 31. března 2025. Příjem klíčů instrumentace bude dál fungovat, ale už nebudeme poskytovat aktualizace ani podporu pro tuto funkci. Přechod na připojovací řetězec, abyste mohli využívat nové funkce.

Povolení automatického monitorování

Úplný seznam podporovanýchscénářůch

Důležité

Pro automatickou správu ve Windows se podporuje pouze dlouhodobá podpora .NET Core.

Samoobslužná nasazeníse nepodporují. Místo toho použijte ruční instrumentaci prostřednictvím kódu.

Poznámka:

Automatické vytváření se označuje jako "připojení bez kódu" před říjnem 2021.

V následující části Povolení monitorování začněte nastavovat aplikační Přehledy s prostředkem služby App Service.

Povolení monitorování

  1. V levém podokně služby App Service vyberte Přehledy aplikace. Pak vyberte Povolit.

    Snímek obrazovky znázorňující kartu Přehledy aplikace s vybranou možností Povolit

  2. Vytvořte nový prostředek nebo vyberte existující prostředek aplikace Přehledy pro tuto aplikaci.

    Poznámka:

    Když vyberete OK a vytvoříte nový prostředek, zobrazí se výzva k použití nastavení monitorování. Výběrem možnosti Pokračovat prodávejte nový prostředek aplikace Přehledy s vaší službou App Service. Vaše služba App Service se pak restartuje.

    Snímek obrazovky s rozevíracím seznamem Změnit prostředek

  3. Po určení, který prostředek se má použít, můžete zvolit, jak má aplikace Přehledy shromažďovat data pro každou platformu pro vaši aplikaci. ASP.NET Možnosti kolekce Core jsou doporučené nebo zakázané.

     Snímek obrazovky znázorňující instrumentaci oddílu aplikace

Povolení monitorování na straně klienta

Monitorování na straně klienta je ve výchozím nastavení povolené pro aplikace ASP.NET Core s doporučenou kolekcí bez ohledu na to, jestli je nastavení APPINSIGHTS_JAVASCRIPT_ENABLED aplikace k dispozici.

Pokud chcete zakázat monitorování na straně klienta:

  1. Vyberte Nastavení>Konfigurace.

  2. V části Nastavení aplikace vytvořte nové nastavení aplikace s následujícími informacemi:

    • Název: APPINSIGHTS_JAVASCRIPT_ENABLED
    • Hodnota: false
  3. Uložte nastavení. Restartujte aplikaci.

Automatizace monitorování

Pokud chcete povolit shromažďování telemetrických dat pomocí Přehledy aplikace, musí být nastavená jenom nastavení aplikace.

Snímek obrazovky znázorňující nastavení aplikace služby App Service s nastavením Přehledy aplikace

Definice nastavení aplikace

Název nastavení aplikace Definice Hodnota
ApplicationInsightsAgent_EXTENSION_VERSION Hlavní rozšíření, které řídí monitorování modulu runtime. ~2 pro Windows nebo ~3 Linux
XDT_MicrosoftApplicationInsights_Mode Ve výchozím režimu jsou povoleny pouze základní funkce, které zajistí optimální výkon. disabled nebo recommended.
XDT_MicrosoftApplication Přehledy_PreemptSdk Pouze pro aplikace ASP.NET Core. Umožňuje spolupráci (interoperace) se sadou Application Přehledy SDK. Načte rozšíření vedle sady SDK a používá ho k odesílání telemetrie. (Zakáže sadu Application Přehledy SDK.) 1

Nastavení aplikace služby App Service pomocí Azure Resource Manageru

Nastavení aplikace pro službu Aplikace Azure Service je možné spravovat a konfigurovat pomocí šablon Azure Resource Manageru. Tuto metodu můžete použít při nasazování nových prostředků služby App Service s automatizací Resource Manageru nebo úpravou nastavení existujících prostředků.

Základní struktura JSON nastavení aplikace pro prostředek služby App Service:

      "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"
          }
        }
      ]

Příklad šablony Resource Manageru s nastavením aplikace nakonfigurovanými pro Přehledy aplikace může být tato šablona užitečná. Konkrétně se podívejte na oddíl, který začíná na řádku 238.

Pokud chcete vytvořit šablonu Resource Manageru s výchozím nastavením Přehledy aplikace, zahajte proces, jako byste chtěli vytvořit novou webovou aplikaci s povolenou Přehledy aplikace.

  1. Vytvořte nový prostředek služby App Service s požadovanými informacemi o webové aplikaci. Na kartě Monitorování povolte Přehledy aplikace.

  2. Vyberte Zkontrolovat a vytvořit. Pak vyberte Stáhnout šablonu pro automatizaci.

    Snímek obrazovky znázorňující nabídku vytvoření webové aplikace služby App Service

    Tato možnost vygeneruje nejnovější šablonu Resource Manageru se všemi nakonfigurovanými požadovanými nastaveními.

    Snímek obrazovky znázorňující šablonu webové aplikace služby App Service

V následující ukázce nahraďte všechny instance AppMonitoredSite názvem vašeho webu:

Poznámka:

Pokud používáte Windows, nastavte ApplicationInsightsAgent_EXTENSION_VERSION na hodnotu ~2. Pokud používáte Linux, nastavte ApplicationInsightsAgent_EXTENSION_VERSION na ~3hodnotu .

{
    "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"
}

Povolení prostřednictvím PowerShellu

Pokud chcete povolit monitorování aplikací prostřednictvím PowerShellu, musíte změnit jenom základní nastavení aplikace. Následující ukázka umožňuje monitorování aplikací pro web volaný AppMonitoredSite ve skupině AppMonitoredRGprostředků . Konfiguruje data, která se mají odesílat do 012345678-abcd-ef01-2345-6789abcd instrumentačního klíče.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Poznámka:

Pokud používáte Systém Windows, nastavte aplikaci Přehledy Agent_EXTENSION_VERSION na ~2hodnotu . Pokud používáte Linux, nastavte aplikaci Přehledy Agent_EXTENSION_VERSION na ~3.

$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 rozšíření monitorování nebo agenta – .NET

Pokud chcete upgradovat rozšíření monitorování nebo agenta, postupujte podle kroků v dalších částech.

Upgrade z verze 2.8.9 a novější

Upgrade z verze 2.8.9 probíhá automaticky bez dalších akcí. Nové monitorovací bity se doručí na pozadí do cílové služby App Service a při restartování aplikace se vyberou.

Pokud chcete zkontrolovat, jakou verzi rozšíření používáte, přejděte na https://yoursitename.scm.azurewebsites.net/ApplicationInsightsstránku .

Snímek obrazovky znázorňující cestu URL ke kontrole verze rozšíření, které používáte

Upgrade z verze 1.0.0 – 2.6.5

Počínaje verzí 2.8.9 se používá předinstalované rozšíření webu. Pokud používáte starší verzi, můžete ji aktualizovat jedním ze dvou způsobů:

  • Upgrade povolením prostřednictvím portálu: I když máte nainstalované rozšíření Application Přehledy pro App Service, zobrazí se v uživatelském rozhraní jenom tlačítko Povolit. Na pozadí se odebere staré rozšíření privátního webu.

  • Upgrade prostřednictvím PowerShellu:

    1. Nastavte nastavení aplikace tak, aby povolovala předinstalované rozšíření ApplicationInsightsAgentwebu . Další informace najdete v tématu Povolení prostřednictvím PowerShellu.
    2. Ručně odeberte rozšíření privátního webu s názvem Application Přehledy rozšíření pro službu Aplikace Azure Service.

Pokud se upgrade provádí z verze starší než 2.5.1, zkontrolujte, jestli ApplicationInsights jsou knihovny DLL odebrány ze složky přihrádky aplikace. Další informace najdete v tématu Postup řešení potíží.

Řešení problému

Poznámka:

Když vytvoříte webovou aplikaci s ASP.NET Core moduly runtime ve službě App Service, nasadí jako úvodní web jednu statickou stránku HTML. Nedoporučujeme, abyste vyřešili problém s výchozí šablonou. Před řešením problému nasaďte aplikaci.

Následuje náš podrobný průvodce odstraňováním potíží pro monitorování na základě rozšíření nebo agentů pro aplikace založené na jádru ASP.NET spuštěných ve službě App Service.

  1. Zkontrolujte, jestli ApplicationInsightsAgent_EXTENSION_VERSION je nastavení aplikace nastavené na hodnotu ~2.

  2. Přejděte na https://yoursitename.scm.azurewebsites.net/ApplicationInsights.

    Snímek obrazovky znázorňující odkaz nad stránkou výsledků

    • Ověřte, že je stav rozšíření Přehledy aplikace.Pre-Installed Site Extension, version 2.8.x.xxxx, is running.

      Pokud není spuštěný, postupujte podle pokynů v části Povolení monitorování Přehledy aplikací.

    • Ověřte, že zdroj stavu existuje a vypadá takto Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.

      Pokud podobná hodnota není dostupná, znamená to, že aplikace není aktuálně spuštěná nebo není podporovaná. Pokud chcete zajistit, že je aplikace spuštěná, zkuste ručně navštívit adresu URL aplikace nebo koncové body aplikace, což umožní zpřístupnění informací modulu runtime.

    • Potvrďte, že je TrueIKeyExists . Pokud je Falseto , přidejte APPINSIGHTS_INSTRUMENTATIONKEY do nastavení aplikace identifikátor GUID klíče a APPLICATIONINSIGHTS_CONNECTION_STRING s ním.

    • Pokud vaše aplikace odkazuje na všechny balíčky Přehledy aplikace, povolení integrace služby App Service se nemusí projevit a data se nemusí zobrazit v Přehledy aplikace. Příkladem by bylo, kdybyste dříve instrumentovali nebo se pokusili instrumentovat aplikaci pomocí sady ASP.NET Core SDK. Pokud chcete tento problém vyřešit, zapněte na portálu spolupráci se sadou Application Přehledy SDK. V Přehledy aplikace se začnou zobrazovat data.

      Důležité

      Tato funkce je ve verzi Preview.

       Snímek obrazovky s povoleným nastavením zprostředkovatele komunikace

      Data se teď posílají pomocí přístupu bez kódu, i když byla sada Application Přehledy SDK původně použita nebo se pokusila použít.

      Důležité

      Pokud aplikace k odesílání telemetrie použila sadu Application Přehledy SDK, telemetrie se zakáže. Jinými slovy, vlastní telemetrie (například jakékoli Track*() metody) a vlastní nastavení (například vzorkování) budou zakázány.

Výchozí web nasazený s webovými aplikacemi nepodporuje automatické monitorování na straně klienta

Když ve službě App Service vytvoříte webovou aplikaci s moduly runtime ASP.NET Core, nasadí jako úvodní web jednu statickou stránku HTML. Statická webová stránka také načte ASP. Webová část spravovaná technologií NET ve službě IIS Toto chování umožňuje testování bezkódového monitorování na straně serveru, ale nepodporuje automatické monitorování na straně klienta.

Pokud chcete otestovat monitorování bez kódu serveru a na straně klienta pro ASP.NET Core ve webové aplikaci služby App Service, doporučujeme postupovat podle oficiálních příruček k vytvoření webové aplikace ASP.NET Core. Pak pomocí pokynů v aktuálním článku povolte monitorování.

Jaký je rozdíl mezi standardními metrikami oproti metrikám služby Application Přehledy a Aplikace Azure Service?

Aplikace Přehledy shromažďuje telemetrii pro požadavky, které je do aplikace provedly. Pokud k selhání dojde ve službě WebApps/WebServer a požadavek se nedotášel k uživatelské aplikaci, aplikace Přehledy o ní nemá žádnou telemetrii.

Doba trvání serverresponsetime vypočítaná aplikací Přehledy nemusí nutně odpovídat době odezvy serveru zjištěné službou Web Apps. Toto chování je způsobeno tím, že aplikace Přehledy počítá pouze dobu trvání, kdy požadavek skutečně dosáhne uživatelské aplikace. Pokud se požadavek zablokuje nebo zařadí do fronty ve webovém serveru, doba čekání se zahrne do metrik Web Apps, ale ne do metrik Přehledy aplikace.

Testování připojení mezi hostitelem vaší aplikace a službou příjmu dat

Sady SDK a agenti aplikace Přehledy odesílají telemetrii, aby se ingestovala jako volání REST do koncových bodů příjmu dat. Připojení z webového serveru nebo hostitelského počítače aplikace ke koncovým bodům služby pro příjem dat můžete otestovat pomocí nezpracovaných klientů REST z příkazů PowerShellu nebo curl. Viz Řešení potíží s chybějící telemetrií aplikací ve službě Azure Monitor application Přehledy.

PHP a WordPress nejsou podporovány.

Weby PHP a WordPress nejsou podporované. Pro monitorování těchto úloh na straně serveru v současné době neexistuje žádná oficiálně podporovaná sada SDK/agent. Chcete-li ručně instrumentovat transakce na straně klienta na webu PHP nebo WordPress přidáním JavaScriptu na straně klienta na webové stránky, použijte javascriptovou sadu SDK.

Následující tabulka obsahuje vysvětlení, co tyto hodnoty znamenají, jejich základní příčiny a doporučené opravy.

Hodnota problému Vysvětlení Oprava
AppAlreadyInstrumented:true Tato hodnota označuje, že rozšíření zjistilo, že v aplikaci už existuje určitý aspekt sady SDK a že se vrátí zpět. Může to být způsobeno odkazem na Microsoft.ApplicationInsights.AspNetCore nebo Microsoft.ApplicationInsights. Odeberte odkazy. Některé z těchto odkazů se ve výchozím nastavení přidávají z určitých šablon sady Visual Studio. Starší verze sady Visual Studio reference Microsoft.ApplicationInsights.
AppAlreadyInstrumented:true Tato hodnota může být způsobena také přítomností Microsoft.ApplicationsInsights knihovny DLL ve složce aplikace z předchozího nasazení. Vyčistěte složku aplikace a ujistěte se, že jsou tyto knihovny DLL odebrány. Zkontrolujte adresář bin vaší místní aplikace i adresář wwwroot ve službě App Service. (Pokud chcete zkontrolovat adresář wwwroot vaší webové aplikace služby App Service, vyberte Konzola Pro pokročilé nástroje (Kudu) >– konzola>ladění CMD>home\site\wwwroot)
IKeyExists:false Tato hodnota označuje, že v nastavení APPINSIGHTS_INSTRUMENTATIONKEYaplikace není k dispozici instrumentační klíč. Mezi možné příčiny patří náhodné odebrání hodnot nebo vynechání nastavení hodnot ve skriptu automatizace. Ujistěte se, že je nastavení v nastavení aplikace služby App Service.

Poznámky k verzi

Nejnovější aktualizace a opravy chyb najdete v poznámkách k verzi.

Další kroky