Rövid útmutató: Alkalmazások monitorozása végpontok között

Feljegyzés

Az Azure Spring Apps az Azure Spring Cloud szolgáltatás új neve. Bár a szolgáltatásnak új neve van, bizonyos helyeken a régi nevet fogja látni egy darabig, miközben az eszközök, például képernyőképek, videók és diagramok frissítésével dolgozunk.

Ez a cikk a következőre vonatkozik:❌ Basic/Standard ✔️ Enterprise

Ez a rövid útmutató bemutatja, hogyan monitorozza az Azure Spring Apps Enterprise-csomagot futtató alkalmazásokat az Application Elemzések és a Log Analytics használatával.

Feljegyzés

A Spring-számítási feladatok végponttól végpontig monitorozhatók bármilyen tetszőleges eszközzel és platformmal, beleértve az App Elemzések, a Log Analytics, a New Relic, a Dynatrace, az AppDynamics, az Elastic vagy a Splunk alkalmazást. További információt a jelen cikk későbbi, más monitorozási eszközökkel való használata című témakörben talál.

Előfeltételek

Alkalmazások frissítése

Manuálisan kell megadnia az alkalmazás Elemzések kapcsolati sztring a Rendelési szolgáltatás (ASP.NET core) és a Cart Service (Python) alkalmazásoknak. Az alábbi utasítások bemutatják, hogyan biztosíthatja ezt a kapcsolati sztring, és hogyan növelheti a mintavételezési arányt az Alkalmazás Elemzések.

Feljegyzés

Jelenleg csak a Java- és NodeJS-alkalmazások buildcsomagjai támogatják az alkalmazás Elemzések rendszerezését.

  1. Hozzon létre változókat az erőforrásnevek tárolásához az alábbi parancsokkal. Mindenképpen cserélje le a helyőrzőket a saját értékeire. Az Azure Spring Apps-szolgáltatáspéldány nevének 4 és 32 karakter közötti hosszúságúnak kell lennie, és csak kisbetűket, számokat és kötőjeleket tartalmazhat. A szolgáltatásnév első karakterének betűnek kell lennie, az utolsó karakternek pedig betűnek vagy számnak kell lennie.

    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>"
    

    Feljegyzés

    Alapértelmezés szerint a APP_INSIGHTS_NAME megegyezik a AZURE_SPRING_APPS_Standard kiadás RVICE_INSTANCE_NAME.

  2. Az alkalmazás Elemzések kapcsolati sztring lekéréséhez és a Key Vaultban való beállításához használja az alábbi parancsokat:

    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}
    
  3. Az alábbi paranccsal frissítse az alkalmazás Elemzések kötés mintavételezési sebességét a rendelkezésre álló adatok mennyiségének növeléséhez:

    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}
    
  4. A konfiguráció újratöltéséhez használja az alábbi parancsokat az alkalmazások újraindításához:

    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
    
  5. Ha az egyszeri bejelentkezést konfigurálta, az alábbi parancsokkal indítsa újra az alkalmazásokat az identity-service alkalmazás konfigurációjának újratöltéséhez:

    az spring app restart \
        --resource-group ${RESOURCE_GROUP} \
        --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
        --name identity-service
    

    A Java- és NodeJS-alkalmazások esetében az újraindítás lehetővé teszi az új mintavételezési sebesség érvénybe lépését. A nem Java-alkalmazások esetében az újraindítás lehetővé teszi számukra, hogy hozzáférjenek az újonnan hozzáadott Instrumentation-kulcshoz a Key Vaultból.

Naplók megtekintése

Az Azure Spring Apps naplói kétféleképpen jeleníthetők meg: alkalmazáspéldányonkénti valós idejű naplók naplóstreamelése vagy a Log Analytics az összesített naplókhoz speciális lekérdezési képességgel

Naplóstreamelés használata

