Spring Boot-apps bewaken met Elastic APM Java Agent
Notitie
De Basic, Standarden Enterprise--plannen zijn op 17 maart 2025 buiten gebruik gesteld. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.
Het Standaardverbruik en het toegewezen-plan zijn op 30 september 2024 met een uitfasering begonnen, met een volledige beëindiging eind maart 2025. 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 dit artikel wordt uitgelegd hoe u elastische APM-agent gebruikt om Spring Boot-toepassingen te bewaken die worden uitgevoerd in Azure Spring Apps.
Met de elastische waarneembaarheidsoplossing kunt u uniforme waarneembaarheid bereiken voor:
- Bewaak apps met behulp van de Elastic APM Java Agent en gebruik permanente opslag met Azure Spring Apps.
- Gebruik diagnostische instellingen om Azure Spring Apps-logboeken naar Elastic te verzenden. Zie Logboeken analyseren met Elastic (ELK) met behulp van diagnostische instellingen voor meer informatie.
In de volgende video maakt u kennis met geïntegreerde waarneembaarheid voor Spring Boot-toepassingen met behulp van Elastic.
Vereisten
De Spring Petclinic-toepassing implementeren
In dit artikel wordt het Spring Petclinic-voorbeeld gebruikt om de vereiste stappen te doorlopen. Gebruik de volgende stappen om de voorbeeldtoepassing te implementeren:
Volg de stappen in Spring Boot-apps implementeren met behulp van Azure Spring Apps en MySQL totdat u bij de sectie Spring Boot-toepassingen implementeren bent en omgevingsvariabelen instelt.
Gebruik de Azure Spring Apps-extensie voor Azure CLI met de volgende opdracht om een toepassing te maken die moet worden uitgevoerd in Azure Spring Apps:
az spring app create \ --resource-group <your-resource-group-name> \ --service <your-Azure-Spring-Apps-instance-name> \ --name <your-app-name> \ --is-public true
Aangepaste permanente opslag inschakelen voor Azure Spring Apps
Gebruik de volgende stappen om aangepaste permanente opslag in te schakelen:
Volg de stappen in Het inschakelen van uw eigen permanente opslag in Azure Spring Apps.
Gebruik de volgende Azure CLI-opdracht om permanente opslag toe te voegen voor uw Azure Spring Apps-apps.
az spring app append-persistent-storage \ --resource-group <your-resource-group-name> \ --service <your-Azure-Spring-Apps-instance-name> \ --name <your-app-name> \ --persistent-storage-type AzureFileVolume \ --share-name <your-Azure-file-share-name> \ --mount-path <unique-mount-path> \ --storage-name <your-mounted-storage-name>
Elastic APM Java-agent activeren
Voordat u doorgaat, hebt u de connectiviteitsgegevens van uw Elastic APM-server handig nodig. Hierbij wordt ervan uitgegaan dat u Elastic hebt geïmplementeerd in Azure. Zie Elastic implementeren en beheren in Microsoft Azure voor meer informatie. Gebruik de volgende stappen om deze informatie op te halen:
Ga in De Azure-portal naar de overzichtspagina van uw elastische implementatie en selecteer vervolgens Elastische cloudimplementatie beheren.
Selecteer onder uw implementatie in de Elastic Cloud-console de sectie APM & Fleet om het Elastic APM-servereindpunt en geheime token op te halen.
Download Elastic APM Java Agent van Maven Central.
Upload elastische APM-agent naar de aangepaste permanente opslag die u eerder hebt ingeschakeld. Ga naar Azure Fileshare en selecteer Uploaden om het JAR-bestand van de agent toe te voegen.
Nadat u het Elastic APM-eindpunt en de geheime token hebt, gebruikt u de volgende opdracht om de Elastic APM Java-agent te activeren bij het implementeren van toepassingen. De tijdelijke aanduiding
<agent-location>
verwijst naar de gekoppelde opslaglocatie van de Elastic APM Java Agent.az spring app deploy \ --name <your-app-name> \ --artifact-path <unique-path-to-your-app-jar-on-custom-storage> \ --jvm-options='-javaagent:<elastic-agent-location>' \ --env ELASTIC_APM_SERVICE_NAME=<your-app-name> \ ELASTIC_APM_APPLICATION_PACKAGES='<your-app-package-name>' \ ELASTIC_APM_SERVER_URL='<your-Elastic-APM-server-URL>' \ ELASTIC_APM_SECRET_TOKEN='<your-Elastic-APM-secret-token>'
Provisioning automatiseren
U kunt ook een pijplijn voor automatisering van voorzieningen uitvoeren met behulp van Terraform, Bicep of een ARM-sjabloon (Azure Resource Manager). Deze pijplijn kan een volledige hands-off ervaring bieden voor het instrumenteren en bewaken van nieuwe toepassingen die u maakt en implementeert.
Provisioning automatiseren met Terraform
Als u de omgevingsvariabelen in een Terraform-sjabloon wilt configureren, voegt u de volgende code toe aan de sjabloon en vervangt u de <...>
tijdelijke aanduidingen door uw eigen waarden. Zie Een actieve Implementatie van Azure Spring Apps beheren voor meer informatie.
resource "azurerm_spring_cloud_java_deployment" "example" {
...
jvm_options = "-javaagent:<elastic-agent-location>"
...
environment_variables = {
"ELASTIC_APM_SERVICE_NAME"="<your-app-name>",
"ELASTIC_APM_APPLICATION_PACKAGES"="<your-app-package>",
"ELASTIC_APM_SERVER_URL"="<your-Elastic-APM-server-URL>",
"ELASTIC_APM_SECRET_TOKEN"="<your-Elastic-APM-secret-token>"
}
}
Automatiseren van provisioning met behulp van een Bicep-bestand
Als u de omgevingsvariabelen in een Bicep-bestand wilt configureren, voegt u de volgende code toe aan het bestand en vervangt u de <...>
tijdelijke aanduidingen door uw eigen waarden. Zie Microsoft.AppPlatform Spring/apps/deployments voor meer informatie.
deploymentSettings: {
environmentVariables: {
ELASTIC_APM_SERVICE_NAME='<your-app-name>',
ELASTIC_APM_APPLICATION_PACKAGES='<your-app-package>',
ELASTIC_APM_SERVER_URL='<your-Elastic-APM-server-URL>',
ELASTIC_APM_SECRET_TOKEN='<your-Elastic-APM-secret-token>'
},
jvmOptions: '-javaagent:<elastic-agent-location>',
...
}
Voorziening automatiseren met behulp van een ARM-sjabloon
Als u de omgevingsvariabelen in een ARM-sjabloon wilt configureren, voegt u de volgende code toe aan de sjabloon en vervangt u de <...>
tijdelijke aanduidingen door uw eigen waarden. Zie Microsoft.AppPlatform Spring/apps/deployments voor meer informatie.
"deploymentSettings": {
"environmentVariables": {
"ELASTIC_APM_SERVICE_NAME"="<your-app-name>",
"ELASTIC_APM_APPLICATION_PACKAGES"="<your-app-package>",
"ELASTIC_APM_SERVER_URL"="<your-Elastic-APM-server-URL>",
"ELASTIC_APM_SECRET_TOKEN"="<your-Elastic-APM-secret-token>"
},
"jvmOptions": "-javaagent:<elastic-agent-location>",
...
}
Elastische APM Java-agent upgraden
Zie Upgradeversies voor Elastic Cloud in Azure en belangrijke wijzigingen voor APM om uw upgrade te plannen. Nadat u de APM-server hebt bijgewerkt, uploadt u het JAR-bestand van de Elastic APM Java-agent in de aangepaste permanente opslag. Start vervolgens uw apps opnieuw met de bijgewerkte JVM-opties die verwijzen naar de bijgewerkte JAR van de Elastic APM Java-agent.
Toepassingen en metrische gegevens bewaken met Elastic APM
Gebruik de volgende stappen om toepassingen en metrische gegevens te bewaken:
Ga in Azure Portal naar de overzichtspagina van uw elastische implementatie en selecteer vervolgens de Kibana-koppeling.
Nadat Kibana is geopend, zoekt u APM in de zoekbalk en selecteert u APM.
Kibana APM is de gecureerde toepassing ter ondersteuning van Application Monitoring-werkstromen. Hier kunt u details op hoog niveau bekijken, zoals aanvraag-/reactietijden, doorvoer en de transacties in een service met de meeste invloed op de duur.
U kunt inzoomen op een specifieke transactie om inzicht te verkrijgen in de transactiespecifieke details, zoals gedistribueerde tracering.
Elastische APM Java-agent legt ook de metrische JVM-gegevens vast van de Azure Spring Apps-apps die beschikbaar zijn met Kibana App voor gebruikers voor probleemoplossing.
Met behulp van de ingebouwde AI-engine in de elastische oplossing kunt u ook Anomaliedetectie inschakelen in Azure Spring Apps Services en een geschikte actie kiezen, zoals Teams-meldingen, het maken van een JIRA-probleem, een webhook-API-aanroep en andere.