Monitorowanie aplikacji dla usługi Azure App Service i ASP.NET Core

Włączanie monitorowania w aplikacjach internetowych opartych na ASP.NET Core działających w usłudze aplikacja systemu Azure Jest teraz łatwiejsze niż kiedykolwiek wcześniej. Wcześniej trzeba było ręcznie instrumentować aplikację. Teraz najnowsze rozszerzenie/agent jest domyślnie wbudowane w obraz usługi App Service. Ten artykuł przeprowadzi Cię przez proces włączania monitorowania Szczegółowe informacje aplikacji usługi Azure Monitor. Zawiera również wstępne wskazówki dotyczące automatyzowania procesu wdrożeń na dużą skalę.

Uwaga

31 marca 2025 r. zostanie zakończone świadczenie pomocy technicznej dla pozyskiwania klucza instrumentacji. Pozyskiwanie klucza instrumentacji będzie nadal działać, ale nie udostępnimy już aktualizacji ani obsługi funkcji. Przejście do parametry połączenia w celu skorzystania z nowych funkcji.

Włączanie monitorowania automatycznejinstrumentacji

Aby uzyskać pełną listę obsługiwanych scenariuszy automatycznegoinstrumentacji, zobacz Obsługiwane środowiska, języki i dostawcy zasobów.

Ważne

Obsługa długoterminowa platformy .NET Core jest obsługiwana w przypadku automatycznegoinstrumentacji w systemie Windows.

Przycinanie wdrożeń samodzielnie nie jest obsługiwane. Zamiast tego użyj instrumentacji ręcznej za pomocą kodu.

Uwaga

Autoinstrumentacja była znana jako "dołączanie bez kodu" przed październikiem 2021 r.

Zobacz następującą sekcję Włączanie monitorowania, aby rozpocząć konfigurowanie Szczegółowe informacje aplikacji przy użyciu zasobu usługi App Service.

Włączanie monitorowania

  1. W okienku po lewej stronie wybierz pozycję Szczegółowe informacje aplikacji. Następnie wybierz pozycję Włącz.

    Zrzut ekranu przedstawiający kartę Aplikacja Szczegółowe informacje z wybraną pozycję Włącz.

  2. Utwórz nowy zasób lub wybierz istniejący zasób aplikacji Szczegółowe informacje dla tej aplikacji.

    Uwaga

    Po wybraniu przycisku OK w celu utworzenia nowego zasobu zostanie wyświetlony monit o zastosowanie ustawień monitorowania. Wybranie pozycji Kontynuuj łączy nowy zasób aplikacji Szczegółowe informacje z usługą app Service. Następnie usługa app service zostanie ponownie uruchomiona.

    Zrzut ekranu przedstawiający listę rozwijaną Zmień zasób.

  3. Po określeniu, który zasób ma być używany, możesz wybrać sposób, w jaki aplikacja Szczegółowe informacje zbierać dane na platformę dla aplikacji. Opcje kolekcji ASP.NET Core są zalecane lub wyłączone.

     Zrzut ekranu przedstawiający instrumentację sekcji aplikacji.

Włączanie monitorowania po stronie klienta

Monitorowanie po stronie klienta jest domyślnie włączone dla aplikacji ASP.NET Core z zalecaną kolekcją, niezależnie od tego, czy ustawienie APPINSIGHTS_JAVASCRIPT_ENABLED aplikacji jest obecne.

Jeśli chcesz wyłączyć monitorowanie po stronie klienta:

  1. Wybierz pozycję Ustawienia>Konfiguracja.

  2. W obszarze Ustawienia aplikacji utwórz ustawienie Nowa aplikacja z następującymi informacjami:

    • Nazwa: APPINSIGHTS_JAVASCRIPT_ENABLED
    • Wartość: false
  3. Zapisz ustawienia. Uruchom ponownie aplikację.

Automatyzowanie monitorowania

Aby włączyć zbieranie danych telemetrycznych za pomocą Szczegółowe informacje aplikacji, należy ustawić tylko ustawienia aplikacji.

Zrzut ekranu przedstawiający ustawienia aplikacji usługi App Service z ustawieniami Szczegółowe informacje aplikacji.

Definicje ustawień aplikacji

