Megosztás a következőn keresztül:


Gyors kezdés: Alkalmazások monitorozása végponttól végpontig

Feljegyzés

A Alapszintű, Standardés Enterprise tervek 2025. március 17-én nyugdíjazási időszakba léptek. További információkért lásd az Azure Spring Apps kivonási bejelentését.

A Standard felhasználási és a dedikált-terv 2024. szeptember 30-án lépett a visszavonulási időszakba, amely teljes leállással fejeződik be 2025. március végén. További információért lásd: Az Azure Spring Apps Standard fogyasztási és dedikált csomagok migrálása az Azure Container Appsbe.

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 Insights é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 Insightst, a Log Analyticset, a New Relicet, a Dynatrace-t, az AppDynamicst, az Elastic-t vagy a Splunkot. 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 Application Insights kapcsolati karakterláncot a Megrendelési szolgáltatás (ASP.NET Core) és a Kosár szolgáltatás (Python) alkalmazásainak. Az alábbi utasítások bemutatják, hogyan adhatja meg ezt a kapcsolati karakterláncot, és hogyan növelheti a mintavételezési arányt az Application Insights számára.

Feljegyzés

Jelenleg csak a Java- és Node.js-alkalmazások buildcsomagjai támogatják az Application Insights rendszerezését.

  1. Hozzon létre változókat az erőforrásnevek tárolásához az alábbi parancsokkal. Feltétlenül 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_SERVICE_INSTANCE_NAME.

  2. Az Application Insights 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ítheti az Application Insights-kötés mintavételezési sebességét a rendelkezésre álló adatok számának 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 Node.js-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 meg nem szakítja:

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 --follow opció hozzáadásával valós idejű naplóadat-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 spring app logs --help használatával 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:

Képernyőkép az Azure Portalról, amelyen az összes alkalmazásnapló-lekérdezés példakimenete látható.

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

Képernyőkép az Azure Portalról, amelyen a katalógusszolgáltatás alkalmazásnaplóiból származó példakimenet látható.

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

Képernyőkép az Azure Portalról, amelyen a bejövő naplókból származó példakimenet látható.

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

Képernyőkép az Azure Portalról, amelyen a Spring Cloud Gateway-naplókból származó példakimenet látható.

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

Képernyőkép az Azure Portalról, amelyen a szolgáltatásregisztrációs naplókból származó példakimenet látható.

Nyomkövetés használata

Az Azure Portalon nyissa meg az Azure Spring Apps által létrehozott Application Insights-példányt, és kezdje el figyelni a Spring Boot-alkalmazásokat. Az Application Insights-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:

Képernyőkép az Azure Portalról, amelyen a Azure-alkalmazás Insights alkalmazástérképe látható.

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

Képernyőkép az Azure Portalról, amelyen a Azure-alkalmazás Insights Teljesítmény panelje látható.

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:

Képernyőkép az Azure Portalról, amelyen a Azure-alkalmazás Insights Teljesítmény paneljének Függőségek szakasza látható.

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, hasonlóan ahhoz, amit az alábbi képernyőkép mutat:

Képernyőkép az Azure Portalról, amelyen az Azure-alkalmazás Insights Teljesítmény paneljének Szerepkörök szakasza látható.

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:

Képernyőkép az Azure Portalról, amelyen egy S Q L-hívás végpontok közötti tranzakciója látható.

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

Képernyőkép az Azure Portalról az alkalmazáshibákat ábrázoló grafikonon.

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ó diagram az http_server_requests és a felhasznált halommemória adatait mutatja:

Képernyőkép az Azure Portalról, amelyen a metrikák időbeli grafikonja látható.

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 annotáció által lettek műszerezve.

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

Képernyőkép a Micrometer által készített egyéni metrikákról.

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

Képernyőkép az összes alkalmazás élő metrikáiról.

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 több kötést adhat hozzá egy építő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 rendezése

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 opcionális gyorsindítások bármelyikével: