Analýza protokolů a metrik s využitím nastavení diagnostiky
Poznámka:
Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.
Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.
Tento článek se vztahuje na:✅ Java ✅ C#
Tento článek se vztahuje na:✅ Basic/Standard ✅ Enterprise
V tomto článku se dozvíte, jak analyzovat diagnostická data v Azure Spring Apps.
Pomocí funkce diagnostiky služby Azure Spring Apps můžete analyzovat protokoly a metriky pomocí některé z následujících služeb:
- Použijte Azure Log Analytics. Při exportu protokolů do Log Analytics dochází ke zpoždění.
- Uložte protokoly do účtu úložiště pro auditování nebo ruční kontrolu. Můžete zadat dobu uchování (ve dnech).
- Streamování protokolů do centra událostí pro příjem dat službou třetí strany nebo vlastním analytickým řešením
Zvolte kategorii protokolu a kategorii metrik, které chcete monitorovat.
Tip
Pokud chcete jenom streamovat protokoly, můžete použít příkaz Azure CLI az spring app logs.
Protokoly
Protokol | Popis |
---|---|
ApplicationConsole | Protokol konzoly pro všechny zákaznické aplikace |
SystemLogs | Dostupné LogType hodnoty jsou ConfigServer (jenom Basic/Standard), ServiceRegistry (všechny plány), ApiPortal (jenom plán Enterprise), (jenom plán Enterprise), ApplicationConfigurationService (jenom plán Enterprise) SpringCloudGateway a (jenom plán Enterprise) a SpringCloudGatewayOperator (jenom plán Enterprise). |
Příchozí protokoly | Protokoly příchozího přenosu dat všech aplikací zákazníka, pouze přístupové protokoly. |
BuildLogs | Sestavte protokoly všech aplikací zákazníka pro každou fázi sestavení. |
Poznámka:
Kvůli ochraně aplikace před potenciálním únikem přihlašovacích údajů se veškerý obsah protokolu s přihlašovacími údaji nebo jinými citlivými informacemi ***
maskuje . Například veškerý obsah protokolu s následujícími vzory se zpracovává jako citlivé informace a odpovídající hodnoty jsou maskované:
dbpass
,password
,key
,secret
,sig
asignature
za ním:
nebo=
. Tyto vzory se obvykle zobrazují v parametrech adresy URL a výpisech datové části. Napříkladhttps://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
se stanehttps://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=***
- Kódované řetězce podobné tokenům JWT ve formátu:
eyJxxxxxx.eyJxxxxxx
Pokud v protokolech najdete maskované hodnoty, nezapomeňte aktualizovat kód aplikace, aby se zabránilo úniku přihlašovacích údajů.
Metriky
Úplný seznam metrik najdete v části Možnosti metrik uživatelů v části Metriky pro Azure Spring Apps.
Začněte tím, že povolíte, aby jedna z těchto služeb přijímala data. Další informace o konfiguraci Log Analytics najdete v tématu Začínáme se službou Log Analytics ve službě Azure Monitor.
Konfigurace nastavení diagnostiky
Na webu Azure Portal přejděte do vaší instance Azure Spring Apps.
Vyberte možnost nastavení diagnostiky a pak vyberte Přidat nastavení diagnostiky.
Zadejte název nastavení a pak zvolte, kam chcete protokoly odeslat. Můžete vybrat libovolnou kombinaci následujících možností:
- Archivace do účtu úložiště
- Streamování do centra událostí
- Odeslání do Log Analytics
- Odeslání do partnerského řešení
Zvolte kategorii protokolu a kategorii metrik, kterou chcete monitorovat, a pak zadejte dobu uchovávání informací (ve dnech). Doba uchovávání se vztahuje pouze na účet úložiště.
Zvolte Uložit.
Poznámka:
Mezi vygenerovanými protokoly nebo metrikami a zobrazením v účtu úložiště, v centru událostí nebo log Analytics může docházet k mezerě až 15 minut. Pokud se instance Azure Spring Apps odstraní nebo přesune, operace nebude kaskádově převést prostředky nastavení diagnostiky. Prostředky nastavení diagnostiky musí být před operací s nadřazenou instancí Azure Spring Apps odstraněny ručně. Jinak platí, že pokud je nová instance Azure Spring Apps zřízená se stejným ID prostředku jako odstraněná instance nebo pokud se instance Azure Spring Apps přesune zpět, předchozí prostředky nastavení diagnostiky ho dál rozšiřují.
Zobrazení protokolů a metrik
Existují různé metody zobrazení protokolů a metrik, jak je popsáno v následujících nadpisech.
Použití podokna Protokoly
Na webu Azure Portal přejděte do vaší instance Azure Spring Apps.
Pokud chcete otevřít podokno Prohledávání protokolů, vyberte Protokoly.
Do vyhledávacího pole Tabulky použijte jeden z následujících dotazů:
Pokud chcete zobrazit protokoly, zadejte dotaz, například následující příklad:
AppPlatformLogsforSpring | limit 50
Pokud chcete zobrazit metriky, zadejte dotaz, například následující příklad:
AzureMetrics | limit 50
Pokud chcete zobrazit výsledek hledání, vyberte Spustit.
Použití Log Analytics
Na webu Azure Portal v levém podokně vyberte Log Analytics.
Vyberte pracovní prostor služby Log Analytics, který jste zvolili při přidání nastavení diagnostiky.
Pokud chcete otevřít podokno Prohledávání protokolů, vyberte Protokoly.
Do vyhledávacího pole Tabulky použijte jeden z následujících dotazů:
Pokud chcete zobrazit protokoly, zadejte dotaz, například následující příklad:
AppPlatformLogsforSpring | limit 50
Pokud chcete zobrazit metriky, zadejte dotaz, například následující příklad:
AzureMetrics | limit 50
Pokud chcete zobrazit výsledek hledání, vyberte Spustit.
Protokoly konkrétní aplikace nebo instance můžete prohledávat nastavením podmínky filtru, jak je znázorněno v následujícím příkladu:
AppPlatformLogsforSpring | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName" | limit 50
Poznámka:
==
rozlišují se malá a velká písmena, ale=~
ne.
Další informace o dotazovacím jazyce, který se používá v Log Analytics, najdete v dotazech na protokoly služby Azure Monitor. Pokud chcete dotazovat všechny protokoly Log Analytics z centralizovaného klienta, projděte si Azure Data Explorer.
Použití účtu úložiště
- Na webu Azure Portal najděte účty úložiště v levém navigačním panelu nebo vyhledávacím poli.
- Vyberte účet úložiště, který jste zvolili při přidání nastavení diagnostiky.
- Pokud chcete otevřít podokno Kontejner objektů blob, vyberte Objekty blob.
- Pokud chcete zkontrolovat protokoly aplikací, vyhledejte kontejner s názvem insights-logs-applicationconsole.
- Pokud chcete zkontrolovat metriky aplikací, vyhledejte kontejner s názvem insights-metrics-pt1m.
Další informace o odesílání diagnostickýchinformacích
Použití centra událostí
Na webu Azure Portal najděte službu Event Hubs v levém navigačním panelu nebo vyhledávacím poli.
Vyhledejte a vyberte centrum událostí, které jste zvolili při přidání nastavení diagnostiky.
Pokud chcete otevřít podokno Seznam centra událostí, vyberte Event Hubs.
Pokud chcete zkontrolovat protokoly aplikací, vyhledejte centrum událostí označované jako insights-logs-applicationconsole.
Pokud chcete zkontrolovat metriky aplikací, vyhledejte centrum událostí označované jako insights-metrics-pt1m.
Další informace o odesílání diagnostických informací do centra událostí najdete v tématu Streamování diagnostických dat Azure v horké cestě pomocí služby Event Hubs.
Analýza protokolů
Azure Log Analytics běží s modulem Kusto, abyste mohli dotazovat protokoly na analýzu. Rychlý úvod k dotazování protokolů pomocí Kusto najdete v kurzu služby Log Analytics.
Protokoly aplikací poskytují důležité informace a podrobné protokoly o stavu, výkonu a dalších informacích vaší aplikace. V dalších částech najdete několik jednoduchých dotazů, které vám pomůžou porozumět aktuálním a minulým stavům vaší aplikace.
Zobrazení protokolů aplikací z Azure Spring Apps
Pokud chcete zkontrolovat seznam aplikačních protokolů z Azure Spring Apps seřazený podle času s nejnovějšími zobrazenými protokoly, spusťte následující dotaz:
AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| sort by TimeGenerated desc
Zobrazení položek protokolů obsahujících chyby nebo výjimky
Pokud chcete zkontrolovat neseřazené položky protokolu, které zmiňují chybu nebo výjimku, spusťte následující dotaz:
AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| where Log contains "error" or Log contains "exception"
Tento dotaz použijte k vyhledání chyb nebo úpravě termínů dotazu a vyhledejte konkrétní kódy chyb nebo výjimky.
Zobrazení počtu chyb a výjimek hlášených vaší aplikací za poslední hodinu
Pokud chcete vytvořit výsečový graf zobrazující počet chyb a výjimek zaprotokolovaných vaší aplikací za poslední hodinu, spusťte následující dotaz:
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
Zobrazení položek protokolu příchozího přenosu dat obsahujícího konkrétního hostitele
Pokud chcete zkontrolovat položky protokolu vygenerované konkrétním hostitelem, spusťte následující dotaz:
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
Tento dotaz použijte k vyhledání odpovědi Status
a RequestTime
dalších vlastností protokolů příchozího přenosu dat tohoto konkrétního hostitele.
Zobrazení položek protokolu příchozího přenosu dat pro konkrétní ID požadavku
Pokud chcete zkontrolovat položky protokolu pro konkrétní requestId
hodnotu <request_ID>, spusťte následující dotaz:
AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and ReqId == "<request_ID>"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Zobrazení položek protokolu sestavení pro konkrétní aplikaci
Pokud chcete zkontrolovat položky protokolu pro konkrétní aplikaci během procesu sestavení, spusťte následující dotaz:
AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>"
| sort by TimeGenerated
Zobrazení položek protokolu sestavení pro konkrétní aplikaci v konkrétní fázi sestavení
Pokud chcete zkontrolovat položky protokolu pro konkrétní aplikaci v konkrétní fázi sestavení, spusťte následující dotaz. <app-name>
Zástupný symbol nahraďte názvem vaší aplikace. <build-stage>
Zástupný symbol nahraďte jednou z následujících hodnot, které představují fáze procesu sestavení: prepare
, detect
, restore
, analyze
, build
, , nebo export
completion
.
AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>" and ContainerName == "<build-stage>"
| sort by TimeGenerated
Zobrazení protokolů brány VMware Spring Cloud v plánu Enterprise
Pokud chcete zkontrolovat položky protokolu pro protokoly brány VMware Spring Cloud v plánu Enterprise, spusťte následující dotaz:
AppPlatformSystemLogs
| where LogType == "SpringCloudGateway"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Další komponenta s názvem Spring Cloud Gateway Operator řídí životní cyklus brány Spring Cloud a tras. Pokud narazíte na nějaké problémy s trasou, která se neprojeví, zkontrolujte protokoly pro tuto komponentu. Pokud chcete zkontrolovat položky protokolu pro operátora brány VMware Spring Cloud v plánu Enterprise, spusťte následující dotaz:
AppPlatformSystemLogs
| where LogType == "SpringCloudGatewayOperator"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Zobrazení protokolů služby Konfigurace aplikací pro Tanzu v plánu Enterprise
Pokud chcete zkontrolovat položky protokolu pro službu Application Configuration Service pro protokoly Tanzu v plánu Enterprise, spusťte následující dotaz:
AppPlatformSystemLogs
| where LogType == "ApplicationConfigurationService"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Zobrazení protokolů registru služby Tanzu v plánu Enterprise
Pokud chcete zkontrolovat položky protokolu pro protokoly registru služby Tanzu v plánu Enterprise, spusťte následující dotaz:
AppPlatformSystemLogs
| where LogType == "ServiceRegistry"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Zobrazení portálu API pro protokoly VMware Tanzu v plánu Enterprise
Pokud chcete zkontrolovat položky protokolu pro portál API pro protokoly VMware Tanzu v plánu Enterprise, spusťte následující dotaz:
AppPlatformSystemLogs
| where LogType == "ApiPortal"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Další informace o dotazování protokolů aplikace
Azure Monitor poskytuje rozsáhlou podporu pro dotazování protokolů aplikací pomocí Log Analytics. Další informace o této službě najdete v tématu Začínáme s dotazy na protokoly ve službě Azure Monitor. Další informace o vytváření dotazů pro analýzu protokolů aplikace najdete v tématu Přehled dotazů protokolu ve službě Azure Monitor.
Pohodlné vstupní body na webu Azure Portal
Pomocí následujících kroků přejděte do podokna Log Analytics s předdefinovanými dotazy:
Přejděte na stránku Přehled vaší instance služby Azure Spring Apps a v navigačním podokně vyberte Aplikace .
Vyhledejte cílovou aplikaci a pak vyberte místní nabídku.
V místní místní nabídce vyberte Zobrazit protokoly.
Tato akce vás přejde do podokna Log Analytics s předdefinovanými dotazy.
K zobrazení protokolů existují další vstupní body. Můžete také najít tlačítko Zobrazit protokoly pro spravované komponenty, jako je Build Service a Service Registry.
Nejčastější dotazy
Návody převod víceřádkových trasování zásobníku Java na jeden řádek?
Existuje alternativní řešení pro převod trasování víceřádkového zásobníku na jeden řádek. Výstup protokolu Java můžete upravit tak, aby přeformátovat zprávy trasování zásobníku a nahradit znaky nového řádku tokenem. Pokud používáte knihovnu Java Logback, můžete zprávy trasování zásobníku přeformátovat následujícím způsobem %replace(%ex){'[\r\n]+', '\\n'}%nopex
:
<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>
Token pak můžete v Log Analytics nahradit znaky nového řádku, jak je znázorněno v následujícím příkladu:
AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')
Možná budete moct použít stejnou strategii pro jiné knihovny protokolů Java.