Nazwa ustawienia aplikacji Definicja Wartość
ApplicationInsightsAgent_EXTENSION_VERSION Główne rozszerzenie, które kontroluje monitorowanie środowiska uruchomieniowego. ~2 dla systemu Windows lub ~3 dla systemu Linux
XDT_MicrosoftApplicationInsights_Mode W trybie domyślnym są włączone tylko podstawowe funkcje, aby zapewnić optymalną wydajność. Usługa disabled lub recommended.
XDT_MicrosoftApplication Szczegółowe informacje_PreemptSdk Tylko w przypadku aplikacji ASP.NET Core. Umożliwia współdziałanie (współdziałanie) z zestawem SDK usługi Application Szczegółowe informacje. Ładuje rozszerzenie obok zestawu SDK i używa go do wysyłania danych telemetrycznych. (Wyłącza zestaw SDK Szczegółowe informacje aplikacji). 1

Ustawienia aplikacji usługi App Service z usługą Azure Resource Manager

Ustawienia aplikacji dla usługi aplikacja systemu Azure można zarządzać i konfigurować przy użyciu szablonów usługi Azure Resource Manager. Tej metody można użyć podczas wdrażania nowych zasobów usługi App Service za pomocą automatyzacji usługi Resource Manager lub modyfikowania ustawień istniejących zasobów.

Podstawowa struktura pliku JSON ustawień aplikacji dla zasobu usługi 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"
          }
        }
      ]

Na przykład szablonu usługi Resource Manager z ustawieniami aplikacji skonfigurowanymi dla Szczegółowe informacje aplikacji ten szablon może być przydatny. W szczególności zobacz sekcję, która rozpoczyna się w wierszu 238.

Aby utworzyć szablon usługi Resource Manager z domyślnymi ustawieniami usługi Application Szczegółowe informacje, rozpocznij proces tak, jakby zamierzasz utworzyć nową aplikację internetową z włączoną Szczegółowe informacje aplikacji.

  1. Utwórz nowy zasób usługi App Service z żądanymi informacjami o aplikacji internetowej. Włącz Szczegółowe informacje aplikacji na karcie Monitorowanie.

  2. Wybierz pozycję Przejrzyj i utwórz. Następnie wybierz pozycję Pobierz szablon do automatyzacji.

    Zrzut ekranu przedstawiający menu tworzenia aplikacji internetowej usługi App Service.

    Ta opcja generuje najnowszy szablon usługi Resource Manager ze skonfigurowanymi wszystkimi wymaganymi ustawieniami.

    Zrzut ekranu przedstawiający szablon aplikacji internetowej usługi App Service.

W poniższym przykładzie zastąp wszystkie wystąpienia AppMonitoredSite swojej nazwy witryny:

Uwaga

W przypadku korzystania z systemu Windows ustaw wartość ApplicationInsightsAgent_EXTENSION_VERSION~2. W przypadku korzystania z systemu Linux ustaw wartość ApplicationInsightsAgent_EXTENSION_VERSION~3.

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

Włączanie za pomocą programu PowerShell

Aby włączyć monitorowanie aplikacji za pomocą programu PowerShell, należy zmienić tylko podstawowe ustawienia aplikacji. Poniższy przykład umożliwia monitorowanie aplikacji dla witryny internetowej o nazwie AppMonitoredSite w grupie AppMonitoredRGzasobów . Konfiguruje dane do wysłania 012345678-abcd-ef01-2345-6789abcd do klucza instrumentacji.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Uwaga

W przypadku korzystania z systemu Windows ustaw wartość Application Szczegółowe informacje Agent_EXTENSION_VERSION na ~2wartość . W przypadku korzystania z systemu Linux ustaw wartość Application Szczegółowe informacje 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

Uaktualnianie rozszerzenia/agenta monitorowania — .NET

Aby uaktualnić rozszerzenie/agenta monitorowania, wykonaj kroki opisane w następnych sekcjach.

Uaktualnianie z wersji 2.8.9 i nowszych

Uaktualnienie z wersji 2.8.9 odbywa się automatycznie bez żadnych dodatkowych akcji. Nowe bity monitorowania są dostarczane w tle do docelowej usługi aplikacji, a po ponownym uruchomieniu aplikacji zostaną pobrane.

Aby sprawdzić, która wersja rozszerzenia jest uruchomione, przejdź do https://yoursitename.scm.azurewebsites.net/ApplicationInsightsstrony .

Zrzut ekranu przedstawiający ścieżkę adresu URL, aby sprawdzić wersję uruchomionego rozszerzenia.

Uaktualnianie z wersji 1.0.0 — 2.6.5

Począwszy od wersji 2.8.9, używane jest wstępnie zainstalowane rozszerzenie lokacji. Jeśli używasz starszej wersji, możesz zaktualizować za pomocą jednego z dwóch sposobów:

