Sdílet prostřednictvím


Protokolování a metriky v Azure Container Apps

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:✅ Basic/Standard ✅ Enterprise

Když přecházíte z Azure Spring Apps na Azure Container Apps, najdete podobné pozorovatelné funkce, ale s některými klíčovými rozdíly. Tento článek popisuje tyto rozdíly a vysvětluje, jak monitorovat aplikace ve službě Azure Container Apps.

Požadavky

Protokoly

Konfigurace možností protokolování

Azure Container Apps umožňuje spravovat protokolování v prostředí Azure Container Apps.

Protokoly můžete ukládat jak v Azure Log Analytics, tak ve službě Azure Monitor. Pokud zvolíte Azure Monitor, v nastavení prostředí najdete nabídku nastavení diagnostiky, která je podobná nabídce v Azure Spring Apps.

Když vytvoříte prostředí pomocí Azure CLI, jak je znázorněno v následujícím příkladu, zřídí se automaticky vygenerovaný pracovní prostor služby Log Analytics.

az containerapp env create \
    --resource-group MyResourceGroup \
    --name MyContainerappEnvironment \
    --location eastus2

K vytvoření prostředí s existujícím pracovním prostorem služby Log Analytics můžete použít také následující příkaz:

az containerapp env create \
    --resource-group MyResourceGroup \
    --name MyContainerappEnvironment \
    --logs-workspace-id myLogsWorkspaceID \
    --logs-workspace-key myLogsWorkspaceKey \
    --location eastus2

Analýza protokolů

Azure Container Apps umožňuje streamovat protokoly z konzoly kontejneru. Následující seznam popisuje hlavní rozdíly v protokolování:

  • Protokoly konzoly: V případě protokolů konzoly zadejte dotaz na ContainerAppConsoleLogs_CL tabulku v Azure Container Apps místo tabulky ApplicationConsole používané v Azure Spring Apps.

  • Systémové protokoly: Azure Spring Apps poskytuje SystemLogs konfigurační server, registr služeb, portál API, službu Konfigurace aplikací a bránu Spring Cloud. V Azure Container Apps musíte tyto komponenty zřídit jako samostatné aplikace a dotazovat se na jejich protokoly v ContainerAppConsoleLogs_CL tabulce a zadat název každé aplikace v dotazu.

  • Protokoly sestavení: Protokoly sestavení z místních buildů s balíčky Paketo Buildpack nejsou dostupné v Azure Container Apps, které se liší od Azure Spring Apps.

Zobrazení protokolů

Služba Azure Container Apps ve výchozím nastavení odesílá protokoly přímo do Azure Log Analytics. Pokud se ale rozhodnete ukládat protokoly ve službě Azure Monitor, názvy tabulek a sloupců se můžou lišit. Názvy tabulek a sloupců ve službě Azure Monitor neobsahují přípony. Například místo vytváření dotazů pro protokoly uložené ve službě Azure Monitor použijte ContainerAppConsoleLogs místo ContainerAppConsoleLogs_CLLog něj a ne Log_s .

Pokud chcete zobrazit protokoly konzoly v Azure Container Apps, použijte jako příklad následující dotaz:

ContainerAppConsoleLogs_CL
| limit 50

Azure Log Analytics běží s modulem Kusto, abyste mohli dotazovat protokoly na analýzu. Úvod k dotazování protokolů pomocí Kusto najdete v kurzu k Log Analytics.

Zobrazení protokolů aplikace

Pokud chcete zkontrolovat seznam protokolů aplikací seřazený podle času s nejnovějšími zobrazenými protokoly, použijte následující dotaz:

ContainerAppConsoleLogs_CL
| project TimeGenerated, EnvironmentName_s, ContainerAppName_s, RevisionName_s, Log_s
| sort by TimeGenerated desc

Zobrazení položek protokolu obsahujících chyby nebo výjimky

