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
W okienku po lewej stronie wybierz pozycję Szczegółowe informacje aplikacji. Następnie wybierz pozycję Włącz.
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.
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.
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:
Wybierz pozycję Ustawienia>Konfiguracja.
W obszarze Ustawienia aplikacji utwórz ustawienie Nowa aplikacja z następującymi informacjami:
- Nazwa:
APPINSIGHTS_JAVASCRIPT_ENABLED
- Wartość:
false
- Nazwa:
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.
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.
Automatyzowanie tworzenia zasobu usługi Application Szczegółowe informacje i łączenia z nowo utworzonym zasobem usługi App Service
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.
Utwórz nowy zasób usługi App Service z żądanymi informacjami o aplikacji internetowej. Włącz Szczegółowe informacje aplikacji na karcie Monitorowanie.
Wybierz pozycję Przejrzyj i utwórz. Następnie wybierz pozycję Pobierz szablon do automatyzacji.
Ta opcja generuje najnowszy szablon usługi Resource Manager ze skonfigurowanymi wszystkimi wymaganymi ustawieniami.
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 AppMonitoredRG
zasobó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 ~2
wartość . 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/ApplicationInsights
strony .
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:
Uaktualnij, włączając za pośrednictwem portalu: nawet jeśli masz zainstalowane rozszerzenie Application Szczegółowe informacje dla usługi App Service, interfejs użytkownika wyświetla tylko przycisk Włącz. W tle stare rozszerzenie witryny prywatnej zostanie usunięte.
Uaktualnianie za pomocą programu PowerShell:
- Ustaw ustawienia aplikacji, aby włączyć wstępnie zainstalowane rozszerzenie
ApplicationInsightsAgent
lokacji . Aby uzyskać więcej informacji, zobacz Włączanie za pomocą programu PowerShell. - Ręcznie usuń rozszerzenie lokacji prywatnej o nazwie Rozszerzenie aplikacji Szczegółowe informacje dla usługi aplikacja systemu Azure Service.
- Ustaw ustawienia aplikacji, aby włączyć wstępnie zainstalowane rozszerzenie
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.
Sprawdź, czy
ApplicationInsightsAgent_EXTENSION_VERSION
ustawienie aplikacji jest ustawione na wartość~2
.Przejdź do
https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.Upewnij się, że stan rozszerzenia Szczegółowe informacje aplikacji to
Pre-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 jestFalse
to , dodajAPPINSIGHTS_INSTRUMENTATIONKEY
identyfikator GUID ikeyAPPLICATIONINSIGHTS_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.
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.ApplicationInsights do 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_INSTRUMENTATIONKEY aplikacji . 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
- Uruchom profilera w aplikacji na żywo.
- Monitorowanie usługi Azure Functions przy użyciu Szczegółowe informacje aplikacji.
- Włącz diagnostykę platformy Azure, która ma być wysyłana do usługi Application Insights.
- Monitoruj metryki kondycji usługi, aby upewnić się, że usługa jest dostępna i szybko reaguje.
- Odbieraj powiadomienia o alertach zawsze, gdy wystąpią zdarzenia operacyjne lub metryki przekroczą próg.
- Użyj Szczegółowe informacje aplikacji w języku JavaScript i stron internetowych, aby pobrać dane telemetryczne klienta z przeglądarek, które odwiedzają stronę internetową.
- Dostępność