Forgalmat generálhat az alkalmazásban az alkalmazáson áthaladva, a katalógus megtekintésével és a megrendelések leadásával. A következő parancsokkal folyamatosan generálhat forgalmat, amíg le nem mondja:

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

Az alábbi paranccsal lekérheti az alkalmazáskonzol-naplók legújabb 100 sorát a Catalog Service alkalmazásból:

az spring app logs \
    --resource-group ${RESOURCE_GROUP} \
    --name catalog-service \
    --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
    --lines 100

A beállítás hozzáadásával --follow valós idejű naplóstreamelést kaphat egy alkalmazásból. A katalógusszolgáltatás-alkalmazás naplóstreamelésének kipróbálásához használja az alábbi parancsot:

az spring app logs \
    --resource-group ${RESOURCE_GROUP} \
    --name catalog-service \
    --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
    --follow

Tipp.

Az az spring-alkalmazásnaplókkal --help további paramétereket és naplóstream-funkciókat vizsgálhat meg.

A Log Analytics használata

Lépjen az Azure Portalra, és nyissa meg a létrehozott Log Analytics-példányt. A Log Analytics-példány ugyanabban az erőforráscsoportban található, ahol létrehozta az Azure Spring Apps szolgáltatáspéldányt.

A Log Analytics lapon válassza a Naplók panelt, és futtassa a következő minta lekérdezéseket az Azure Spring Appshez.

Írja be és futtassa a következő Kusto-lekérdezést az alkalmazásnaplók megtekintéséhez:

AppPlatformLogsforSpring
| where TimeGenerated > ago(24h)
| limit 500
| sort by TimeGenerated
| project TimeGenerated, AppName, Log

Ez a lekérdezés az alábbi képernyőképen láthatóhoz hasonló eredményeket hoz létre:

Screenshot of Azure portal showing example output from all application logs query.

Írja be és futtassa a következő Kusto-lekérdezést az alkalmazásnaplók megtekintéséhez catalog-service :

AppPlatformLogsforSpring
| where AppName has "catalog-service"
| limit 500
| sort by TimeGenerated
| project TimeGenerated, AppName, Log

Ez a lekérdezés az alábbi képernyőképen láthatóhoz hasonló eredményeket hoz létre:

Screenshot of Azure portal showing example output from Catalog Service application logs.

Írja be és futtassa a következő Kusto-lekérdezést az egyes alkalmazások által észlelt hibák és kivételek megtekintéséhez:

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

Ez a lekérdezés az alábbi képernyőképen láthatóhoz hasonló eredményeket hoz létre:

Screenshot of Azure portal showing example output from the Ingress Logs.

Írja be és futtassa a következő Kusto-lekérdezést az Azure Spring Appsbe irányuló bejövő hívások megtekintéséhez:

AppPlatformIngressLogs
| project TimeGenerated, RemoteAddr, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated

Írja be és futtassa a következő Kusto-lekérdezést az Azure Spring Apps által felügyelt felügyelt Spring Cloud Config Gateway összes naplójának megtekintéséhez:

AppPlatformSystemLogs
| where LogType contains "SpringCloudGateway"
| project TimeGenerated,Log

Ez a lekérdezés az alábbi képernyőképen láthatóhoz hasonló eredményeket hoz létre:

Screenshot of Azure portal showing example output from the Spring Cloud Gateway Logs.

Írja be és futtassa a következő Kusto-lekérdezést az Azure Spring Apps által felügyelt spring cloud service registry összes naplójának megtekintéséhez:

AppPlatformSystemLogs
| where LogType contains "ServiceRegistry"
| project TimeGenerated, Log

Ez a lekérdezés az alábbi képernyőképen láthatóhoz hasonló eredményeket hoz létre:

Screenshot of Azure portal showing example output from service registry logs.

Nyomkövetés használata

