Quickstart: Toepassingen end-to-end bewaken
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
In deze quickstart ziet u hoe u apps bewaakt waarop het Azure Spring Apps Enterprise-plan wordt uitgevoerd met behulp van Application Insights en Log Analytics.
Notitie
U kunt uw Spring-workloads end-to-end bewaken met elk hulpprogramma en platform van uw keuze, waaronder App Insights, Log Analytics, New Relic, Dynatrace, AppDynamics, Elastic of Splunk. Zie Werken met andere bewakingshulpprogramma's verderop in dit artikel voor meer informatie.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Inzicht in en voldoen aan de sectie Vereisten van het Enterprise-plan in Azure Marketplace.
- De Azure CLI versie 2.45.0 of hoger.
- Git.
- De Azure Spring Apps Enterprise-abonnementsextensie. Gebruik de volgende opdracht om eerdere versies te verwijderen en de nieuwste Enterprise-abonnementsextensie te installeren. Als u de extensie eerder hebt geïnstalleerd, verwijdert u deze
spring-cloud
om te voorkomen dat de configuratie en versie niet overeenkomen.az extension add --upgrade --name spring az extension remove --name spring-cloud
- Resources die moeten worden bewaakt, zoals de resources die zijn gemaakt in de volgende quickstarts:
Toepassingen bijwerken
U moet de Application Insights-verbindingsreeks handmatig verstrekken aan de toepassingen Order Service (ASP.NET core) en Cart Service (Python). In de volgende instructies wordt beschreven hoe u deze verbindingsreeks opgeeft en hoe u de steekproeffrequentie verhoogt naar Application Insights.
Notitie
Momenteel ondersteunen alleen de buildpacks voor Java- en NodeJS-toepassingen Application Insights-instrumentatie.
Maak variabelen voor het opslaan van de resourcenamen met behulp van de volgende opdrachten. Vervang de tijdelijke aanduidingen door uw eigen waarden. De naam van uw Azure Spring Apps-service-exemplaar moet tussen 4 en 32 tekens lang zijn en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten. Het eerste teken van de servicenaam moet een letter zijn en het laatste teken moet een letter of een cijfer zijn.
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>"
Notitie
De APP_INSIGHTS_NAME is standaard hetzelfde als de AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME.
Gebruik de volgende opdrachten om de Application Insights-verbindingsreeks op te halen en in Key Vault in te stellen:
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}
Gebruik de volgende opdracht om de samplingfrequentie voor de Application Insights-binding bij te werken om de beschikbare hoeveelheid gegevens te verhogen:
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}
Gebruik de volgende opdrachten om toepassingen opnieuw te starten om de configuratie opnieuw te laden:
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
Als u eenmalige aanmelding hebt geconfigureerd, gebruikt u de volgende opdrachten om toepassingen opnieuw te starten om de configuratie van identity-service-apps opnieuw te laden:
az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name identity-service
Voor de Java- en NodeJS-toepassingen kan het opnieuw opstarten de nieuwe steekproeffrequentie van kracht worden. Voor de niet-Java-toepassingen is het opnieuw opstarten mogelijk om toegang te krijgen tot de zojuist toegevoegde Instrumentatiesleutel vanuit de Key Vault.
Logboeken weergeven
Er zijn twee manieren om logboeken te bekijken in Azure Spring Apps: logboekstreaming van realtime logboeken per app-exemplaar of Log Analytics voor geaggregeerde logboeken met geavanceerde querymogelijkheden
Logboekstreaming gebruiken
Genereer verkeer in de toepassing door de toepassing te doorlopen, de catalogus weer te geven en orders te plaatsen. Gebruik de volgende opdrachten om continu verkeer te genereren totdat het is geannuleerd:
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
Gebruik de volgende opdracht om de meest recente 100 regels met toepassingsconsolelogboeken op te halen uit de Catalogusservicetoepassing:
az spring app logs \
--resource-group ${RESOURCE_GROUP} \
--name catalog-service \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
--lines 100
Door de --follow
optie toe te voegen, kunt u realtime logboekstreaming krijgen vanuit een app. Gebruik de volgende opdracht om logboekstreaming te proberen voor de Catalogusservicetoepassing:
az spring app logs \
--resource-group ${RESOURCE_GROUP} \
--name catalog-service \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
--follow
Tip
U kunt az spring app-logboeken --help
gebruiken om meer parameters en logboekstreamfunctionaliteiten te verkennen.
Log Analytics gebruiken
Navigeer naar Azure Portal en open het Log Analytics-exemplaar dat u hebt gemaakt. U vindt het Log Analytics-exemplaar in dezelfde resourcegroep waar u het Azure Spring Apps-service-exemplaar hebt gemaakt.
Selecteer op de pagina Log Analytics het deelvenster Logboeken en voer een van de volgende voorbeeldquery's uit voor Azure Spring Apps.
Typ en voer de volgende Kusto-query uit om toepassingslogboeken te bekijken:
AppPlatformLogsforSpring
| where TimeGenerated > ago(24h)
| limit 500
| sort by TimeGenerated
| project TimeGenerated, AppName, Log
Deze query produceert resultaten die vergelijkbaar zijn met de resultaten die worden weergegeven in de volgende schermopname:
Typ en voer de volgende Kusto-query uit om toepassingslogboeken te bekijken catalog-service
:
AppPlatformLogsforSpring
| where AppName has "catalog-service"
| limit 500
| sort by TimeGenerated
| project TimeGenerated, AppName, Log
Deze query produceert resultaten die vergelijkbaar zijn met de resultaten die worden weergegeven in de volgende schermopname:
Typ en voer de volgende Kusto-query uit om fouten en uitzonderingen te zien die door elke app zijn gegenereerd:
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
Deze query produceert resultaten die vergelijkbaar zijn met de resultaten die worden weergegeven in de volgende schermopname:
Typ en voer de volgende Kusto-query uit om alle inkomende aanroepen naar Azure Spring Apps weer te geven:
AppPlatformIngressLogs
| project TimeGenerated, RemoteAddr, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Typ en voer de volgende Kusto-query uit om alle logboeken van de beheerde Spring Cloud-configuratiegateway te bekijken die wordt beheerd door Azure Spring Apps:
AppPlatformSystemLogs
| where LogType contains "SpringCloudGateway"
| project TimeGenerated,Log
Deze query produceert resultaten die vergelijkbaar zijn met de resultaten die worden weergegeven in de volgende schermopname:
Typ en voer de volgende Kusto-query uit om alle logboeken uit het beheerde Spring Cloud Service Registry te zien dat wordt beheerd door Azure Spring Apps:
AppPlatformSystemLogs
| where LogType contains "ServiceRegistry"
| project TimeGenerated, Log
Deze query produceert resultaten die vergelijkbaar zijn met de resultaten die worden weergegeven in de volgende schermopname:
Tracering gebruiken
Open in Azure Portal het Application Insights-exemplaar dat is gemaakt door Azure Spring Apps en begin met het bewaken van Spring Boot-toepassingen. U vindt het Application Insights-exemplaar in dezelfde resourcegroep waar u een Azure Spring Apps-service-exemplaar hebt gemaakt.
Navigeer naar het deelvenster Toepassingsoverzicht , dat vergelijkbaar is met de volgende schermopname:
Navigeer naar het deelvenster Prestaties , die vergelijkbaar is met de volgende schermopname:
Navigeer naar het deelvenster Prestaties/afhankelijkheden . Hier ziet u het prestatienummer voor afhankelijkheden, met name SQL-aanroepen, vergelijkbaar met wat wordt weergegeven in de volgende schermopname:
Navigeer naar het deelvenster Prestaties/rollen . Hier ziet u de metrische prestatiegegevens voor afzonderlijke exemplaren of rollen, vergelijkbaar met wat wordt weergegeven in de volgende schermopname:
Selecteer een SQL-aanroep om de end-to-end transactie in context weer te geven, vergelijkbaar met wat wordt weergegeven in de volgende schermopname:
Navigeer naar het deelvenster Fouten/Uitzonderingen . Hier ziet u een verzameling uitzonderingen, vergelijkbaar met wat wordt weergegeven in de volgende schermopname:
Metrische gegevens bekijken
Navigeer naar het deelvenster Metrische gegevens . Hier ziet u metrische gegevens die zijn bijgedragen door Spring Boot-apps, Spring Cloud-modules en afhankelijkheden. In de grafiek in de volgende schermopname ziet u http_server_requests en Heap Memory Used:
Spring Boot registreert een groot aantal metrische kerngegevens: JVM, CPU, Tomcat, Logback, enzovoort.
Met de automatische configuratie van Spring Boot kunt u de instrumentatie van aanvragen die worden verwerkt door Spring MVC.
De REST-controllers ProductController
en PaymentController
zijn geïnstrueerd door de @Timed
micrometeraantekening op klasseniveau.
De acme-catalog
toepassing heeft de volgende aangepaste metrische gegevens ingeschakeld: @Timedstore.products
De acem-payment
toepassing heeft de volgende aangepaste metrische gegevens ingeschakeld: @Timedstore.payment
U kunt deze aangepaste metrische gegevens zien in het deelvenster Metrische gegevens , zoals wordt weergegeven in de volgende schermopname.
Navigeer naar het deelvenster Live Metrics . Hier ziet u live metrische gegevens op het scherm met een lage latentie < van 1 seconde, zoals wordt weergegeven in de volgende schermopname:
Werken met andere bewakingshulpprogramma's
Het Azure Spring Apps Enterprise-abonnement biedt ook ondersteuning voor het exporteren van metrische gegevens naar andere hulpprogramma's, waaronder de volgende hulpprogramma's:
- AppDynamics
- ApacheSkyWalking
- Dynatrace
- ElasticAPM
- NewRelic
U kunt meer bindingen toevoegen aan een opbouwfunctie in Tanzu Build Service met behulp van de volgende opdracht:
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>
Resources opschonen
Als u van plan bent om verder te gaan met volgende snelstarts en zelfstudies, kunt u deze resources het beste intact laten. Als u de resourcegroep niet meer nodig hebt, verwijdert u deze. Hierdoor worden ook de resources in de resourcegroep verwijderd. Als u de resourcegroep wilt verwijderen met behulp van Azure CLI, gebruikt u de volgende opdrachten:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Volgende stappen
Ga door naar een van de volgende optionele quickstarts: