Monitorowanie aplikacji dla usługi aplikacja systemu Azure i języka Java

Monitorowanie aplikacji internetowych Java działających w usługach aplikacja systemu Azure nie wymaga żadnych modyfikacji kodu. Ten artykuł przeprowadzi Cię przez proces włączania monitorowania aplikacji usługi Azure Monitor Szczegółowe informacje i zawiera wstępne wskazówki dotyczące automatyzowania procesu wdrożeń na dużą skalę.

Uwaga

W przypadku aplikacji Spring Boot Native Image użyj projektu aplikacji Java obrazów natywnych w usłudze Azure Monitor OpenTelemetry OpenTelemetry / Application Szczegółowe informacje w projekcie aplikacji Java obrazu natywnego platformy Spring Boot zamiast rozwiązania agenta Java usługi Application Szczegółowe informacje opisanego poniżej.

Włącz usługę Application Insights

Zalecanym sposobem włączenia monitorowania aplikacji dla aplikacji Java działających w usługach aplikacja systemu Azure jest witryna Azure Portal. Włączenie monitorowania aplikacji w witrynie Azure Portal spowoduje automatyczne instrumentację aplikacji przy użyciu Szczegółowe informacje aplikacji i nie wymaga żadnych zmian w kodzie. Możesz zastosować dodatkowe konfiguracje, a następnie w zależności od konkretnego scenariusza , w razie potrzeby dodać własną niestandardową telemetrię .

Automatycznainstrumentacja za pośrednictwem witryny Azure Portal

Możesz włączyć monitorowanie aplikacji Java działających w usłudze aplikacja systemu Azure tylko przy użyciu jednego wyboru, bez konieczności zmiany kodu. Integracja dodaje dane telemetryczne application Szczegółowe informacje Java 3.x i automatycznie zbiera dane telemetryczne.

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

  1. Wybierz pozycję Aplikacja Szczegółowe informacje w panelu sterowania platformy Azure dla usługi app Service, a następnie wybierz pozycję Włącz.

    Zrzut ekranu przedstawiający kartę Szczegółowe informacje aplikacji z wybraną włączoną funkcją .

  2. Wybierz opcję utworzenia nowego zasobu 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 spowoduje połączenie nowego zasobu aplikacji Szczegółowe informacje z usługą app Service. Spowoduje to również wyzwolenie ponownego uruchomienia usługi App Service.

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

  3. Ten ostatni krok jest opcjonalny. 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.

    Pełny zestaw konfiguracji jest dostępny. Wystarczy wkleić prawidłowy plik json. Wyklucz parametry połączenia i wszystkie konfiguracje dostępne w wersji zapoznawczej — możesz dodać elementy, które są obecnie dostępne w wersji zapoznawczej.

    Po zmodyfikowaniu konfiguracji za pośrednictwem witryny Azure Portal APPLICATIONINSIGHTS_CONFIGURATION_FILE zmiennej środowiskowej są automatycznie wypełniane i wyświetlane w panelu ustawień usługi App Service. Ta zmienna zawiera pełną zawartość json wklejaną w polu tekstowym konfiguracji witryny Azure Portal dla aplikacji Java.

    Zrzut ekranu przedstawiający instrumentację aplikacji.

Włączanie monitorowania po stronie klienta

Aby włączyć monitorowanie po stronie klienta dla aplikacji Java, należy ręcznie dodać zestaw JAVAScript SDK po stronie klienta do aplikacji.

Automatyzowanie monitorowania

Aby włączyć zbieranie danych telemetrycznych za pomocą Szczegółowe informacje aplikacji, należy ustawić tylko następujące ustawienia aplikacji:

Zrzut ekranu przedstawiający Ustawienia aplikacji usługi App Service z dostępnymi ustawieniami usługi Application Szczegółowe informacje.

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_MicrosoftApplication Szczegółowe informacje_Java Flaga do kontrolowania, czy agent języka Java jest uwzględniony. 0 lub 1 (dotyczy tylko systemu Windows).

Uwaga

Profiler i debuger migawek nie są dostępne dla aplikacji Java

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

Rozwiązywanie problemów

Skorzystaj z naszego przewodnika krok po kroku, aby rozwiązać problemy z aplikacjami opartymi na języku Java uruchomionymi w usługach aplikacja systemu Azure.

  1. Sprawdź, czy ApplicationInsightsAgent_EXTENSION_VERSION ustawienie aplikacji jest ustawione na wartość "~2" w systemie Windows, "~3" w systemie Linux

  2. Sprawdź plik dziennika, aby zobaczyć, że agent został uruchomiony pomyślnie: przejdź do folderu "https://yoursitename.scm.azurewebsites.net/w obszarze Zmiana protokołu SSH na katalog główny plik dziennika znajduje się w obszarze LogFiles/Application Szczegółowe informacje.

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

  3. 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.

  4. Ustaw zmienną środowiskową APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL na "debugowanie", jeśli nie widzisz żadnych błędów i nie ma żadnych danych telemetrycznych

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.

Ręczne wdrażanie najnowszej wersji aplikacji Szczegółowe informacje Java

Wersja aplikacji Szczegółowe informacje Java jest aktualizowana automatycznie w ramach aktualizacji usługi App Services.

Jeśli wystąpi problem, który został rozwiązany w najnowszej wersji aplikacji Szczegółowe informacje Java, możesz zaktualizować go ręcznie.

Aby ręcznie zaktualizować, wykonaj następujące kroki:

  1. Przekazywanie pliku 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 usługi Application Szczegółowe informacje Java, postępując zgodnie z instrukcjami podanymi 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.

  2. Wyłącz Szczegółowe informacje aplikacji za pośrednictwem karty Szczegółowe informacje aplikacji w witrynie Azure Portal.

  3. Po przekazaniu pliku jar agenta przejdź do pozycji Konfiguracje usługi App Service. Jeśli musisz użyć polecenia uruchamiania dla systemu Linux, dołącz argumenty jvm:

    Zrzut ekranu przedstawiający polecenie uruchamiania.

    Polecenie uruchamiania nie jest honorowe JAVA_OPTS dla języka JavaSE ani CATALINA_OPTS dla serwera 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.

  4. Uruchom ponownie aplikację, aby zastosować zmiany.

Uwaga

Jeśli ustawisz JAVA_OPTS dla środowiska JavaSE lub CATALINA_OPTS zmiennej środowiskowej Tomcat, musisz wyłączyć Szczegółowe informacje aplikacji w portalu. Jeśli wolisz włączyć Szczegółowe informacje aplikacji w portalu, upewnij się, że nie ustawiono zmiennej JAVA_OPTS JavaSE lub CATALINA_OPTS Tomcat w ustawieniach konfiguracji usługi App Service.

Informacje o wersji

Aby uzyskać najnowsze aktualizacje i poprawki błędów, zapoznaj się z informacjami o wersji.

Następne kroki