Jeśli uaktualnienie zostanie wykonane z wersji wcześniejszej niż 2.5.1, sprawdź, czy ApplicationInsights biblioteki DLL zostały usunięte z folderu bin aplikacji. Aby uzyskać więcej informacji, zobacz Kroki rozwiązywania problemów.

Rozwiązywanie problemów

Uwaga

Podczas tworzenia aplikacji internetowej ze ASP.NET Core środowiskami uruchomieniowymi w usłudze App Service jest wdrażana pojedyncza statyczna strona HTML jako początkowa witryna internetowa. Nie zalecamy rozwiązywania problemu z szablonem domyślnym. Przed rozwiązaniem problemu wdróż aplikację.

Poniżej przedstawiono nasz przewodnik rozwiązywania problemów krok po kroku dotyczący monitorowania opartego na rozszerzeniach/agentach dla aplikacji opartych na ASP.NET core działających w usłudze App Service.

  1. Sprawdź, czy ApplicationInsightsAgent_EXTENSION_VERSION ustawienie aplikacji jest ustawione na wartość ~2.

  2. Przejdź do https://yoursitename.scm.azurewebsites.net/ApplicationInsights.

    Zrzut ekranu przedstawiający link powyżej strony wyników.

    • Upewnij się, że stan rozszerzenia Szczegółowe informacje aplikacji toPre-Installed Site Extension, version 2.8.x.xxxx, is running.

      Jeśli nie jest uruchomiona, postępuj zgodnie z instrukcjami w sekcji Włączanie monitorowania Szczegółowe informacje aplikacji.

    • Upewnij się, że źródło stanu istnieje i wygląda następująco: Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.

      Jeśli podobna wartość nie jest obecna, oznacza to, że aplikacja nie jest obecnie uruchomiona lub nie jest obsługiwana. Aby upewnić się, że aplikacja jest uruchomiona, spróbuj ręcznie odwiedzić adres URL aplikacji/punkty końcowe aplikacji, co umożliwi udostępnienie informacji o środowisku uruchomieniowym.

    • Upewnij się, że wartość IKeyExists to True. Jeśli jest Falseto , dodaj APPINSIGHTS_INSTRUMENTATIONKEY identyfikator GUID ikey APPLICATIONINSIGHTS_CONNECTION_STRING do ustawień aplikacji.

    • Jeśli aplikacja odwołuje się do pakietów usługi Application Szczegółowe informacje, włączenie integracji z usługą App Service może nie obowiązywać, a dane mogą nie być wyświetlane w aplikacji Szczegółowe informacje. Przykładem może być instrumentacja lub próba instrumentowania aplikacji przy użyciu zestawu SDK platformy ASP.NET Core. Aby rozwiązać ten problem, w portalu włącz opcję Międzyoperaj z zestawem SDK usługi Application Szczegółowe informacje. Zaczniesz widzieć dane w aplikacji Szczegółowe informacje.

      Ważne

      Ta funkcja jest dostępna w wersji zapoznawczej.

       Zrzut ekranu przedstawiający włączone ustawienie międzyoperajności.

      Dane będą teraz wysyłane przy użyciu podejścia bez kodu, nawet jeśli zestaw SDK Szczegółowe informacje aplikacji został pierwotnie użyty lub podjęto próbę użycia.

      Ważne

      Jeśli aplikacja użyła zestawu SDK usługi Application Szczegółowe informacje do wysyłania jakichkolwiek danych telemetrycznych, dane telemetryczne zostaną wyłączone. Innymi słowy, niestandardowe dane telemetryczne (na przykład wszelkie Track*() metody) i ustawienia niestandardowe (takie jak próbkowanie) zostaną wyłączone.

Domyślna witryna internetowa wdrożona za pomocą aplikacji internetowych nie obsługuje automatycznego monitorowania po stronie klienta

Podczas tworzenia aplikacji internetowej z środowiskami uruchomieniowymi ASP.NET Core w usłudze App Service wdraża pojedynczą statyczną stronę HTML jako początkową witrynę internetową. Statyczna strona internetowa ładuje również asp. Składnik Web Part zarządzany przez platformę NET w usługach IIS. To zachowanie umożliwia testowanie monitorowania bez kodu po stronie serwera, ale nie obsługuje automatycznego monitorowania po stronie klienta.