Pokud chcete zkontrolovat neseřazené položky protokolu, které zmiňují chybu nebo výjimku, použijte následující dotaz:

ContainerAppConsoleLogs_CL
| project TimeGenerated, EnvironmentName_s, ContainerAppName_s, RevisionName_s, Log_s
| where Log_s contains "error" or Log_s 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, použijte následující dotaz:

ContainerAppConsoleLogs_CL
| where TimeGenerated > ago(1h)
| where Log_s contains "error" or Log_s contains "exception"
| summarize count_per_app = count() by ContainerAppName_s
| sort by count_per_app desc
| render piechart

Zobrazení protokolů brány Spring Cloud

Pokud chcete zkontrolovat položky protokolu pro protokoly brány Spring Cloud, použijte následující dotaz:

ContainerAppSystemLogs_CL
| where ComponentType_s == "SpringCloudGateway"
| project TimeGenerated, ComponentType_s, EnvironmentName_s, ComponentName_s, Log_s
| limit 100

Zobrazit protokoly serveru Eureka

Pokud chcete zkontrolovat položky protokolu pro protokoly Serveru Eureka, použijte následující dotaz:

ContainerAppSystemLogs_CL
| where ComponentType_s == "SpringCloudEureka"
| project TimeGenerated, ComponentType_s, EnvironmentName_s, ComponentName_s, Log_s
| limit 100

Metriky

Následující tabulky mapuje metriky mezi Azure Spring Apps a Azure Container Apps:

Běžný

Název metriky Azure Spring Apps Název metriky Azure Container Apps
Využití CPU pro aplikaci
Využití paměti pro aplikaci
Síť aplikací v aplikaci
Odchozí síť aplikací

Metriky chyb

Název metriky Azure Spring Apps Název metriky Azure Container Apps
tomcat.global.error

Metriky výkonu

Název metriky Azure Spring Apps Název metriky Azure Container Apps
system.cpu.usage Procento využití procesoru (Preview)
process.cpu.usage
Využití paměti pro aplikaci
jvm.memory.committed jvm.memory.committed
jvm.memory.used jvm.memory.used
jvm.memory.max N/A
Další metriky prostředí JVM

Metriky výkonu .NET

Název metriky Azure Spring Apps Název metriky Azure Container Apps
Využití procesoru Procento využití procesoru (Preview)
Pracovní sada Bajty pracovní sady paměti
Velikost haldy GC
Počet GC Gen 0
Další metriky GC

Vyžádání metrik

Název metriky Azure Spring Apps Název metriky Azure Container Apps
tomcat.global.sent
tomcat.global.request.total.count Žádosti

Metriky požadavků .NET

Název metriky Azure Spring Apps Název metriky Azure Container Apps
Počet žádostí za sekundu
Celkový počet požadavků Žádosti

Metriky relací

Název metriky Azure Spring Apps Název metriky Azure Container Apps
tomcat.sessions.active.max
tomcat.sessions.alive.max N/A

Metriky Java pro aplikace v Javě v Azure Container Apps

Pokud jako vývojový zásobník pro Azure Container Apps zvolíte Javu , monitorování metrik prostředí Java Virtual Machine (JVM) je nezbytné k zajištění stavu a výkonu vašich aplikací. Další informace najdete v tématu Metriky Java pro aplikace v Javě v Azure Container Apps.

Spravované součásti

Informace o monitorování spravovaných komponent najdete v následujících článcích:

Integrace

Azure Container Apps nabízí několik integrovaných funkcí pozorovatelnosti, které vám pomůžou monitorovat a diagnostikovat stav vaší aplikace. Pokud ale chcete použít Azure Monitor Application Insights nebo jiné agenty monitorování výkonu aplikací (APM), musíte do kódu aplikace přidat instrumentaci.

Integrace s monitorováním výkonu aplikací

Informace o integraci se službou Azure Monitor Application Insights nebo jinými apmy najdete v tématu Integrace monitorování výkonu aplikací do imagí kontejnerů.

