Analizowanie dzienników i metryk przy użyciu ustawień diagnostycznych
Uwaga
Plany Podstawowa, Standardowa i Enterprise zostaną wycofane od połowy marca 2025 r. z 3-letnim okresem emerytalnym. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.
Zużycie standardowe i dedykowany plan zostaną wycofane od 30 września 2024 r. z całkowitym zamknięciem po sześciu miesiącach. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu do usługi Azure Container Apps.
Ten artykuł dotyczy: ✔️ Java ✔️ C#
Ten artykuł dotyczy: ✔️ Podstawowa/Standardowa ✔️ Enterprise
W tym artykule pokazano, jak analizować dane diagnostyczne w usłudze Azure Spring Apps.
Korzystając z funkcji diagnostyki usługi Azure Spring Apps, można analizować dzienniki i metryki przy użyciu dowolnej z następujących usług:
- Korzystanie z usługi Azure Log Analytics. Podczas eksportowania dzienników do usługi Log Analytics występuje opóźnienie.
- Zapisz dzienniki na koncie magazynu na potrzeby inspekcji lub ręcznej inspekcji. Możesz określić czas przechowywania (w dniach).
- Przesyłanie strumieniowe dzienników do centrum zdarzeń w celu pozyskiwania przez usługę innej firmy lub niestandardowe rozwiązanie analityczne.
Wybierz kategorię dziennika i kategorię metryk, którą chcesz monitorować.
Napiwek
Jeśli chcesz tylko przesyłać strumieniowo dzienniki, możesz użyć polecenia interfejsu wiersza polecenia platformy Azure az spring app logs.
Dzienniki
Dziennik | opis |
---|---|
ApplicationConsole | Dziennik konsoli wszystkich aplikacji klienta. |
Dzienniki systemowe | Dostępne LogType wartości to ConfigServer (tylko wersja Podstawowa/Standardowa), ServiceRegistry (wszystkie plany), ApiPortal (tylko plan przedsiębiorstwa), (tylko plan przedsiębiorstwa), ApplicationConfigurationService (tylko plan Enterprise) SpringCloudGateway i SpringCloudGatewayOperator (tylko plan enterprise) |
Dzienniki ruchu przychodzącego | Dzienniki ruchu przychodzącego wszystkich aplikacji klienta uzyskują dostęp tylko do dzienników. |
Dzienniki kompilacji | Twórz dzienniki wszystkich aplikacji klienta dla każdego etapu kompilacji. |
Uwaga
Aby chronić aplikację przed potencjalnym wyciekiem poświadczeń, cała zawartość dziennika z poświadczeniami lub innymi poufnymi informacjami są maskowane za pomocą polecenia ***
. Na przykład każda zawartość dziennika z następującymi wzorcami jest obsługiwana jako informacje poufne, a odpowiednie wartości są maskowane:
dbpass
, ,password
,secret
key
, ,sig
i , asignature
następnie:
lub=
. Te wzorce są zwykle wyświetlane w parametrach adresu URL i zrzutach ładunku. Na przykładhttps://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=xxxxxxxxxxxxxx
staje sięhttps://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=***
- Ciągi kodowane jak token JWT w formacie:
eyJxxxxxx.eyJxxxxxx
Jeśli w dziennikach znajdziesz wartości maskowane, zaktualizuj kod aplikacji, aby wyeliminować wyciek poświadczeń.
Metryki
Aby uzyskać pełną listę metryk, zobacz sekcję Opcje metryk użytkownika w temacie Metryki dla usługi Azure Spring Apps.
Aby rozpocząć, włącz jedną z tych usług, aby odbierać dane. Aby dowiedzieć się więcej na temat konfigurowania usługi Log Analytics, zobacz Rozpoczynanie pracy z usługą Log Analytics w usłudze Azure Monitor.
Konfigurowanie ustawień diagnostycznych
W witrynie Azure Portal przejdź do wystąpienia usługi Azure Spring Apps.
Wybierz opcję ustawienia diagnostyki, a następnie wybierz pozycję Dodaj ustawienie diagnostyki.
Wprowadź nazwę ustawienia, a następnie wybierz miejsce, w którym chcesz wysłać dzienniki. Możesz wybrać dowolną kombinację następujących opcji:
- Archiwizowanie na koncie magazynu
- Przesyłanie strumieniowe do centrum zdarzeń
- Wysyłanie do usługi Log Analytics
- Wysyłanie do rozwiązania partnerskiego
Wybierz kategorię dziennika i kategorię metryk, którą chcesz monitorować, a następnie określ czas przechowywania (w dniach). Czas przechowywania dotyczy tylko konta magazynu.
Wybierz pozycję Zapisz.
Uwaga
Może wystąpić różnica do 15 minut między emitowane dziennikami lub metrykami a wyświetleniem ich na koncie magazynu, centrum zdarzeń lub w usłudze Log Analytics. Jeśli wystąpienie usługi Azure Spring Apps zostanie usunięte lub przeniesione, operacja nie zostanie kaskadowo przeniesiona do zasobów ustawień diagnostycznych. Zasoby ustawień diagnostycznych należy usunąć ręcznie przed operacją względem jej elementu nadrzędnego, wystąpienia usługi Azure Spring Apps. W przeciwnym razie, jeśli nowe wystąpienie usługi Azure Spring Apps zostanie aprowizowane przy użyciu tego samego identyfikatora zasobu co usunięte lub jeśli wystąpienie usługi Azure Spring Apps zostanie przeniesione z powrotem, poprzednie zasoby ustawień diagnostycznych będą nadal je rozszerzać.
Wyświetlanie dzienników i metryk
Istnieją różne metody wyświetlania dzienników i metryk zgodnie z opisem w poniższych nagłówkach.
Korzystanie z okienka Dzienniki
W witrynie Azure Portal przejdź do wystąpienia usługi Azure Spring Apps.
Aby otworzyć okienko Przeszukiwanie dzienników, wybierz pozycję Dzienniki.
W polu wyszukiwania Tabele użyj jednego z następujących zapytań:
Aby wyświetlić dzienniki, wprowadź zapytanie, takie jak w poniższym przykładzie:
AppPlatformLogsforSpring | limit 50
Aby wyświetlić metryki, wprowadź zapytanie, takie jak poniższy przykład:
AzureMetrics | limit 50
Aby wyświetlić wynik wyszukiwania, wybierz pozycję Uruchom.
Korzystanie z usługi Log Analytics
W witrynie Azure Portal w okienku po lewej stronie wybierz pozycję Log Analytics.
Wybierz obszar roboczy usługi Log Analytics wybrany podczas dodawania ustawień diagnostycznych.
Aby otworzyć okienko Przeszukiwanie dzienników, wybierz pozycję Dzienniki.
W polu wyszukiwania Tabele użyj jednego z następujących zapytań:
Aby wyświetlić dzienniki, wprowadź zapytanie, takie jak w poniższym przykładzie:
AppPlatformLogsforSpring | limit 50
Aby wyświetlić metryki, wprowadź zapytanie, takie jak poniższy przykład:
AzureMetrics | limit 50
Aby wyświetlić wynik wyszukiwania, wybierz pozycję Uruchom.
Dzienniki określonej aplikacji lub wystąpienia można przeszukiwać, ustawiając warunek filtru, jak pokazano w poniższym przykładzie:
AppPlatformLogsforSpring | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName" | limit 50
Uwaga
==
jest uwzględniana wielkość liter, ale=~
nie.
Aby dowiedzieć się więcej o języku zapytań używanym w usłudze Log Analytics, zobacz Zapytania dzienników usługi Azure Monitor. Aby wykonać zapytanie dotyczące wszystkich dzienników usługi Log Analytics ze scentralizowanego klienta, zapoznaj się z usługą Azure Data Explorer.
Korzystanie z konta magazynu
- W witrynie Azure Portal znajdź konta magazynu w lewym panelu nawigacyjnym lub polu wyszukiwania.
- Wybierz konto magazynu wybrane podczas dodawania ustawień diagnostycznych.
- Aby otworzyć okienko Kontener obiektów blob, wybierz pozycję Obiekty blob.
- Aby przejrzeć dzienniki aplikacji, wyszukaj kontener o nazwie insights-logs-applicationconsole.
- Aby przejrzeć metryki aplikacji, wyszukaj kontener o nazwie insights-metrics-pt1m.
Aby dowiedzieć się więcej na temat wysyłania informacji diagnostycznych do konta magazynu, zobacz Przechowywanie i wyświetlanie danych diagnostycznych w usłudze Azure Storage.
Korzystanie z centrum zdarzeń
W witrynie Azure Portal znajdź usługę Event Hubs w lewym panelu nawigacyjnym lub polu wyszukiwania.
Wyszukaj i wybierz centrum zdarzeń wybrane podczas dodawania ustawień diagnostycznych.
Aby otworzyć okienko Lista centrum zdarzeń, wybierz pozycję Event Hubs.
Aby przejrzeć dzienniki aplikacji, wyszukaj centrum zdarzeń o nazwie insights-logs-applicationconsole.
Aby przejrzeć metryki aplikacji, wyszukaj centrum zdarzeń o nazwie insights-metrics-pt1m.
Aby dowiedzieć się więcej na temat wysyłania informacji diagnostycznych do centrum zdarzeń, zobacz Przesyłanie strumieniowe Diagnostyka Azure danych w ścieżce gorącej przy użyciu usługi Event Hubs.
Analizowanie dzienników
Usługa Azure Log Analytics jest uruchomiona z aparatem Kusto, dzięki czemu można wykonywać zapytania dotyczące dzienników w celu analizy. Aby zapoznać się z szybkim wprowadzeniem do wykonywania zapytań dotyczących dzienników przy użyciu usługi Kusto, zapoznaj się z samouczkiem dotyczącym usługi Log Analytics.
Dzienniki aplikacji udostępniają krytyczne informacje i pełne dzienniki dotyczące kondycji, wydajności i nie tylko aplikacji. W następnych sekcjach przedstawiono kilka prostych zapytań, które ułatwiają zrozumienie bieżących i przeszłych stanów aplikacji.
Wyświetlanie dzienników aplikacji z usługi Azure Spring Apps
Aby przejrzeć listę dzienników aplikacji z usługi Azure Spring Apps, posortowana według czasu z wyświetlonymi ostatnio dziennikami, uruchom następujące zapytanie:
AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| sort by TimeGenerated desc
Pokaż wpisy dzienników zawierające błędy lub wyjątki
Aby przejrzeć niezasortowane wpisy dziennika, które zawierają błąd lub wyjątek, uruchom następujące zapytanie:
AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| where Log contains "error" or Log contains "exception"
Użyj tego zapytania, aby znaleźć błędy lub zmodyfikować terminy zapytania, aby znaleźć określone kody błędów lub wyjątki.
Pokaż liczbę błędów i wyjątków zgłoszonych przez aplikację w ciągu ostatniej godziny
Aby utworzyć wykres kołowy, który wyświetla liczbę błędów i wyjątków zarejestrowanych przez aplikację w ciągu ostatniej godziny, uruchom następujące zapytanie:
AppPlatformLogsforSpring
| where TimeGenerated > ago(1h)
| where Log contains "error" or Log contains "exception"
| summarize count_per_app = count() by AppName
| sort by count_per_app desc
| render piechart
Pokazywanie wpisów dziennika ruchu przychodzącego zawierającego określonego hosta
Aby przejrzeć wpisy dziennika wygenerowane przez określonego hosta, uruchom następujące zapytanie:
AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and Host == "ingress-asc.test.azuremicroservices.io"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Użyj tego zapytania, aby znaleźć odpowiedzi Status
, RequestTime
i inne właściwości dzienników ruchu przychodzącego tego hosta.
Pokaż wpisy dziennika ruchu przychodzącego dla określonego identyfikatora żądania
Aby przejrzeć wpisy dziennika dla określonej requestId
wartości <request_ID>, uruchom następujące zapytanie:
AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and ReqId == "<request_ID>"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Pokaż wpisy dziennika kompilacji dla określonej aplikacji
Aby przejrzeć wpisy dziennika dla określonej aplikacji podczas procesu kompilacji, uruchom następujące zapytanie:
AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>"
| sort by TimeGenerated
Wyświetlanie wpisów dziennika kompilacji dla określonej aplikacji na określonym etapie kompilacji
Aby przejrzeć wpisy dziennika dla określonej aplikacji na określonym etapie kompilacji, uruchom następujące zapytanie. Zastąp <app-name>
symbol zastępczy nazwą aplikacji. <build-stage>
Zastąp symbol zastępczy jedną z następujących wartości, które reprezentują etapy procesu kompilacji: prepare
, , detect
, restore
analyze
, build
, lub export
completion
.
AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>" and ContainerName == "<build-stage>"
| sort by TimeGenerated
Pokaż dzienniki usługi VMware Spring Cloud Gateway w planie enterprise
Aby przejrzeć wpisy dziennika dla dzienników usługi VMware Spring Cloud Gateway w planie Enterprise, uruchom następujące zapytanie:
AppPlatformSystemLogs
| where LogType == "SpringCloudGateway"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Inny składnik o nazwie Spring Cloud Gateway Operator kontroluje cykl życia bramy Spring Cloud Gateway i tras. Jeśli wystąpią jakiekolwiek problemy z brakiem wpływu trasy, sprawdź dzienniki dla tego składnika. Aby przejrzeć wpisy dziennika dla operatora bramy VMware Spring Cloud Gateway w planie Enterprise, uruchom następujące zapytanie:
AppPlatformSystemLogs
| where LogType == "SpringCloudGatewayOperator"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Pokaż dzienniki usługi konfiguracji aplikacji Tanzu w planie Enterprise
Aby przejrzeć wpisy dziennika dla dzienników usługi Konfiguracji aplikacji dla dzienników Tanzu w planie Enterprise, uruchom następujące zapytanie:
AppPlatformSystemLogs
| where LogType == "ApplicationConfigurationService"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Pokaż dzienniki rejestru usługi Tanzu w planie enterprise
Aby przejrzeć wpisy dziennika dla dzienników rejestru usługi Tanzu w planie przedsiębiorstwa, uruchom następujące zapytanie:
AppPlatformSystemLogs
| where LogType == "ServiceRegistry"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Pokaż portal interfejsu API dla dzienników programu VMware Tanzu w planie Enterprise
Aby przejrzeć wpisy dziennika dla portalu interfejsu API dla dzienników programu VMware Tanzu w planie Enterprise, uruchom następujące zapytanie:
AppPlatformSystemLogs
| where LogType == "ApiPortal"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Dowiedz się więcej na temat wykonywania zapytań dotyczących dzienników aplikacji
Usługa Azure Monitor zapewnia rozbudowaną obsługę wykonywania zapytań dotyczących dzienników aplikacji przy użyciu usługi Log Analytics. Aby dowiedzieć się więcej na temat tej usługi, zobacz Wprowadzenie do zapytań dzienników w usłudze Azure Monitor. Aby uzyskać więcej informacji na temat tworzenia zapytań do analizowania dzienników aplikacji, zobacz Omówienie zapytań dzienników w usłudze Azure Monitor.
Wygodne punkty wejścia w witrynie Azure Portal
Wykonaj następujące kroki, aby przejść do okienka usługi Log Analytics ze wstępnie zdefiniowanymi zapytaniami:
Przejdź do strony Przegląd wystąpienia usługi Azure Spring Apps, a następnie wybierz pozycję Aplikacje w okienku nawigacji.
Znajdź aplikację docelową, a następnie wybierz menu kontekstowe.
W wyskakującym menu kontekstowym wybierz pozycję Wyświetl dzienniki.
Ta akcja powoduje przejście do okienka usługi Log Analytics ze wstępnie zdefiniowanymi zapytaniami.
Istnieją inne punkty wejścia do wyświetlania dzienników. Możesz również znaleźć przycisk Wyświetl dzienniki dla składników zarządzanych, takich jak Build Service i Service Registry.
Często zadawane pytania
Jak mogę przekonwertować wielowierszowe ślady stosu Java na jedną linię?
Istnieje obejście umożliwiające przekonwertowanie śladów stosu wielowierszowego na jedną linię. Możesz zmodyfikować dane wyjściowe dziennika Języka Java, aby ponownie sformatować komunikaty śledzenia stosu, zastępując znaki nowego wiersza tokenem. Jeśli używasz biblioteki Java Logback, możesz ponownie sformatować komunikaty śledzenia stosu, dodając %replace(%ex){'[\r\n]+', '\\n'}%nopex
w następujący sposób:
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
level: %level, message: "%logger{36}: %msg", exceptions: "%replace(%ex){'[\r\n]+', '\\n'}%nopex"%n
</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
Następnie możesz zastąpić token znakiem nowego wiersza w usłudze Log Analytics, jak pokazano w poniższym przykładzie:
AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')
Możesz użyć tej samej strategii dla innych bibliotek dzienników Języka Java.