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
- Een bestaande Azure-container-app. Zie voor meer informatie Quickstart: uw eerste container-app implementeren met behulp van Azure Portal.
- Azure CLI.
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 deApplicationConsole
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 deContainerAppConsoleLogs_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 vanContainerAppConsoleLogs_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.