Analizowanie dzienników i metryk przy użyciu ustawień diagnostycznych

Uwaga

Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.

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.

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

  1. W witrynie Azure Portal przejdź do wystąpienia usługi Azure Spring Apps.

  2. Wybierz opcję ustawienia diagnostyki, a następnie wybierz pozycję Dodaj ustawienie diagnostyki.

  3. Wprowadź nazwę ustawienia, a następnie wybierz miejsce, w którym chcesz wysłać dzienniki. Możesz wybrać dowolną kombinację następujących trzech opcji:

    • Archiwizowanie na koncie magazynu
    • Przesyłanie strumieniowe do centrum zdarzeń
    • Wysyłanie do usługi Log Analytics
    • Wysyłanie do rozwiązania partnerskiego
  4. 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.

  5. 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 bloku Dzienniki

  1. W witrynie Azure Portal przejdź do wystąpienia usługi Azure Spring Apps.

  2. Aby otworzyć okienko Przeszukiwanie dzienników, wybierz pozycję Dzienniki.

  3. W polu wyszukiwania Tabele

    • Aby wyświetlić dzienniki, wprowadź proste zapytanie, takie jak:
    AppPlatformLogsforSpring
    | limit 50
    
    • Aby wyświetlić metryki, wprowadź proste zapytanie, takie jak:
    AzureMetrics
    | limit 50
    
  4. Aby wyświetlić wynik wyszukiwania, wybierz pozycję Uruchom.

Korzystanie z usługi Log Analytics

  1. W witrynie Azure Portal w okienku po lewej stronie wybierz pozycję Log Analytics.

  2. Wybierz obszar roboczy usługi Log Analytics wybrany podczas dodawania ustawień diagnostycznych.

  3. Aby otworzyć okienko Przeszukiwanie dzienników, wybierz pozycję Dzienniki.

  4. W polu wyszukiwania Tabele

    • aby wyświetlić dzienniki, wprowadź proste zapytanie, takie jak:
    AppPlatformLogsforSpring
    | limit 50
    
    • aby wyświetlić metryki, wprowadź proste zapytanie, takie jak:
    AzureMetrics
    | limit 50
    
  5. Aby wyświetlić wynik wyszukiwania, wybierz pozycję Uruchom.

  6. Dzienniki określonej aplikacji lub wystąpienia można przeszukiwać, ustawiając warunek filtru:

    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

  1. W witrynie Azure Portal znajdź konta magazynu w lewym panelu nawigacyjnym lub polu wyszukiwania.
  2. Wybierz konto magazynu wybrane podczas dodawania ustawień diagnostycznych.
  3. Aby otworzyć okienko Kontener obiektów blob, wybierz pozycję Obiekty blob.
  4. Aby przejrzeć dzienniki aplikacji, wyszukaj kontener o nazwie insights-logs-applicationconsole.
  5. 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ń

  1. W witrynie Azure Portal znajdź usługę Event Hubs w lewym panelu nawigacyjnym lub polu wyszukiwania.

  2. Wyszukaj i wybierz centrum zdarzeń wybrane podczas dodawania ustawień diagnostycznych.

  3. Aby otworzyć okienko Lista centrum zdarzeń, wybierz pozycję Event Hubs.

  4. Aby przejrzeć dzienniki aplikacji, wyszukaj centrum zdarzeń o nazwie insights-logs-applicationconsole.

  5. 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 generowane 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, RequestTimei 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, restoreanalyze, build, lub exportcompletion.

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.

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 poniżej:

AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')

Możesz użyć tej samej strategii dla innych bibliotek dzienników Języka Java.

Następne kroki