Delen via


Logboeken en metrische gegevens in Azure Container Apps

Notitie

De Basic-, Standard- en Enterprise-abonnementen worden afgeschaft vanaf medio maart 2025, met een pensioenperiode van 3 jaar. We raden u aan om over te stappen naar Azure Container Apps. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.

Het standaardverbruik en het speciale abonnement worden vanaf 30 september 2024 afgeschaft, met een volledige afsluiting na zes maanden. We raden u aan om over te stappen naar Azure Container Apps. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.

Dit artikel is van toepassing op:✅ Basic/Standard ✅ Enterprise

Wanneer u overstapt van Azure Spring Apps naar Azure Container Apps, vindt u vergelijkbare waarneembaarheidsfuncties, maar met enkele belangrijke verschillen. In dit artikel worden deze verschillen beschreven en wordt uitgelegd hoe u uw toepassingen in Azure Container Apps kunt bewaken.

Vereisten

Logboeken

Opties voor logboekregistratie configureren

Met Azure Container Apps kunt u logboekregistratie beheren in de Azure Container Apps-omgeving.

U kunt logboeken opslaan in zowel Azure Log Analytics als Azure Monitor. Als u Azure Monitor kiest, vindt u een menu met diagnostische instellingen in de omgevingsinstellingen, vergelijkbaar met die in Azure Spring Apps.

Wanneer u een omgeving maakt met de Azure CLI, zoals wordt weergegeven in het volgende voorbeeld, wordt er een automatisch gegenereerde Log Analytics-werkruimte ingericht.

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

U kunt ook de volgende opdracht gebruiken om een omgeving te maken met een bestaande Log Analytics-werkruimte:

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

Logboeken analyseren

Met Azure Container Apps kunt u logboeken streamen vanuit uw containerconsole. In de volgende lijst worden de belangrijkste verschillen in logboekregistratie beschreven:

  • Consolelogboeken: Voor consolelogboeken voert u een query uit op de ContainerAppConsoleLogs_CL tabel in Azure Container Apps in plaats van de ApplicationConsole tabel die wordt gebruikt in Azure Spring Apps.

  • Systeemlogboeken: Azure Spring Apps biedt SystemLogs Config Server, Service Registry, API Portal, Application Configuration Service en Spring Cloud Gateway. In Azure Container Apps moet u deze onderdelen inrichten als afzonderlijke toepassingen en hun logboeken in de ContainerAppConsoleLogs_CL tabel opvragen, waarbij u de naam van elke app in uw query opgeeft.

  • Buildlogboeken: Bouw logboeken van lokale builds met Paketo Buildpacks zijn niet beschikbaar in Azure Container Apps, wat verschilt van Azure Spring Apps.

Logboeken weergeven

Azure Container Apps verzendt standaard logboeken rechtstreeks naar Azure Log Analytics. Als u er echter voor kiest om logboeken op te slaan in Azure Monitor, kunnen de tabel- en kolomnamen verschillen. In Azure Monitor bevatten tabel- en kolomnamen geen achtervoegsels. Gebruik bijvoorbeeld ContainerAppConsoleLogs in plaats van ContainerAppConsoleLogs_CL en Log in plaats van bij het maken van Log_s query's voor logboeken die zijn opgeslagen in Azure Monitor.

Als u consolelogboeken in Azure Container Apps wilt weergeven, gebruikt u de volgende query als voorbeeld:

ContainerAppConsoleLogs_CL
| limit 50

Azure Log Analytics wordt uitgevoerd met een Kusto-engine, zodat u query's kunt uitvoeren op uw logboeken voor analyse. Zie de zelfstudie log analytics voor een inleiding tot het uitvoeren van query's op logboeken met behulp van Kusto.

Toepassingslogboeken weergeven

Als u een lijst met toepassingslogboeken wilt bekijken, gesorteerd op tijd met de meest recente logboeken die eerst worden weergegeven, gebruikt u de volgende query:

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

Logboekvermeldingen met fouten of uitzonderingen weergeven

Als u niet-gesorteerde logboekvermeldingen met een fout of uitzondering wilt bekijken, gebruikt u de volgende query:

ContainerAppConsoleLogs_CL
| project TimeGenerated, EnvironmentName_s, ContainerAppName_s, RevisionName_s, Log_s
| where Log_s contains "error" or Log_s contains "exception"

Gebruik deze query om fouten te vinden of wijzig de querytermen om specifieke foutcodes of uitzonderingen te vinden.

Het aantal fouten en uitzonderingen weergeven dat in het afgelopen uur door uw toepassing is gerapporteerd

Als u een cirkeldiagram wilt maken waarin het aantal fouten en uitzonderingen wordt weergegeven dat in het afgelopen uur door uw toepassing is geregistreerd, gebruikt u de volgende query:

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

Spring Cloud Gateway-logboeken weergeven

Gebruik de volgende query om logboekvermeldingen voor Spring Cloud Gateway-logboeken te controleren:

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

Eureka Server-logboeken weergeven

Als u logboekvermeldingen voor Eureka Server-logboeken wilt bekijken, gebruikt u de volgende query:

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

Metrische gegevens

De volgende tabellen wijzen metrische gegevens toe tussen Azure Spring Apps en Azure Container Apps:

Gemeenschappelijk

Naam van metrische gegevens van Azure Spring Apps Naam van metrische gegevens van Azure Container Apps
CPU-gebruik van app N.v.t.
Geheugengebruik van app N.v.t.
App-netwerk in N.v.t.
App-netwerk uit N.v.t.

Foutstatistieken

Naam van metrische gegevens van Azure Spring Apps Naam van metrische gegevens van Azure Container Apps
tomcat.global.error N.v.t.

Metrische gegevens voor prestaties

Naam van metrische gegevens van Azure Spring Apps Naam van metrische gegevens van Azure Container Apps
system.cpu.usage CPU-gebruikspercentage (preview)
process.cpu.usage N.v.t.
Geheugengebruik van app N.v.t.
jvm.memory.committed jvm.memory.committed
jvm.memory.used jvm.memory.used
jvm.memory.max N.v.t.
Aanvullende metrische JVM-gegevens N.v.t.

Metrische gegevens over .NET-prestaties

Naam van metrische gegevens van Azure Spring Apps Naam van metrische gegevens van Azure Container Apps
CPU-gebruik CPU-gebruikspercentage (preview)
Werkset Geheugenwerkset bytes
Grootte van GC-heap N.v.t.
Aantal gen 0 GC N.v.t.
Aanvullende metrische GC-gegevens N.v.t.

Metrische gegevens aanvragen

Naam van metrische gegevens van Azure Spring Apps Naam van metrische gegevens van Azure Container Apps
tomcat.global.sent N.v.t.
tomcat.global.request.total.count Verzoeken

Metrische gegevens voor .NET-aanvragen

Naam van metrische gegevens van Azure Spring Apps Naam van metrische gegevens van Azure Container Apps
Aanvragen per seconde N.v.t.
Totale verzoeken Verzoeken

Metrische gegevens van sessie

Naam van metrische gegevens van Azure Spring Apps Naam van metrische gegevens van Azure Container Apps
tomcat.sessions.active.max N.v.t.
tomcat.sessions.alive.max N.v.t.

Metrische Java-gegevens voor Java-apps in Azure Container Apps

Als u Java kiest als de ontwikkelingsstack voor Azure Container Apps, is het bewaken van metrische gegevens van Java Virtual Machine (JVM) essentieel om de status en prestaties van uw toepassingen te garanderen. Zie metrische Java-gegevens voor Java-apps in Azure Container Apps voor meer informatie.

Beheerde onderdelen

Zie de volgende artikelen voor het bewaken van gegevens van beheerde onderdelen:

Integratie

Azure Container Apps biedt verschillende ingebouwde waarneembaarheidsfuncties waarmee u de status van uw toepassing kunt bewaken en diagnosticeren. Als u echter Azure Monitor Application Insights of andere APM-agents (Application Performance Monitoring) wilt gebruiken, moet u instrumentatie toevoegen aan uw toepassingscode.

Integreren met bewaking van toepassingsprestaties