Az Azure Portalon nyissa meg az Azure Spring Apps által létrehozott Application Elemzések-példányt, és kezdje el figyelni a Spring Boot-alkalmazásokat. Az Alkalmazás Elemzések példány ugyanabban az erőforráscsoportban található, ahol létrehozott egy Azure Spring Apps-szolgáltatáspéldányt.

Lépjen az Alkalmazástérkép panelre, amely az alábbi képernyőképhez hasonló lesz:

Screenshot of Azure portal showing the Application Map of Azure Application Insights.

Lépjen a Teljesítmény panelre, amely az alábbi képernyőképhez hasonló lesz:

Screenshot of Azure portal showing the Performance pane of Azure Application Insights.

Lépjen a Teljesítmény/Függőségek panelre. Itt láthatja a függőségek, különösen az SQL-hívások teljesítményszámát az alábbi képernyőképen láthatóhoz hasonlóan:

Screenshot of Azure portal showing the Dependencies section of the Performance pane of Azure Application Insights.

Lépjen a Teljesítmény/Szerepkörök panelre. Itt láthatja az egyes példányok vagy szerepkörök teljesítménymetrikáit az alábbi képernyőképen láthatóhoz hasonlóan:

Screenshot of Azure portal showing the Roles section of the Performance pane of Azure Application Insights.

Válasszon ki egy SQL-hívást a végpontok közötti tranzakció kontextusban való megtekintéséhez, hasonlóan az alábbi képernyőképen láthatóhoz:

Screenshot of Azure portal showing the end-to-end transaction of an S Q L call.

Lépjen a Hibák/Kivételek panelre. Itt a következő képernyőképen láthatóhoz hasonló kivételgyűjtemény látható:

Screenshot of Azure portal showing application failures graphed.

Metrikák megtekintése

Lépjen a Metrikák panelre. Itt láthatja a Spring Boot-alkalmazások, a Spring Cloud-modulok és a függőségek által hozzájárult metrikákat. Az alábbi képernyőképen látható diagramon http_server_requests és a felhasznált halommemória látható:

Screenshot of Azure portal showing metrics over time graph.

A Spring Boot számos alapvető metrikát regisztrál: JVM, CPU, Tomcat, Logback stb. A Spring Boot automatikus konfigurációja lehetővé teszi a Spring MVC által kezelt kérések rendszerezését. A REST-vezérlők ProductController , és PaymentController az osztály szintjén a @Timed Micrometer-széljegyzetek segítségével lettek kialakítva.

Az acme-catalog alkalmazás a következő egyéni metrikával rendelkezik: @Timedstore.products

Az acem-payment alkalmazás a következő egyéni metrikával rendelkezik: @Timedstore.payment

Ezeket az egyéni metrikákat a Metrikák panelen tekintheti meg, ahogyan az alábbi képernyőképen látható.

Screenshot showing custom metrics instrumented by Micrometer.

Lépjen az Élő metrikák panelre. Itt élő metrikákat láthat a képernyőn alacsony késéssel < 1 másodperccel, ahogy az alábbi képernyőképen látható:

Screenshot showing the live metrics of all applications.

Más monitorozási eszközök használata

Az Azure Spring Apps Enterprise-csomag a metrikák más eszközökre való exportálását is támogatja, beleértve a következő eszközöket:

  • AppDynamics
  • ApacheSkyWalking
  • Dynatrace
  • ElasticAPM
  • NewRelic

A Tanzu Build Service-ben további kötéseket adhat hozzá egy szerkesztőhöz az alábbi paranccsal:

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>

Az erőforrások eltávolítása

Ha további rövid útmutatókkal és oktatóanyagokkal szeretne dolgozni, érdemes lehet ezeket az erőforrásokat a helyén hagyni. Ha már nincs rá szükség, törölje az erőforráscsoportot, amely törli az erőforráscsoport erőforrásait. Ha törölni szeretné az erőforráscsoportot az Azure CLI használatával, használja a következő parancsokat:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Következő lépések

Folytassa az alábbi rövid útmutatók bármelyikével: