Autoinstrumentacja, nazywana również monitorowaniem środowiska uruchomieniowego, jest najprostszym sposobem na włączenie usługi Application Insights dla usługi Azure App Service, bez konieczności wprowadzania jakichkolwiek zmian w kodzie ani zaawansowanych konfiguracji. Na podstawie konkretnego scenariusza oceń, czy potrzebujesz bardziej zaawansowanego monitorowania za pomocą instrumentacji ręcznej.
Uwaga
31 marca 2025 r. zakończy się wsparcie dla mechanizmu pobierania 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łącz usługę Application Insights
Ważne
W przypadku wykrycia zarówno monitorowania automatycznej instrumentacji, jak i ręcznej instrumentacji opartej na zestawie SDK, zostaną uznane tylko ustawienia instrumentacji ręcznej. To rozwiązanie uniemożliwia wysyłanie zduplikowanych danych. Aby dowiedzieć się więcej, zobacz Rozwiązywanie problemów.
Autoinstrumentacja w witrynie Azure Portal
Wybierz pozycję Application Insights w menu nawigacji po lewej stronie usługi app Service, a następnie wybierz pozycję Włącz.
Utwórz nowy zasób lub wybierz istniejący zasób usługi Application Insights 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 usługi Application Insights z usługą aplikacji. Następnie usługa aplikacji zostanie ponownie uruchomiona.
Po określeniu, który zasób ma być używany, możesz zdecydować, w jaki sposób Application Insights ma zbierać dane dla Twojej aplikacji na każdej platformie. Opcje kolekcji ASP.NET Core są zalecane lub wyłączone.
Ważne
W przypadku wykrycia zarówno automatycznego monitorowania instrumentacji, jak i ręcznej instrumentacji opartej na SDK, zostaną uznane tylko ustawienia instrumentacji ręcznej. To rozwiązanie uniemożliwia wysyłanie zduplikowanych danych. Aby dowiedzieć się więcej, zobacz Rozwiązywanie problemów.
Uwaga
Kombinacja elementów APPINSIGHTS_JAVASCRIPT_ENABLED
i urlCompression
nie jest obsługiwana. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów.
Autoinstrumentacja w witrynie Azure Portal
Wybierz pozycję Application Insights w menu nawigacji po lewej stronie usługi app Service, a następnie wybierz pozycję Włącz.
Utwórz nowy zasób lub wybierz istniejący zasób usługi Application Insights 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 usługi Application Insights z usługą aplikacji. Następnie usługa app service zostanie ponownie uruchomiona.
Po określeniu, który zasób ma być używany, możesz wybrać, w jaki sposób usługa Application Insights ma zbierać dane dla Twojej aplikacji na każdej platformie. ASP.NET monitorowanie aplikacji jest domyślnie włączone z dwoma różnymi poziomami zbierania danych: Zalecane i Podstawowe.
Poniższa tabela zawiera podsumowanie danych zebranych dla każdej trasy.
Dane |
Zalecane |
Podstawowy |
Dodanie trendów użycia procesora, pamięci i operacji we/wy |
Tak |
Nie. |
Zbieranie trendów użycia z możliwością korelacji wyników dostępności z transakcjami |
Tak |
Tak |
Zbiera wyjątki nieobsłużone przez proces hosta |
Tak |
Tak |
Poprawa dokładności metryk APM pod obciążeniem, gdy używane jest próbkowanie |
Tak |
Tak |
Korelowanie mikrousług ponad granicami żądań/zależności |
Tak |
Nie (funkcje APM tylko dla pojedynczego wystąpienia) |
Ta integracja dodaje Application Insights Java 3.x i automatycznie zbiera dane telemetryczne. Możesz dodatkowo zastosować dodatkowe konfiguracje i dodać własną telemetrię niestandardową.
Autoinstrumentacja w witrynie Azure Portal
Wybierz pozycję Application Insights w menu nawigacji po lewej stronie usługi app Service, a następnie wybierz pozycję Włącz.
Utwórz nowy zasób lub wybierz istniejący zasób usługi Application Insights 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 usługi Application Insights z usługą aplikacji. Następnie usługa aplikacji zostanie ponownie uruchomiona.
Ważne
W przypadku wykrycia zarówno automatycznej instrumentacji, jak i ręcznej instrumentacji opartej na zestawie SDK, zostaną uznane tylko ustawienia instrumentacji ręcznej. To rozwiązanie uniemożliwia wysyłanie zduplikowanych danych. Aby dowiedzieć się więcej, zobacz sekcję Rozwiązywanie problemów.
Uwaga
Agent dołączony automatycznie można skonfigurować przy użyciu zmiennej środowiskowej APPLICATIONINSIGHTS_CONFIGURATION_CONTENT
na karcie zmiennych środowiskowych usługi App Service. Aby uzyskać szczegółowe informacje na temat opcji konfiguracji, które można przekazać za pośrednictwem tej zmiennej środowiskowej, zobacz Node.js Configuration.
Usługa Application Insights dla Node.js jest zintegrowana z usługą App Service systemu Azure na Linuksie — zarówno dla aplikacji opartych na kodzie, jak i niestandardowych kontenerów, oraz z usługą App Service na Windows dla aplikacji opartych na kodzie. Integracja jest dostępna w publicznej wersji zapoznawczej.
Autoinstrumentacja w witrynie Azure Portal
Wybierz pozycję Application Insights w menu nawigacji po lewej stronie usługi app Service, a następnie wybierz pozycję Włącz.
Utwórz nowy zasób lub wybierz istniejący zasób usługi Application Insights 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 usługi Application Insights z usługą aplikacji. Następnie usługa aplikacji zostanie ponownie uruchomiona.
Po określeniu, który zasób ma być używany, wszystko jest gotowe.
Uwaga
Używaj autoinstrumentacji tylko w usłudze App Service, jeśli nie korzystasz z ręcznej instrumentacji OpenTelemetry w swoim kodzie, takiej jak Azure Monitor OpenTelemetry Distro lub Azure Monitor OpenTelemetry Exporter. Zapobiega to wysyłaniu zduplikowanych danych. Aby dowiedzieć się więcej na ten temat, zapoznaj się z sekcją rozwiązywania problemów w tym artykule.
Metryki na żywo nie są dostępne dla automatycznie uruchomionych aplikacji języka Python działających w usłudze Azure App Service. Aby skorzystać z tej funkcji, zamiast tego ręcznie zainstruuj aplikację z użyciem dystrybucji Azure Monitor OpenTelemetry.
Usługa Application Insights dla języka Python integruje się z opartą na kodzie Usługą Aplikacji Azure na systemie Linux. Integracja jest dostępna w publicznej wersji zapoznawczej i dodaje zestaw SDK języka Python, który jest ogólnie dostępny. Instrumentuje popularne biblioteki języka Python w kodzie, umożliwiając automatyczne zbieranie i korelowanie zależności, dzienników i metryk. Aby zobaczyć, które wywołania i metryki są zbierane, zobacz Biblioteki języka Python
Zbieranie danych telemetrycznych odbywa się na poziomie głównego rejestratora. Aby dowiedzieć się więcej na temat natywnej hierarchii rejestrowania języka Python, odwiedź dokumentację rejestrowania języka Python.
Wymagania wstępne
- Środowisko Python w wersji 3.11 lub starszej.
- Usługa App Service musi być wdrożona jako kod. Kontenery niestandardowe nie są obsługiwane.
Autoinstrumentacja w witrynie Azure Portal
Wybierz pozycję Application Insights w menu nawigacji po lewej stronie usługi app Service, a następnie wybierz pozycję Włącz.
Utwórz nowy zasób lub wybierz istniejący zasób usługi Application Insights 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 usługi Application Insights z usługą aplikacji. Następnie usługa aplikacji zostanie ponownie uruchomiona.
Określasz zasób i wszystko jest gotowe do użycia.
Biblioteki języka Python
Po instrumentowaniu zbierasz wywołania i metryki z tych bibliotek języka Python:
Instrumentacja Django
Aby użyć instrumentacji Django OpenTelemetry, należy ustawić zmienną DJANGO_SETTINGS_MODULE
środowiskową w ustawieniach usługi App Service, aby wskazywała z folderu aplikacji na moduł ustawień.
Aby uzyskać więcej informacji, zobacz dokumentację platformy Django.
Więcej danych można zbierać automatycznie, dołączając biblioteki instrumentacji ze społeczności OpenTelemetry.
Uwaga
Nie wspieramy ani nie gwarantujemy jakości społecznościowych bibliotek instrumentacji. Aby zasugerować coś do naszej dystrybucji, opublikuj lub zagłosuj w naszej społeczności feedback. Należy pamiętać, że niektóre są oparte na eksperymentalnych specyfikacjach OpenTelemetry i mogą wprowadzać przyszłe zmiany powodujące niezgodność.
Aby dodać społecznościową bibliotekę instrumentacji OpenTelemetry, zainstaluj ją za pośrednictwem pliku aplikacji requirements.txt
. Automatyczna autoinstrumentacja OpenTelemetry automatycznie wykrywa i instrumentuje wszystkie zainstalowane biblioteki. Znajdź listę bibliotek społeczności tutaj.
Ręczne uaktualnianie rozszerzenia monitorowania/agenta
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 i są pobierane po ponownym uruchomieniu aplikacji.
Aby sprawdzić, która wersja rozszerzenia jest uruchomiona, przejdź do https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.
Uaktualnianie z wersji 1.0.0 — 2.6.5
Począwszy od wersji 2.8.9, używane jest wstępnie zainstalowane rozszerzenie witryny. 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 są usuwane z folderu bin aplikacji. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów.
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 i są pobierane po ponownym uruchomieniu aplikacji.
Aby sprawdzić, która wersja rozszerzenia jest uruchomiona, przejdź do https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.
Uaktualnianie z wersji 1.0.0 — 2.6.5
Począwszy od wersji 2.8.9, używane jest domyślnie zainstalowane rozszerzenie witryny. 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 są usuwane z folderu bin aplikacji. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów.
Wersja języka Java usługi Application Insights jest aktualizowana automatycznie w ramach aktualizacji usługi App Service. Jeśli wystąpi problem, który został rozwiązany w najnowszej wersji agenta Języka Java usługi Application Insights, możesz zaktualizować go ręcznie.
Przekaż plik jar agenta Java do usługi App Service.
a. Najpierw pobierz najnowszą wersję interfejsu wiersza polecenia platformy Azure, postępując zgodnie z instrukcjami dostępnymi tutaj.
b. Następnie pobierz najnowszą wersję agenta Java usługi Application Insights, postępując zgodnie z instrukcjami dostępnymi tutaj.
c. Następnie wdróż plik jar agenta Java w usłudze App Service przy użyciu następującego polecenia: az webapp deploy --src-path applicationinsights-agent-{VERSION_NUMBER}.jar --target-path java/applicationinsights-agent-{VERSION_NUMBER}.jar --type static --resource-group {YOUR_RESOURCE_GROUP} --name {YOUR_APP_SVC_NAME}
. Alternatywnie możesz użyć tego przewodnika , aby wdrożyć agenta za pośrednictwem wtyczki Maven.
Wyłącz usługę Application Insights za pomocą karty Application Insights w witrynie Azure Portal.
Po przekazaniu pliku jar agenta przejdź do konfiguracji usługi App Service. Jeśli musisz użyć polecenia uruchamiania dla systemu Linux, dołącz argumenty JVM:
Polecenie startowe nie uwzględnia JAVA_OPTS
dla JavaSE ani CATALINA_OPTS
dla Tomcat.
Jeśli nie używasz polecenia uruchamiania, utwórz nową zmienną środowiskową JAVA_OPTS
dla środowiska JavaSE lub CATALINA_OPTS
Tomcat z wartością -javaagent:{PATH_TO_THE_AGENT_JAR}/applicationinsights-agent-{VERSION_NUMBER}.jar
.
Aby zastosować zmiany, uruchom ponownie aplikację.
Uwaga
Jeśli ustawisz zmienną środowiskową JAVA_OPTS
dla JavaSE lub CATALINA_OPTS
dla Tomcat, musisz wyłączyć usługę Application Insights w Azure Portal. Alternatywnie, jeśli wolisz włączyć usługę Application Insights z poziomu portalu Azure, upewnij się, że nie ustawiono zmiennej JAVA_OPTS
JavaSE lub CATALINA_OPTS
Tomcat w ustawieniach konfiguracji usługi App Service.
Wersja usługi Application Insights Node.js jest aktualizowana automatycznie w ramach aktualizacji usługi App Service i nie można jej zaktualizować ręcznie.
Jeśli napotkasz problem, który został rozwiązany w najnowszej wersji zestawu SDK usługi Application Insights, możesz usunąć automatyczną instrumentację i ręcznie skonfigurować swoją aplikację przy użyciu tej najnowszej wersji zestawu SDK.
Wersja języka Python usługi Application Insights jest aktualizowana automatycznie w ramach aktualizacji usługi App Service i nie można jej aktualizować ręcznie.
Obecnie nie oferujemy opcji konfigurowania rozszerzenia monitorowania dla platformy ASP.NET Core.
Aby skonfigurować próbkowanie, które wcześniej można było kontrolować za pośrednictwem pliku applicationinsights.config , można teraz wchodzić z nim w interakcje za pomocą ustawień aplikacji z odpowiednim prefiksem MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor
.
Aby na przykład zmienić początkową wartość procentową próbkowania, możesz utworzyć ustawienie MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_InitialSamplingPercentage
aplikacji i wartość 100
.
Aby wyłączyć próbkowanie, ustaw MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_MinSamplingPercentage
na wartość 100
.
Obsługiwane ustawienia obejmują:
MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_InitialSamplingPercentage
MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_MinSamplingPercentage
MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_EvaluationInterval
MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_MaxTelemetryItemsPerSecond
Aby uzyskać listę obsługiwanych ustawień i definicji procesora telemetrii próbkowania adaptacyjnego, zobacz dokumentację dotyczącą kodu i próbkowania.
Po określeniu zasobu do użycia można skonfigurować agenta Języka Java. Jeśli nie skonfigurujesz agenta Java, będą stosowane domyślne konfiguracje.
Dostępny jest pełny zestaw konfiguracji . Wystarczy wkleić prawidłowy plik JSON.
Wyklucz łańcuch połączenia i wszystkie konfiguracje dostępne w wersji preview. Możesz dodać elementy, które są obecnie dostępne w wersji preview, gdy staną się ogólnie dostępne.
Po zmodyfikowaniu konfiguracji za pośrednictwem witryny Azure Portal, zmienne środowiskowe APPLICATIONINSIGHTS_CONFIGURATION_FILE
zostaną automatycznie wypełnione i wyświetlone w panelu ustawień usługi App Service. Ta zmienna zawiera pełną zawartość JSON, którą wkleiłeś w polu tekstowym konfiguracji w portalu Azure dla aplikacji Java.
Agent Node.js można skonfigurować przy użyciu formatu JSON. Ustaw zmienną APPLICATIONINSIGHTS_CONFIGURATION_CONTENT
środowiskową na ciąg JSON lub ustaw APPLICATIONINSIGHTS_CONFIGURATION_FILE
zmienną środowiskową na ścieżkę pliku zawierającą kod JSON.
"samplingPercentage": 80,
"enableAutoCollectExternalLoggers": true,
"enableAutoCollectExceptions": true,
"enableAutoCollectHeartbeat": true,
"enableSendLiveMetrics": true,
...
Dostępny jest pełny zestaw konfiguracji . Wystarczy użyć prawidłowego pliku json.
Można skonfigurować za pomocą zmiennych środowiskowych OpenTelemetry, takich jak:
Zmienna środowiskowa |
Opis |
OTEL_SERVICE_NAME , OTEL_RESOURCE_ATTRIBUTES |
Określa atrybuty zasobów OpenTelemetry skojarzone z aplikacją. Można ustawić dowolne atrybuty zasobu za pomocą OTEL_RESOURCE_ATTRIBUTES lub użyć OTEL_SERVICE_NAME , aby ustawić tylko wartość service.name . |
OTEL_LOGS_EXPORTER |
Jeśli jest ustawiona wartość None , wyłącza zbieranie i eksportowanie danych telemetrycznych rejestrowania. |
OTEL_METRICS_EXPORTER |
Jeśli ustawiono na None , wyłącza zbieranie i eksportowanie metrycznych danych telemetrycznych. |
OTEL_TRACES_EXPORTER |
Jeśli jest ustawiona wartość None , wyłącza zbieranie i eksportowanie danych telemetrycznych śledzenia rozproszonego. |
OTEL_BLRP_SCHEDULE_DELAY |
Określa interwał eksportu rejestrowania w milisekundach. Wartość domyślna to 5000. |
OTEL_BSP_SCHEDULE_DELAY |
Określa interwał eksportu śledzenia rozproszonego w milisekundach. Wartość domyślna to 5000. |
OTEL_TRACES_SAMPLER_ARG |
Określa współczynnik telemetrii rozproszonego śledzenia do próbkowania. Zaakceptowane wartości wahają się od 0 do 1. Wartość domyślna to 1.0, co oznacza, że żadne dane telemetryczne nie są próbkowane. |
OTEL_PYTHON_DISABLED_INSTRUMENTATIONS |
Określa, które instrumentacje OpenTelemetry mają być wyłączone. Po dezaktywacji instrumentacje nie są wykonywane w ramach autoinstrumentacji. Akceptuje rozdzielaną przecinkami listę małych liter nazw bibliotek. Na przykład ustaw na "psycopg2,fastapi" , aby wyłączyć instrumentacje Psycopg2 i FastAPI. Domyślnie jest to pusta lista, co umożliwia wszystkie obsługiwane instrumentacje. |
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 Nowe ustawienie aplikacji z następującymi informacjami:
-
Nazwa:
APPINSIGHTS_JAVASCRIPT_ENABLED
-
Wartość:
false
Zapisz ustawienia. Uruchom ponownie aplikację.
Monitorowanie po stronie klienta jest opcją do włączenia w ASP.NET. Aby włączyć monitorowanie po stronie klienta:
Wybierz pozycję Ustawienia>Konfiguracja.
W obszarze Ustawienia aplikacji utwórz nowe ustawienie aplikacji:
-
Nazwa: wprowadź APPINSIGHTS_JAVASCRIPT_ENABLED.
-
Wartość: wprowadź true.
Zapisz ustawienia i uruchom ponownie aplikację.
Aby wyłączyć monitorowanie po stronie klienta, usuń skojarzona para wartości klucza z ustawień aplikacji lub ustaw wartość false.
Automatyzowanie monitorowania
Aby włączyć zbieranie danych telemetrycznych za pomocą usługi Application Insights, należy ustawić tylko następujące 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ść. |
disabled lub recommended . |
XDT_MicrosoftApplicationInsights_PreemptSdk |
Tylko w przypadku aplikacji ASP.NET Core. Umożliwia współdziałanie z zestawem SDK Application Insights. Ładuje rozszerzenie obok zestawu SDK i używa go do wysyłania danych telemetrycznych. (Wyłącza zestaw SDK usługi Application Insights). |
1 |
Definicje ustawień aplikacji
Nazwa ustawienia aplikacji |
Definicja |
Wartość |
ApplicationInsightsAgent_EXTENSION_VERSION |
Główne rozszerzenie, które kontroluje monitorowanie środowiska uruchomieniowego. |
~2 |
XDT_MicrosoftApplicationInsights_Mode |
W trybie domyślnym są włączone tylko podstawowe funkcje, aby zapewnić optymalną wydajność. |
default lub recommended |
InstrumentationEngine_EXTENSION_VERSION |
Określa, czy mechanizm przepisania binarnego InstrumentationEngine są włączone. To ustawienie ma wpływ na wydajność i wpływa na zimny start/czas uruchamiania. |
~1 |
XDT_MicrosoftApplicationInsights_BaseExtensions |
Kontroluje, czy teksty tabel SQL i Azure są przechwytywane wraz z wywołaniami zależności. Ostrzeżenie dotyczące wydajności: Czas zimnego uruchamiania aplikacji jest wpływany. To ustawienie wymaga InstrumentationEngine . |
~1 |
Definicje ustawień aplikacji
Nazwa ustawienia aplikacji |
Definicja |
Wartość |
ApplicationInsightsAgent_EXTENSION_VERSION |
Główne rozszerzenie, które kontroluje monitorowanie środowiska uruchomieniowego. |
~2 w systemie Windows lub ~3 w systemie Linux. |
XDT_MicrosoftApplicationInsights_Java |
Flaga do kontrolowania, czy agent języka Java jest uwzględniony. |
0 lub 1 (dotyczy tylko systemu Windows). |
Uwaga
Debuger migawek nie jest dostępny dla aplikacji Java.
Definicje ustawień aplikacji
Nazwa ustawienia aplikacji |
Definicja |
Wartość |
ApplicationInsightsAgent_EXTENSION_VERSION |
Główne rozszerzenie, które kontroluje monitorowanie środowiska uruchomieniowego. |
~2 w systemie Windows lub ~3 w systemie Linux. |
XDT_MicrosoftApplicationInsights_NodeJS |
Flaga do kontrolowania, czy agent Node.js jest uwzględniony. |
0 lub 1 (dotyczy tylko systemu Windows). |
Uwaga
Debuger migawek nie jest dostępny dla aplikacji Node.js.
Definicje ustawień aplikacji
Nazwa ustawienia aplikacji |
Definicja |
Wartość |
łańcuch_połączenia_dla_Application_Insights |
Ciąg połączeń dla zasobu usługi Application Insights. |
Przykład: abcd1234-ab12-cd34-abcd1234abcd |
ApplicationInsightsAgent_EXTENSION_VERSION |
Główne rozszerzenie, które kontroluje monitorowanie środowiska uruchomieniowego. |
~3 |
Uwaga
Debuger migawek nie jest dostępny dla aplikacji języka Python.
Ustawienia aplikacji usługi App Service w ramach Azure Resource Manager
Ustawieniami aplikacji dla Azure App Service można zarządzać i konfigurować je przy użyciu szablonów 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"
}
}
]
Automatyzowanie tworzenia zasobu usługi Application Insights i łączenie się z nowo utworzonym zasobem usługi App Service
Aby utworzyć szablon usługi Resource Manager z domyślnymi ustawieniami usługi Application Insights, rozpocznij proces tak, jakby utworzysz nową aplikację internetową z włączoną usługą Application Insights.
Utwórz nowy zasób usługi App Service z żądanymi informacjami o aplikacji internetowej. Włącz usługę Application Insights 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
nazwą swojej witryny.
Uwaga
Jeśli korzystasz z systemu Windows, ustaw ApplicationInsightsAgent_EXTENSION_VERSION
na ~2
. W przypadku korzystania z systemu Linux ustaw ApplicationInsightsAgent_EXTENSION_VERSION
na ~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
W przypadku korzystania z systemu Windows ustaw ApplicationInsightsAgent_EXTENSION_VERSION na ~2
. W przypadku korzystania z systemu Linux ustaw ApplicationInsightsAgent_EXTENSION_VERSION na ~3
wartość.
$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
Często zadawane pytania
Ta sekcja zawiera odpowiedzi na typowe pytania.
Co modyfikuje usługa Application Insights w moim projekcie?
Szczegóły zależą od typu projektu. Poniższa lista jest przykładem aplikacji internetowej.
Dodaje pliki do projektu:
- ApplicationInsights.config
- ai.js
Instaluje pakiety NuGet:
- Interfejs API usługi Application Insights: podstawowy interfejs API
- Interfejs API usługi Application Insights dla aplikacji internetowych: służy do wysyłania danych telemetrycznych z serwera
- Interfejs API usługi Application Insights dla aplikacji JavaScript: służy do wysyłania danych telemetrycznych z klienta
Obejmuje zestawy w pakietach:
- Microsoft.ApplicationInsights
- Microsoft.ApplicationInsights.Platform
Wstawia elementy do:
- Web.config
- packages.config
Wstawia fragmenty kodu klienta i serwera, aby zainicjować je za pomocą identyfikatora zasobu usługi Application Insights. Na przykład w aplikacji MVC kod jest wstawiany do strony głównej Views/Shared/_Layout.cshtml. Tylko w przypadku nowych projektów dodasz usługę Application Insights do istniejącego projektu ręcznie.
Jaka jest różnica między standardowymi metrykami z usługi Application Insights a metrykami z usługi Azure App Service?
Usługa Application Insights 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, usługa Application Insights nie ma żadnych danych telemetrycznych.
Czas trwania obliczany serverresponsetime
przez usługę Application Insights nie musi być zgodny z czasem odpowiedzi serwera obserwowanym przez usługę Web Apps. To zachowanie jest spowodowane tym, że usługa Application Insights 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 Insights.
Rozwiązywanie problemów
Testowanie łączności między hostem aplikacji a usługą pozyskiwania
Zestawy SDK usługi Application Insights i agenci wysyłają dane telemetryczne, aby były przetwarzane jako wywołania REST do naszych punktów końcowych przetwarzania. Możesz przetestować łączność z serwera webowego lub maszyny hostującej aplikację do punktów końcowych usługi pozyskiwania, używając bezpośrednich 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 Insights.
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ę.
Brak telemetrii
Windows
Sprawdź, czy ApplicationInsightsAgent_EXTENSION_VERSION
ustawienie aplikacji jest ustawione na wartość ~2
.
Przejdź do https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.
Upewnij się, że status rozszerzenia Application Insights 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 usługi Application Insights.
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żliwia udostępnienie informacji o środowisku uruchomieniowym.
Upewnij się, że IKeyExists jest True
. Jeśli to False
, dodaj APPINSIGHTS_INSTRUMENTATIONKEY
oraz APPLICATIONINSIGHTS_CONNECTION_STRING
z identyfikatorem GUID ikey do ustawień aplikacji.
Jeśli aplikacja odwołuje się do jakichkolwiek pakietów usługi Application Insights, włączenie integracji z usługą App Service może nie obowiązywać, a dane mogą nie być wyświetlane w usłudze Application Insights. Przykładem może być wcześniejsza instrumentacja aplikacji lub próba jej zainstrumentowania przy użyciu zestawu SDK ASP.NET Core. Aby rozwiązać ten problem, w witrynie Azure Portal włącz opcję Międzyoperacyjność z zestawem SDK Application Insights.
Ważne
Ta funkcja jest dostępna w wersji zapoznawczej.
Dane są wysyłane przy użyciu podejścia bez kodu, nawet jeśli zestaw SDK usługi Application Insights został pierwotnie użyty lub podjęto próbę użycia.
Ważne
Jeśli aplikacja użyła zestawu SDK usługi Application Insights 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.
Linux
Sprawdź, czy ApplicationInsightsAgent_EXTENSION_VERSION
ustawienie aplikacji jest ustawione na wartość ~3
.
Przejdź do https://your site name.scm.azurewebsites.net/ApplicationInsights
.
Na tej stronie potwierdź:
- Źródło stanu istnieje i wygląda następująco:
Status source /var/log/applicationinsights/status_abcde1234567_89_0.json
.
- Zostanie wyświetlona wartość
Auto-Instrumentation enabled successfully
. Jeśli podobna wartość nie jest obecna, oznacza to, że aplikacja nie jest 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żliwia udostępnienie informacji o środowisku uruchomieniowym.
-
IKeyExists to
True
. Jeśli False
, dodaj APPINSIGHTS_INSTRUMENTATIONKEY
i APPLICATIONINSIGHTS_CONNECTION_STRING
z identyfikatorem GUID ikey do ustawień aplikacji.
Domyślna witryna internetowa wdrożona za pomocą aplikacji internetowych nie obsługuje automatycznego monitorowania po stronie klienta
Podczas tworzenia aplikacji internetowej ze środowiskami uruchomieniowymi ASP.NET Core w usłudze App Service wdraża pojedynczą statyczną stronę HTML jako witrynę startową. Statyczna strona internetowa ładuje również składnik ASP.NET Web Part zarządzany przez ASP.NET na serwerze 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 bezkodowe po stronie serwera i klienta dla platformy ASP.NET Core w aplikacji internetowej usługi App Service, zalecamy wykonanie oficjalnych przewodników dotyczących tworzenia aplikacji internetowej ASP.NET Core. Następnie użyj instrukcji w bieżącym artykule, aby włączyć monitorowanie.
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 śledzić transakcje po stronie klienta w witrynie PHP lub WordPress, dodaj kod JavaScript po stronie klienta do swojej witryny przy użyciu JavaScript SDK.
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 jakiś aspekt zestawu SDK już obecny w aplikacji i wycofał się. Odwołanie do Microsoft.ApplicationInsights.AspNetCore lub Microsoft.ApplicationInsights może spowodować tę wartość. |
Usuń odwołania. Niektóre z tych odwołań są domyślnie dodawane z niektórych szablonów programu Visual Studio. Starsze wersje programu Visual Studio odwołują się do Microsoft.ApplicationInsights . |
AppAlreadyInstrumented:true |
Obecność Microsoft.ApplicationsInsights biblioteki DLL w folderze aplikacji z poprzedniego wdrożenia może również spowodować tę wartość. |
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) >Konsola debugowania>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. |
Uwaga
Podczas tworzenia aplikacji internetowej korzystając ze ASP.NET
środowisk uruchomieniowych w usłudze App Service, wdrażana jest pojedyncza statyczna strona HTML jako witryna startowa.
Nie zalecamy rozwiązywania problemu z szablonem domyślnym. Przed rozwiązaniem problemu wdróż aplikację.
Brak telemetrii
Sprawdź, czy ApplicationInsightsAgent_EXTENSION_VERSION
ustawienie aplikacji jest ustawione na wartość ~2
.
Przejdź do https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.
Upewnij się, że Application Insights Extension Status
jest Pre-Installed Site Extension, version 2.8.x.xxxx
i działa.
Jeśli nie jest uruchomiona, postępuj zgodnie z instrukcjami, aby włączyć monitorowanie usługi Application Insights.
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żliwia udostępnienie informacji o środowisku uruchomieniowym.
Upewnij się, że IKeyExists
jest to true
.
W przeciwnym razie dodaj APPINSIGHTS_INSTRUMENTATIONKEY
i APPLICATIONINSIGHTS_CONNECTION_STRING
oraz identyfikator GUID klucza instrumentacji do ustawień aplikacji.
Upewnij się, że nie ma żadnych wpisów dla AppAlreadyInstrumented
, AppContainsDiagnosticSourceAssembly
i AppContainsAspNetTelemetryCorrelationAssembly
.
Jeśli którykolwiek z tych wpisów istnieje, usuń następujące pakiety z aplikacji: Microsoft.ApplicationInsights
, System.Diagnostics.DiagnosticSource
i Microsoft.AspNet.TelemetryCorrelation
.
Domyślna witryna internetowa wdrożona za pomocą aplikacji internetowych nie obsługuje automatycznego monitorowania po stronie klienta
Podczas tworzenia aplikacji internetowej ze środowiskami uruchomieniowymi ASP.NET w usłudze App Service jest wdrażana pojedyncza statyczna strona HTML jako początkowa witryna internetowa. Statyczna strona internetowa ładuje również zarządzany przez ASP.NET komponent Web Part w usługach IIS. Ta strona umożliwia testowanie monitorowania bez kodu po stronie serwera, ale nie obsługuje automatycznego monitorowania po stronie klienta.
Jeśli chcesz przetestować bezkodowe monitorowanie po stronie serwera i klienta dla ASP.NET w aplikacji internetowej w usłudze App Service, zalecamy wykonanie oficjalnych przewodników dotyczących tworzenia aplikacji internetowej platformy ASP.NET Framework. Następnie użyj instrukcji w bieżącym artykule, aby włączyć monitorowanie.
APPINSIGHTS_JAVASCRIPT_ENABLED i urlCompression nie są obsługiwane
Jeśli używasz APPINSIGHTS_JAVASCRIPT_ENABLED=true
w przypadkach kodowania zawartości, mogą wystąpić błędy takie jak:
- Błąd ponownego zapisywania adresu URL 500.
- Błąd modułu ponownego zapisywania adresu URL 500.53 z komunikatem "Reguły ponownego zapisywania ruchu wychodzącego nie można zastosować, gdy zawartość odpowiedzi HTTP jest zakodowana ('gzip')."
Występuje błąd, ponieważ ustawienie aplikacji APPINSIGHTS_JAVASCRIPT_ENABLED
jest ustawione na true
, a jednocześnie jest obecne kodowanie zawartości. Ten scenariusz nie jest jeszcze obsługiwany. Obejściem jest usunięcie APPINSIGHTS_JAVASCRIPT_ENABLED
z ustawień aplikacji. Niestety, jeśli instrumentacja JavaScript po stronie klienta/przeglądarki jest nadal wymagana, ręczne odwołania do zestawu SDK są potrzebne dla stron internetowych. Postępuj zgodnie z instrukcjami dotyczącymi instrumentacji ręcznej przy użyciu zestawu SDK języka JavaScript.
Aby uzyskać najnowsze informacje na temat agenta/rozszerzenia usługi Application Insights, zobacz notatki o wydaniu.
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 śledzić transakcje po stronie klienta w witrynie PHP lub WordPress, dodaj kod JavaScript po stronie klienta do stron internetowych przy użyciu 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 jakiś aspekt zestawu SDK już obecny w aplikacji i wycofał się. Odwołanie do System.Diagnostics.DiagnosticSource , Microsoft.AspNet.TelemetryCorrelation lub Microsoft.ApplicationInsights może spowodować tę wartość. |
Usuń odwołania. Niektóre z tych odwołań są domyślnie dodawane z niektórych szablonów programu Visual Studio. Starsze wersje programu Visual Studio mogą dodawać odwołania do Microsoft.ApplicationInsights . |
AppAlreadyInstrumented:true |
Obecność powyższych bibliotek DLL w folderze aplikacji z poprzedniego wdrożenia może również spowodować tę wartość. |
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 zasobie usługi App Service. Aby sprawdzić katalog wwwroot aplikacji internetowej usługi App Service, wybierz pozycję Narzędzia zaawansowane (Kudu)>Debugowanie konsoli>CMD>home\site\wwwroot. |
AppContainsAspNetTelemetryCorrelationAssembly: true |
Ta wartość wskazuje, że rozszerzenie wykryło odwołania do Microsoft.AspNet.TelemetryCorrelation w aplikacji i cofa się. |
Usuń odniesienie. |
AppContainsDiagnosticSourceAssembly**:true |
Ta wartość wskazuje, że rozszerzenie wykryło odwołania do System.Diagnostics.DiagnosticSource w aplikacji i cofa się. |
W przypadku ASP.NET usuń odwołanie. |
IKeyExists:false |
Ta wartość wskazuje, że klucz instrumentacji nie jest obecny w ustawieniu APPINSIGHTS_INSTRUMENTATIONKEY aplikacji . Możliwe przyczyny mogą być przypadkowe usunięcie wartości lub zapomnienie ustawienia wartości w skrycie automatyzacji. |
Upewnij się, że ustawienie jest obecne w ustawieniach aplikacji usługi App Service. |
System.IO.FileNotFoundException po uaktualnieniu wersji 2.8.44
Wersja 2.8.44 autoinstrumentacji uaktualnia zestaw SDK usługi Application Insights do wersji 2.20.0. Zestaw SDK usługi Application Insights ma pośrednie odwołanie do System.Runtime.CompilerServices.Unsafe.dll
poprzez System.Diagnostics.DiagnosticSource.dll
. Jeśli aplikacja ma przekierowanie powiązania dla System.Runtime.CompilerServices.Unsafe.dll
i jeśli ta biblioteka nie znajduje się w folderze aplikacji, może wystąpić System.IO.FileNotFoundException
.
Aby rozwiązać ten problem, usuń wpis System.Runtime.CompilerServices.Unsafe.dll
przekierowania powiązania z pliku web.config. Jeśli aplikacja chce użyć System.Runtime.CompilerServices.Unsafe.dll
, ustaw przekierowanie powiązania, jak pokazano tutaj.
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.4.1" newVersion="4.0.4.1" />
</dependentAssembly>
Jako tymczasowe obejście można ustawić ustawienie ApplicationInsightsAgent_EXTENSION_VERSION
aplikacji na wartość 2.8.37
. To ustawienie wyzwala usługę App Service do używania starego rozszerzenia usługi Application Insights. Tymczasowe środki zaradcze powinny być stosowane tylko jako tymczasowe.
Brak telemetrii
Sprawdź, czy ApplicationInsightsAgent_EXTENSION_VERSION
ustawienie aplikacji jest ustawione na wartość ~2
w systemie Windows w ~3
systemie Linux
Sprawdź plik dziennika, aby upewnić się, że agent został uruchomiony pomyślnie: przejdź do https://yoursitename.scm.azurewebsites.net/
, pod SSH przejdź do katalogu głównego, plik dziennika znajduje się w LogFiles/ApplicationInsights.
Po włączeniu monitorowania aplikacji dla aplikacji Java możesz sprawdzić, czy agent działa, przeglądając metryki na żywo — nawet przed wdrożeniem i aplikacją w usłudze App Service zobaczysz niektóre żądania ze środowiska. Pamiętaj, że pełny zestaw danych telemetrycznych jest dostępny tylko wtedy, gdy aplikacja jest wdrożona i uruchomiona.
Ustaw APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL
zmienną środowiskową na debug
wartość , jeśli nie widzisz żadnych błędów i nie ma żadnych danych telemetrycznych.
Brak telemetrii
Windows
Sprawdź, czy ApplicationInsightsAgent_EXTENSION_VERSION
ustawienie aplikacji jest ustawione na wartość ~2
.
Przejdź do https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.
Upewnij się, że element Application Insights Extension Status
jest Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Jeśli nie jest uruchomiony, postępuj zgodnie z instrukcjami włączania monitorowania usługi Application Insights.
Przejdź do folderu D:\local\Temp\status.json i otwórz status.json.
Upewnij się, że SDKPresent
ustawiono wartość false, AgentInitializedSuccessfully
wartość true i IKey
mieć prawidłowy klucz iKey.
Przykład pliku JSON:
"AppType":"node.js",
"MachineName":"c89d3a6d0357",
"PID":"47",
"AgentInitializedSuccessfully":true,
"SDKPresent":false,
"IKey":"00000000-0000-0000-0000-000000000000",
"SdkVersion":"1.8.10"
Jeśli SDKPresent
to prawda, oznacza to, że rozszerzenie wykryło, że jakiś aspekt zestawu SDK jest już obecny w aplikacji i wycofa się.
Linux
Sprawdź, czy ApplicationInsightsAgent_EXTENSION_VERSION
ustawienie aplikacji jest ustawione na wartość ~3
.
Przejdź do folderu /var/log/applicationinsights/ i otwórz status.json.
Upewnij się, że SDKPresent
jest ustawiony na false, AgentInitializedSuccessfully
na true i że IKey
ma prawidłowy iKey.
Przykład pliku JSON:
"AppType":"node.js",
"MachineName":"c89d3a6d0357",
"PID":"47",
"AgentInitializedSuccessfully":true,
"SDKPresent":false,
"IKey":"00000000-0000-0000-0000-000000000000",
"SdkVersion":"1.8.10"
Jeśli SDKPresent
to prawda, oznacza to, że rozszerzenie wykryło, że jakiś aspekt zestawu SDK jest już obecny w aplikacji i wycofa się.
Zduplikowane dane telemetryczne
Użyj autoinstrumentacji wyłącznie w usłudze App Service, jeśli nie używasz ręcznej instrumentacji OpenTelemetry w swoim kodzie, takiej jak Wersja OpenTelemetry dla Azure Monitor lub Eksporter OpenTelemetry dla Azure Monitor.
Korzystanie z autoinstrumentacji na podstawie instrumentacji ręcznej może spowodować zduplikowane dane telemetryczne i zwiększyć koszt. Aby najpierw użyć autoinstrumentacji usługi App Service OpenTelemetry, usuń ręczną instrumentację OpenTelemetry z kodu.
Brak telemetrii
Jeśli brakuje telemetrii, wykonaj następujące kroki, aby upewnić się, że automatycznainstrumentacja jest włączona poprawnie.
Upewnij się, że funkcja autoinstrumentacji jest włączona w środowisku usługi Application Insights w zasobie usługi App Service.
Upewnij się, że ApplicationInsightsAgent_EXTENSION_VERSION
ustawienie aplikacji jest ustawione na wartość ~3
i że APPLICATIONINSIGHTS_CONNECTION_STRING
wskazuje na odpowiedni zasób usługi Application Insights.
Sprawdź diagnostykę autoinstrumentacji i dzienniki stanu.
a. Przejdź do folderu /var/log/applicationinsights/ i otwórz status_*.json.
b. Upewnij się, że AgentInitializedSuccessfully
jest ustawione na true i że IKey
ma prawidłowy klucz iKey.
Przykładowy plik JSON:
"AgentInitializedSuccessfully":true,
"AppType":"python",
"MachineName":"c89d3a6d0357",
"PID":"47",
"IKey":"00000000-0000-0000-0000-000000000000",
"SdkVersion":"1.0.0"
Plik applicationinsights-extension.log
w tym samym folderze może pokazywać inną pomocną diagnostykę.
Aplikacje Django
Jeśli aplikacja używa platformy Django i nie uruchamia się lub używa nieprawidłowych ustawień, upewnij się, że ustawiono zmienną DJANGO_SETTINGS_MODULE
środowiskową. Aby uzyskać szczegółowe informacje, zobacz sekcję Instrumentacja Django.
Aby uzyskać najnowsze aktualizacje i poprawki błędów, sprawdź informacje o nowościach w wersji.
Następne kroki