Zie Toepassingsprestaties bewaken integreren in containerinstallatiekopieën voor de integratie met Azure Monitor Application Insights of andere API's.

OpenTelemetry-agents (preview)

U kunt waarneembaarheidsgegevens verzenden in een OpenTelemetry-indeling naar bestemmingen zoals Azure Monitor Application Insights, Datadog of een OTLP-compatibel eindpunt met behulp van een OpenTelemetry-gegevensagent met uw Azure Container Apps-omgeving. De beheerde agent vereenvoudigt de configuratie doordat u doeleindpunten kunt wijzigen zonder de agent handmatig uit te voeren of opnieuw te configureren. Als u deze wilt instellen, configureert u de agent in uw containeromgeving met behulp van ARM-sjablonen, Bicep of De Azure CLI en bereidt u uw toepassing voor door de OpenTelemetry SDK te installeren en uw code te instrumenteren voor metrische gegevens, logboeken of traceringen. Zorg ervoor dat u de doelservice vooraf instelt, zoals Application Insights. Elke bestemming heeft specifieke vereisten en de agent verzendt alleen gegevens als deze correct zijn geconfigureerd en geïnstrueerd. Zie OpenTelemetry-gegevens verzamelen en lezen in Azure Container Apps voor meer informatie.

Aangepaste dashboards en waarschuwingen

Wanneer u toepassingen implementeert in Azure Container Apps, kunnen uw aangepaste dashboards gebruikmaken van twee verschillende methoden voor gegevensbronnen:

  • Met apps geïntegreerde APM-agents: als u APM-agents van derden tijdens het buildproces in uw toepassing hebt geïntegreerd, verzenden deze agents metrische gegevens en logboeken rechtstreeks naar het APM-platform. Zolang uw toepassingscode ongewijzigd blijft, hoeft u uw dashboards niet te wijzigen.

  • Dashboards op basis van Azure Monitor: als uw dashboards gebruikmaken van metrische gegevens en logboeken van Azure Monitor, bijvoorbeeld via Application Insights-API, Azure Event Hubs of Azure Storage, moet u deze mogelijk bijwerken om de namen, naamruimten of logboekstructuren van Azure Container Apps weer te geven. Zorg ervoor dat u uw dashboards controleert en bijwerkt op basis van azure Container Apps-specifieke metrische toewijzingen en gegevensstructuren.

Controleer uw dashboardconfiguraties zorgvuldig om ervoor te zorgen dat ze nauwkeurig blijven na de overgang naar Azure Container Apps.

Problemen oplossen

Azure Container Apps biedt geen API voor het genereren van een heapdump of threaddump voor Java-toepassingen. Als u deze dumps wilt maken, moet u via de console verbinding maken met de container-app. Gebruik vervolgens de jmap of jstack opdracht om de dumpbestanden in de container te genereren. Kopieer daarna de gegenereerde bestanden naar uw lokale computer voor verdere analyse.

U kunt ook de jcmd opdracht gebruiken om dezelfde bewerking uit te voeren en Java Flight Recorder (JFR) te starten in een actieve toepassing. Zie Verbinding maken met een containerconsole in Azure Container Apps voor meer informatie over het openen van de container-app via de console.

Bekende beperkingen

  • Gestructureerde logboeken: Azure Container Apps biedt geen ondersteuning voor gestructureerde toepassingslogboeken. Als uw toepassingslogboeken het Azure Spring Apps-schema volgen, wordt de volledige JSON-tekenreeks weergegeven in de Log_s kolom van ContainerAppConsoleLogs_CL.
  • Logboeken voor inkomend verkeer: Azure Spring Apps heeft ingebouwde toegangslogboeken voor inkomend verkeer, maar Azure Container Apps niet. U moet toegangslogboekregistratie in uw toepassingscode implementeren om deze gegevens vast te leggen.
  • Azure Container Apps biedt geen gebeurtenissen voor de levenscyclus van apps.
  • Azure Container Apps heeft geen ingebouwde ondersteuning voor metrische gegevens voor inkomend verkeer. U moet aangepaste tracering implementeren in uw toepassingen.