Jeśli chcesz przetestować monitorowanie bez kodu i monitorowania po stronie klienta dla platformy ASP.NET Core w aplikacji internetowej usługi App Service, zalecamy zapoznanie się z oficjalnymi przewodnikami dotyczącymi tworzenia aplikacji internetowej ASP.NET Core. Następnie użyj instrukcji w bieżącym artykule, aby włączyć monitorowanie.

Jaka jest różnica między metrykami standardowymi z metryk usługi Application Szczegółowe informacje a metrykami usługi aplikacja systemu Azure Service?

Aplikacja Szczegółowe informacje zbiera dane telemetryczne dla żądań wysyłanych do aplikacji. Jeśli błąd wystąpi w usłudze WebApps/WebServer, a żądanie nie dotarło do aplikacji użytkownika, aplikacja Szczegółowe informacje nie ma żadnych danych telemetrycznych.

Czas trwania obliczany serverresponsetime przez aplikację Szczegółowe informacje nie musi być zgodny z czasem odpowiedzi serwera obserwowanym przez usługę Web Apps. To zachowanie jest spowodowane tym, że aplikacja Szczegółowe informacje liczy czas trwania tylko wtedy, gdy żądanie rzeczywiście dociera do aplikacji użytkownika. Jeśli żądanie jest zablokowane lub umieszczone w kolejce na serwerze WebServer, czas oczekiwania jest uwzględniany w metrykach usługi Web Apps, ale nie w metrykach usługi Application Szczegółowe informacje.

Testowanie łączności między hostem aplikacji a usługą pozyskiwania

Zestawy SDK Szczegółowe informacje aplikacji i agenci wysyłają dane telemetryczne, aby uzyskać pozyskane jako wywołania REST do naszych punktów końcowych pozyskiwania. Możesz przetestować łączność z serwera internetowego lub maszyny hosta aplikacji do punktów końcowych usługi pozyskiwania przy użyciu pierwotnych klientów REST z poziomu programu PowerShell lub poleceń curl. Zobacz Rozwiązywanie problemów z brakującą telemetrią aplikacji w usłudze Azure Monitor Application Szczegółowe informacje.

Język PHP i WordPress nie są obsługiwane

Witryny PHP i WordPress nie są obsługiwane. Obecnie nie ma oficjalnie obsługiwanego zestawu SDK/agenta na potrzeby monitorowania tych obciążeń po stronie serwera. Aby ręcznie instrumentować transakcje po stronie klienta w witrynie PHP lub WordPress, dodając kod JavaScript po stronie klienta do stron internetowych, użyj zestawu SDK języka JavaScript.

Poniższa tabela zawiera wyjaśnienie, co oznaczają te wartości, ich podstawowe przyczyny i zalecane poprawki.

Wartość problemu Wyjaśnienie Napraw
AppAlreadyInstrumented:true Ta wartość wskazuje, że rozszerzenie wykryło, że jakiś aspekt zestawu SDK jest już obecny w aplikacji i wycofa się. Może to być spowodowane odwołaniem do Microsoft.ApplicationInsights.AspNetCore lub Microsoft.ApplicationInsights. Usuń odwołania. Niektóre z tych odwołań są domyślnie dodawane z niektórych szablonów programu Visual Studio. Starsze wersje odwołania Microsoft.ApplicationInsightsdo programu Visual Studio.
AppAlreadyInstrumented:true Ta wartość może być również spowodowana obecnością Microsoft.ApplicationsInsights biblioteki DLL w folderze aplikacji z poprzedniego wdrożenia. Wyczyść folder aplikacji, aby upewnić się, że te biblioteki DLL zostaną usunięte. Sprawdź zarówno katalog bin aplikacji lokalnej, jak i katalog wwwroot w usłudze App Service. (Aby sprawdzić katalog wwwroot aplikacji internetowej usługi App Service, wybierz pozycję Narzędzia zaawansowane (Kudu) >Debugowanie konsoli>CMD>home\site\wwwroot).
IKeyExists:false Ta wartość wskazuje, że klucz instrumentacji nie jest obecny w ustawieniu APPINSIGHTS_INSTRUMENTATIONKEYaplikacji . Możliwe przyczyny obejmują przypadkowe usunięcie wartości lub zapomnienie o ustawieniu wartości w skrycie automatyzacji. Upewnij się, że ustawienie jest obecne w ustawieniach aplikacji usługi App Service.

Informacje o wersji

Aby uzyskać najnowsze aktualizacje i poprawki błędów, zobacz Informacje o wersji.

Następne kroki