Spring Boot-apps bewaken met Elastic APM Java Agent

Notitie

Azure Spring Apps is de nieuwe naam voor de Azure Spring Cloud-service. Hoewel de service een nieuwe naam heeft, ziet u de oude naam op sommige plaatsen terwijl we werken aan het bijwerken van assets, zoals schermopnamen, video's en diagrammen.

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:

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:

  1. 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.

  2. 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:

  1. Volg de stappen in Het inschakelen van uw eigen permanente opslag in Azure Spring Apps.

  2. 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>
    

Elastische 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:

  1. Ga in De Azure-portal naar de overzichtspagina van uw elastische implementatie en selecteer vervolgens Elastische cloudimplementatie beheren.

    Schermopname van de pagina Elasticsearch (Elastic Cloud) van Azure Portal.

  2. Selecteer onder uw implementatie in de Elastic Cloud-console de sectie APM & Fleet om een elastic APM Server-eindpunt en geheim token op te halen.

    Schermopname van de pagina Elastic APM & Fleet, met het eindpunt kopiëren en het APM Server-token voor geheim gemarkeerd.

  3. Download elastic APM Java Agent van Maven Central.

    Schermopname van Maven Central met jar-download gemarkeerd.

  4. 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.

    Schermopname van Azure Portal met het deelvenster Bestanden uploaden van de pagina Bestandsshare.

  5. Nadat u het Elastic APM-eindpunt en het token voor geheim hebt, gebruikt u de volgende opdracht om 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>'
    

Inrichting automatiseren

U kunt ook een pijplijn voor inrichtingsautomatisering 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.

Inrichting automatiseren met Terraform

Als u de omgevingsvariabelen in een Terraform-sjabloon wilt configureren, voegt u de volgende code toe aan de sjabloon, waarbij u de <tijdelijke aanduidingen voor ...> vervangt 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>"
  }
}

Inrichting automatiseren 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, waarbij u de <tijdelijke aanduidingen voor ...> vervangt 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>',
  ...
}

Inrichting 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, waarbij u de <tijdelijke aanduidingen voor ...> vervangt 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:

  1. Ga in Azure Portal naar de overzichtspagina van uw elastische implementatie en selecteer vervolgens de Kibana-koppeling.

    Schermopname van Azure Portal met de elasticsearch-pagina met de kibana-koppeling Implementatie-URL gemarkeerd.

  2. Nadat Kibana is geopend, zoekt u APM in de zoekbalk en selecteert u APM.

    Schermopname van Elastic/Kibana met de zoekresultaten van 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.

Schermopname van Elastic/Kibana met de overzichtspagina van APM Services.

U kunt inzoomen op een specifieke transactie om inzicht te verkrijgen in de transactiespecifieke details, zoals gedistribueerde tracering.

Schermopname van Elastic/Kibana met de pagina APM Services-transacties.

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.

Schermopname van Elastic/Kibana met de pagina APM Services JVM.

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.

Schermopname van Elastic/Kibana met de pagina APM Services met het deelvenster Regel maken met acties gemarkeerd.

Volgende stappen