Agenti OpenTelemetry (Preview)

Data pozorovatelnosti ve formátu OpenTelemetry můžete odesílat do cílů, jako je Azure Monitor Application Insights, Datadog nebo jakýkoli koncový bod kompatibilní s OTLP pomocí datového agenta OpenTelemetry s prostředím Azure Container Apps. Spravovaný agent zjednodušuje konfiguraci tím, že umožňuje změnit cílové koncové body bez ručního spuštění nebo změny konfigurace agenta. Pokud ho chcete nastavit, nakonfigurujte agenta ve vašem prostředí kontejneru pomocí šablon ARM, Bicep nebo Azure CLI a připravte aplikaci instalací sady OpenTelemetry SDK a instrumentací kódu pro metriky, protokoly nebo trasování. Nezapomeňte předem nastavit cílovou službu, například Application Insights. Každý cíl má specifické požadavky a agent odesílá data jenom v případě, že je správně nakonfigurovaný a instrumentovaný. Další informace najdete v tématu Shromažďování a čtení dat OpenTelemetry v Azure Container Apps.

Vlastní řídicí panely a upozornění

Při nasazování aplikací do Azure Container Apps můžou vaše vlastní řídicí panely spoléhat na dva různé přístupy k vytváření zdrojů dat:

  • Agenti APM integrovaných aplikací: Pokud jste do aplikace integrují agenty APM třetích stran během procesu sestavení, tito agenti odesílají metriky a protokoly přímo do platformy APM. V takovém případě, pokud kód aplikace zůstane beze změny, nemusíte upravovat řídicí panely.

  • Řídicí panely založené na službě Azure Monitor: Pokud řídicí panely používají metriky a protokoly ze služby Azure Monitor – například prostřednictvím rozhraní Application Insights API, Azure Event Hubs nebo Azure Storage – možná je budete muset aktualizovat tak, aby odrážely názvy metrik, obory názvů nebo struktury protokolů specifické pro Azure Container Apps. Nezapomeňte zkontrolovat a aktualizovat řídicí panely na základě mapování metrik specifických pro Azure Container Apps a datových struktur.

Pečlivě ověřte konfigurace řídicího panelu, abyste měli jistotu, že po přechodu na Azure Container Apps zůstanou přesné.

Odstraňování potíží

Azure Container Apps neposkytuje rozhraní API pro generování výpisu paměti haldy nebo výpisu vláken pro aplikace v Javě. Pokud chcete tyto výpisy paměti vytvořit, musíte se připojit k aplikaci kontejneru prostřednictvím konzoly. Pak pomocí jmap příkazu nebo jstack vygenerujte soubory výpisu paměti uvnitř kontejneru. Potom zkopírujte vygenerované soubory do místního počítače pro další analýzu.

Pomocí příkazu můžete také jcmd provést stejnou operaci a spustit Java Flight Recorder (JFR) ve spuštěné aplikaci. Další informace o přístupu k aplikaci kontejneru prostřednictvím konzoly najdete v tématu Připojení ke konzole kontejneru v Azure Container Apps.

Známá omezení

  • Strukturované protokoly: Azure Container Apps nepodporuje protokoly strukturovaných aplikací. Pokud se protokoly vaší aplikace řídí schématem Azure Spring Apps, zobrazí se celý řetězec JSON ve Log_s sloupci ContainerAppConsoleLogs_CL.
  • Protokoly příchozího přenosu dat: Zatímco azure Spring Apps má integrované přístupové protokoly příchozího přenosu dat, Azure Container Apps ne. Abyste mohli tato data zachytit, musíte do kódu aplikace implementovat protokolování přístupu.
  • Azure Container Apps neposkytuje události životního cyklu aplikace.
  • Azure Container Apps nemá integrovanou podporu pro metriky příchozího přenosu dat. Ve svých aplikacích je potřeba implementovat vlastní sledování.