Snabbstart: Övervaka program från slutpunkt till slutpunkt
Kommentar
Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.
Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.
Den här artikeln gäller för:❌ Basic/Standard ✔️ Enterprise
Den här snabbstarten visar hur du övervakar appar som kör Azure Spring Apps Enterprise-planen med hjälp av Application Insights och Log Analytics.
Kommentar
Du kan övervaka dina Spring-arbetsbelastningar från slutpunkt till slutpunkt med valfritt verktyg och valfri plattform, inklusive App Insights, Log Analytics, New Relic, Dynatrace, AppDynamics, Elastic eller Splunk. Mer information finns i Arbeta med andra övervakningsverktyg senare i den här artikeln.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Förstå och uppfylla avsnittet Krav i Enterprise-plan på Azure Marketplace.
- Azure CLI version 2.45.0 eller senare.
- Git.
- Azure Spring Apps Enterprise-plantillägget. Använd följande kommando för att ta bort tidigare versioner och installera det senaste Enterprise-plantillägget. Om du tidigare har installerat
spring-cloud
tillägget avinstallerar du det för att undvika konfigurations- och versionsmatchningar.az extension add --upgrade --name spring az extension remove --name spring-cloud
- Resurser att övervaka, till exempel de som skapats i följande snabbstarter:
Uppdatera program
Du måste ange Application Insights-anslutningssträng manuellt till programmen Order Service (ASP.NET core) och Cart Service (Python). Följande instruktioner beskriver hur du tillhandahåller den här anslutningssträng och ökar samplingsfrekvensen till Application Insights.
Kommentar
För närvarande stöder endast buildpacks för Java- och NodeJS-program Application Insights-instrumentation.
Skapa variabler för att lagra resursnamnen med hjälp av följande kommandon. Se till att ersätta platshållarna med dina egna värden. Namnet på din Azure Spring Apps-tjänstinstans måste vara mellan 4 och 32 tecken långt och får endast innehålla gemener, siffror och bindestreck. Det första tecknet i tjänstnamnet måste vara en bokstav och det sista tecknet måste vara antingen en bokstav eller ett tal.
export RESOURCE_GROUP="<resource-group-name>" export APP_INSIGHTS_NAME="<app-insights-name>" export KEY_VAULT_NAME="<key-vault-name>" export AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME="<Azure-Spring-Apps-service-instance-name>"
Kommentar
Som standard är APP_INSIGHTS_NAME samma som AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME.
Använd följande kommandon för att hämta Application Insights-anslutningssträng och ange den i Key Vault:
export CONNECTION_STRING=$(az monitor app-insights component show \ --resource-group ${RESOURCE_GROUP} \ --app ${APP_INSIGHTS_NAME} \ --query "connectionString" \ --output tsv) az keyvault secret set \ --vault-name ${KEY_VAULT_NAME} \ --name "ApplicationInsights--ConnectionString" \ --value ${CONNECTION_STRING}
Använd följande kommando för att uppdatera samplingsfrekvensen för Application Insights-bindningen för att öka mängden tillgängliga data:
az spring build-service builder buildpack-binding set \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --builder-name default \ --name default \ --type ApplicationInsights \ --properties sampling-rate=100 connection_string=${CONNECTION_STRING}
Använd följande kommandon för att starta om program för att läsa in konfigurationen igen:
az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name cart-service az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name order-service az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name catalog-service az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name frontend az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name payment-service
Om du har konfigurerat enkel inloggning använder du följande kommandon för att starta om program för att läsa in appkonfigurationen för identitetstjänsten igen:
az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name identity-service
För Java- och NodeJS-programmen tillåter omstart att den nya samplingsfrekvensen börjar gälla. För icke-Java-program gör omstart att de kan komma åt den nyligen tillagda instrumentationsnyckeln från Nyckelvalvet.
Visa loggar
Det finns två sätt att se loggar på Azure Spring Apps: loggströmning av realtidsloggar per appinstans eller Log Analytics för aggregerade loggar med avancerad frågefunktion
Använda loggströmning
Generera trafik i programmet genom att flytta genom programmet, visa katalogen och göra beställningar. Använd följande kommandon för att generera trafik kontinuerligt tills den avbryts:
export GATEWAY_URL=$(az spring gateway show \
--resource-group ${RESOURCE_GROUP} \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
--query "properties.url" \
--output tsv)
export GATEWAY_URL=https://${GATEWAY_URL}
cd azure-spring-apps-enterprise/load-test/traffic-generator
./gradlew gatlingRun-com.vmware.acme.simulation.GuestSimulation.java
Använd följande kommando för att hämta de senaste 100 raderna med programkonsolloggar från katalogtjänstprogrammet:
az spring app logs \
--resource-group ${RESOURCE_GROUP} \
--name catalog-service \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
--lines 100
Genom att --follow
lägga till alternativet kan du hämta loggströmning i realtid från en app. Använd följande kommando för att prova loggströmning för katalogtjänstprogrammet:
az spring app logs \
--resource-group ${RESOURCE_GROUP} \
--name catalog-service \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
--follow
Dricks
Du kan använda az spring app-loggar --help
för att utforska fler parametrar och loggströmsfunktioner.
Använda Log Analytics
Gå till Azure Portal och öppna Log Analytics-instansen som du skapade. Du hittar Log Analytics-instansen i samma resursgrupp där du skapade Azure Spring Apps-tjänstinstansen.
På sidan Log Analytics väljer du fönstret Loggar och kör någon av följande exempelfrågor för Azure Spring Apps.
Skriv och kör följande Kusto-fråga för att se programloggar:
AppPlatformLogsforSpring
| where TimeGenerated > ago(24h)
| limit 500
| sort by TimeGenerated
| project TimeGenerated, AppName, Log
Den här frågan ger resultat som liknar de som visas på följande skärmbild:
Skriv och kör följande Kusto-fråga för att se catalog-service
programloggar:
AppPlatformLogsforSpring
| where AppName has "catalog-service"
| limit 500
| sort by TimeGenerated
| project TimeGenerated, AppName, Log
Den här frågan ger resultat som liknar de som visas på följande skärmbild:
Skriv och kör följande Kusto-fråga för att se fel och undantag som genereras av varje app:
AppPlatformLogsforSpring
| where Log contains "error" or Log contains "exception"
| extend FullAppName = strcat(ServiceName, "/", AppName)
| summarize count_per_app = count() by FullAppName, ServiceName, AppName, _ResourceId
| sort by count_per_app desc
| render piechart
Den här frågan ger resultat som liknar de som visas på följande skärmbild:
Skriv och kör följande Kusto-fråga för att se alla inkommande anrop till Azure Spring Apps:
AppPlatformIngressLogs
| project TimeGenerated, RemoteAddr, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Skriv och kör följande Kusto-fråga för att se alla loggar från den hanterade Spring Cloud Config Gateway som hanteras av Azure Spring Apps:
AppPlatformSystemLogs
| where LogType contains "SpringCloudGateway"
| project TimeGenerated,Log
Den här frågan ger resultat som liknar de som visas på följande skärmbild:
Skriv och kör följande Kusto-fråga för att se alla loggar från det hanterade Spring Cloud Service Registry som hanteras av Azure Spring Apps:
AppPlatformSystemLogs
| where LogType contains "ServiceRegistry"
| project TimeGenerated, Log
Den här frågan ger resultat som liknar de som visas på följande skärmbild:
Använda spårning
I Azure Portal öppnar du Application Insights-instansen som skapats av Azure Spring Apps och börjar övervaka Spring Boot-program. Du hittar Application Insights-instansen i samma resursgrupp där du skapade en Azure Spring Apps-tjänstinstans.
Gå till fönstret Programkarta , som liknar följande skärmbild:
Gå till fönstret Prestanda , som liknar följande skärmbild:
Gå till fönstret Prestanda/beroenden . Här kan du se prestandanumret för beroenden, särskilt SQL-anrop, liknande det som visas på följande skärmbild:
Gå till fönstret Prestanda/Roller . Här kan du se prestandamåtten för enskilda instanser eller roller, ungefär som i följande skärmbild:
Välj ett SQL-anrop för att se transaktionen från slutpunkt till slutpunkt i kontext, ungefär som i följande skärmbild:
Gå till fönstret Fel/undantag . Här kan du se en samling undantag som liknar vad som visas i följande skärmbild:
Visa mått
Gå till fönstret Mått . Här kan du se mått som har bidragit med Spring Boot-appar, Spring Cloud-moduler och beroenden. Diagrammet i följande skärmbild visar http_server_requests och Heap Memory Used:
Spring Boot registrerar ett stort antal kärnmått: JVM, CPU, Tomcat, Logback och så vidare.
Den automatiska Spring Boot-konfigurationen möjliggör instrumentering av begäranden som hanteras av Spring MVC.
REST-styrenheterna ProductController
och PaymentController
har instrumenterats av @Timed
mikrometerkommentaren på klassnivå.
Programmet acme-catalog
har följande anpassade mått aktiverat: : @Timedstore.products
Programmet acem-payment
har följande anpassade mått aktiverat: : @Timedstore.payment
Du kan se dessa anpassade mått i fönstret Mått , som du ser i följande skärmbild.
Gå till fönstret Live metrics (Live Metrics ). Här kan du se livemått på skärmen med korta svarstider < 1 sekund, som du ser i följande skärmbild:
Arbeta med andra övervakningsverktyg
Azure Spring Apps Enterprise-planen stöder också export av mått till andra verktyg, inklusive följande verktyg:
- AppDynamics
- ApacheSkyWalking
- Dynatrace
- ElasticAPM
- NewRelic
Du kan lägga till fler bindningar till en byggare i Tanzu Build Service med hjälp av följande kommando:
az spring build-service builder buildpack-binding create \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> \
--builder-name <builder-name> \
--name <binding-name> \
--type <ApplicationInsights|AppDynamics|ApacheSkyWalking|Dynatrace|ElasticAPM|NewRelic> \
--properties <connection-properties>
--secrets <secret-properties>
Rensa resurser
Om du planerar att fortsätta arbeta med efterföljande snabbstarter och självstudier kanske du vill lämna dessa resurser på plats. Ta bort resursgruppen när den inte längre behövs, vilket tar bort resurserna i resursgruppen. Om du vill ta bort resursgruppen med hjälp av Azure CLI använder du följande kommandon:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Nästa steg
Fortsätt till någon av följande valfria snabbstarter: