Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Plány Basic, Standarda Enterprise vstoupily do důchodového období 17. března 2025. Další informace najdete v oznámení o vyřazení Azure Spring Apps.
Tento článek se vztahuje na: ❎ Basic/Standard ✅ Enterprise
V tomto rychlém startu se dozvíte, jak monitorovat aplikace s plánem Azure Spring Apps Enterprise pomocí Application Insights a Log Analytics.
Poznámka:
Kompletní úlohy Spring můžete monitorovat pomocí libovolného nástroje a platformy, včetně App Insights, Log Analytics, New Relic, Dynatrace, AppDynamics, Elastic nebo Splunk. Další informace naleznete v části Práce s dalšími monitorovacími nástroji dále v tomto článku.
Požadavky
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Azure CLI verze 2.45.0 nebo vyšší.
- Git
-
Rozšíření plánu Azure Spring Apps Enterprise Pomocí následujícího příkazu odeberte předchozí verze a nainstalujte nejnovější rozšíření plánu Enterprise. Pokud jste rozšíření nainstalovali dříve
spring-cloud, odinstalujte ho, abyste se vyhnuli neshodám konfigurace a verzí.az extension add --upgrade --name spring az extension remove --name spring-cloud - Prostředky, které je třeba monitorovat, jako jsou ty vytvořené v následujících rychlých začátcích:
Aktualizace aplikací
Musíte ručně poskytnout připojovací řetězec z Application Insights aplikacím Order Service (ASP.NET Core) a Cart Service (Python). Následující pokyny popisují, jak tento připojovací řetězec poskytnout a zvýšit vzorkovací frekvenci v Application Insights.
Poznámka:
V současné době podporují instrumentaci Application Insights jenom buildpacky pro Javu a Node.js aplikace.
Pomocí následujících příkazů vytvořte proměnné, které budou obsahovat názvy prostředků. Zástupné symboly nezapomeňte nahradit vlastními hodnotami. Název instance služby Azure Spring Apps musí mít délku 4 až 32 znaků a může obsahovat jenom malá písmena, číslice a pomlčky. První znak názvu služby musí být písmeno a poslední znak musí být písmeno nebo číslo.
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>"Poznámka:
Ve výchozím nastavení je APP_INSIGHTS_NAME stejný jako AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME.
Pomocí následujících příkazů načtěte připojovací řetězec Application Insights a nastavte ho ve službě Key Vault:
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}Pomocí následujícího příkazu aktualizujte vzorkovací frekvenci pro vazbu Application Insights, abyste zvýšili množství dostupných dat:
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}Pomocí následujících příkazů restartujte aplikace, aby se znovu načítá konfigurace:
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-servicePokud jste nakonfigurovali jednotné přihlašování, pomocí následujících příkazů restartujte aplikace a znovu načtěte konfiguraci aplikace služby Identity Service:
az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name identity-serviceU aplikací Java a Node.js restartování umožní, aby nová vzorkovací frekvence vstoupila v platnost. U aplikací mimo Javu jim restartování umožní přístup k nově přidanému instrumentačnímu klíči ze služby Key Vault.
Zobrazení protokolů
Protokoly ve službě Azure Spring Apps můžete zobrazit dvěma způsoby: streamování protokolů v reálném čase na instanci aplikace nebo Log Analytics pro agregované protokoly s pokročilými možnostmi dotazů
Použití streamování protokolů
Vygenerujte provoz v aplikaci tak, že přejdete přes aplikaci, zobrazíte katalog a umístíte objednávky. K průběžnému generování provozu použijte následující příkazy, dokud je nezrušíte.
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
Pomocí následujícího příkazu získáte nejnovějších 100 řádků protokolů konzoly aplikace z aplikace Katalogová služba:
az spring app logs \
--resource-group ${RESOURCE_GROUP} \
--name catalog-service \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
--lines 100
Přidáním možnosti --follow můžete z aplikace získat streamování protokolů v reálném čase. K vyzkoušení streamování protokolů pro aplikaci Služby katalogu použijte následující příkaz:
az spring app logs \
--resource-group ${RESOURCE_GROUP} \
--name catalog-service \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
--follow
Tip
Abyste mohli prozkoumat další parametry a funkce protokolu streamu, můžete použít az spring app logs --help.
Použití Log Analytics
Přejděte na web Azure Portal a otevřete instanci Log Analytics, kterou jste vytvořili. Instanci Log Analytics najdete ve stejné skupině prostředků, ve které jste vytvořili instanci služby Azure Spring Apps.
Na stránce Log Analytics vyberte podokno Protokoly a spusťte některý z následujících ukázkových dotazů pro Azure Spring Apps.
Zadáním a spuštěním následujícího dotazu Kusto zobrazte protokoly aplikace:
AppPlatformLogsforSpring
| where TimeGenerated > ago(24h)
| limit 500
| sort by TimeGenerated
| project TimeGenerated, AppName, Log
Tento dotaz vytvoří podobné výsledky jako na následujícím snímku obrazovky:
Zadáním a spuštěním následujícího dotazu Kusto zobrazte catalog-service protokoly aplikace:
AppPlatformLogsforSpring
| where AppName has "catalog-service"
| limit 500
| sort by TimeGenerated
| project TimeGenerated, AppName, Log
Tento dotaz vytvoří podobné výsledky jako na následujícím snímku obrazovky:
Zadáním a spuštěním následujícího dotazu Kusto zobrazíte chyby a výjimky vyvolané jednotlivými aplikacemi:
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
Tento dotaz vytvoří podobné výsledky jako na následujícím snímku obrazovky:
Zadáním a spuštěním následujícího dotazu Kusto zobrazíte všechna příchozí volání do Azure Spring Apps:
AppPlatformIngressLogs
| project TimeGenerated, RemoteAddr, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Zadáním a spuštěním následujícího dotazu Kusto zobrazte všechny protokoly ze spravované brány Spring Cloud Config Gateway spravované službou Azure Spring Apps:
AppPlatformSystemLogs
| where LogType contains "SpringCloudGateway"
| project TimeGenerated,Log
Tento dotaz vytvoří podobné výsledky jako na následujícím snímku obrazovky:
Zadáním a spuštěním následujícího dotazu Kusto zobrazte všechny protokoly ze spravovaného registru služby Spring Cloud spravovaného službou Azure Spring Apps:
AppPlatformSystemLogs
| where LogType contains "ServiceRegistry"
| project TimeGenerated, Log
Tento dotaz vytvoří podobné výsledky jako na následujícím snímku obrazovky:
Použijte trasování
Na webu Azure Portal otevřete instanci Application Insights vytvořenou službou Azure Spring Apps a začněte monitorovat aplikace Spring Boot. Instanci Application Insights najdete ve stejné skupině prostředků, ve které jste vytvořili instanci služby Azure Spring Apps.
Přejděte do podokna Mapa aplikace, které bude vypadat podobně jako na následujícím snímku obrazovky:
Přejděte do podokna Výkon , které bude vypadat podobně jako na následujícím snímku obrazovky:
Přejděte do podokna Výkon nebo závislosti . Tady vidíte číslo výkonu závislostí, zejména volání SQL, podobně jako na následujícím snímku obrazovky:
Přejděte do podokna Výkon/Role . Tady vidíte metriky výkonu jednotlivých instancí nebo rolí, podobně jako na následujícím snímku obrazovky:
Výběrem volání SQL zobrazíte komplexní transakci v kontextu, podobně jako na následujícím snímku obrazovky:
Přejděte do podokna Selhání nebo výjimky . Tady vidíte kolekci výjimek, podobně jako na následujícím snímku obrazovky:
Zobrazení metrik
Přejděte do podokna Metriky . Zde můžete vidět metriky, které poskytují aplikace Spring Boot, moduly Spring Cloud a jejich závislosti. Graf na následujícím snímku obrazovky ukazuje http_server_requests a využitou paměť haldy:
Spring Boot registruje velký počet základních metrik: JVM, CPU, Tomcat, Logback atd.
Automatická konfigurace Spring Boot umožňuje instrumentaci požadavků zpracovávaných aplikací Spring MVC.
Kontrolery ProductController REST a PaymentController byly vybaveny anotací @Timed Micrometer na úrovni třídy.
Aplikace acme-catalog má povolenou následující vlastní metriku: @Timedstore.products
Aplikace acem-payment má povolenou následující vlastní metriku: @Timedstore.payment
Tyto vlastní metriky můžete zobrazit v podokně Metriky , jak je znázorněno na následujícím snímku obrazovky.
Přejděte do sekce Živé metriky. Tady můžete vidět živé metriky < na obrazovce s nízkou latencí 1 sekundu, jak je znázorněno na následujícím snímku obrazovky:
Práce s dalšími monitorovacími nástroji
Plán Azure Spring Apps Enterprise podporuje také export metrik do jiných nástrojů, včetně následujících nástrojů:
- AppDynamics
- ApacheSkyWalking
- Dynatrace
- ElasticAPM
- NewRelic
Do sestavitele ve službě Tanzu Build Service můžete přidat další vazby pomocí následujícího příkazu:
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>
Vyčištění prostředků
Pokud plánujete pokračovat v práci s dalšími návody a kurzy, možná budete chtít tyto prostředky nechat tak, jak jsou. Až ji přestanete potřebovat, odstraňte skupinu prostředků, a tím odstraníte i všechny prostředky v ní. Pokud chcete odstranit skupinu prostředků pomocí Azure CLI, použijte následující příkazy:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Další kroky
Pokračujte k některému z následujících volitelných rychlých startů: