Hızlı Başlangıç: Uygulamaları uçtan uca izleme
Not
Temel, Standart ve Kurumsal planları, 3 yıllık kullanımdan kaldırma süresiyle Mart 2025 ortasından itibaren kullanımdan kaldırılacaktır. Azure Container Apps'e geçiş yapmanızı öneririz. Daha fazla bilgi için bkz . Azure Spring Apps kullanımdan kaldırma duyurusu.
Standart tüketim ve ayrılmış plan, altı ay sonra tamamen kapatılarak 30 Eylül 2024'den itibaren kullanımdan kaldırılacaktır. Azure Container Apps'e geçiş yapmanızı öneririz. Daha fazla bilgi için bkz . Azure Spring Apps Standart tüketimini ve ayrılmış planı Azure Container Apps'e geçirme.
Bu makale şunlar için geçerlidir:❌ Temel/Standart ✔️ Kurumsal
Bu hızlı başlangıçta, Application Insights ve Log Analytics kullanarak Azure Spring Apps Kurumsal planını çalıştıran uygulamaların nasıl izleneceği gösterilmektedir.
Not
Spring iş yüklerinizi App Insights, Log Analytics, New Relic, Dynatrace, AppDynamics, Elastic veya Splunk gibi istediğiniz herhangi bir araç ve platformu kullanarak uçtan uca izleyebilirsiniz. Daha fazla bilgi için bu makalenin devamında yer alan Diğer izleme araçlarıyla çalışma bölümüne bakın.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Azure Market'da Kurumsal planın Gereksinimler bölümünü anlayın ve yerine getirin.
- Azure CLI sürüm 2.45.0 veya üzeri.
- Git.
- Azure Spring Apps Kurumsal plan uzantısı. Önceki sürümleri kaldırmak ve en son Kurumsal plan uzantısını yüklemek için aşağıdaki komutu kullanın. Uzantıyı
spring-cloud
daha önce yüklediyseniz yapılandırma ve sürüm uyuşmazlıklarını önlemek için uzantıyı kaldırın.az extension add --upgrade --name spring az extension remove --name spring-cloud
- aşağıdaki hızlı başlangıçlarda oluşturulanlar gibi izlenecek kaynaklar:
Uygulamaları güncelleştirme
Application Insights bağlantı dizesi Sipariş Hizmeti (ASP.NET çekirdek) ve Sepet Hizmeti (python) uygulamalarına el ile sağlamanız gerekir. Aşağıdaki yönergelerde bu bağlantı dizesi sağlama ve Örnekleme hızını Application Insights'a artırma açıklanmaktadır.
Not
Şu anda yalnızca Java ve NodeJS uygulamaları için derleme paketleri Application Insights izlemesini desteklemektedir.
Aşağıdaki komutları kullanarak kaynak adlarını tutmak için değişkenler oluşturun. Yer tutucuları kendi değerlerinizle değiştirmeyi unutmayın. Azure Spring Apps hizmet örneğinizin adı 4 ila 32 karakter uzunluğunda olmalıdır ve yalnızca küçük harf, sayı ve kısa çizgi içerebilir. Hizmet adının ilk karakteri bir harf, son karakter ise harf veya sayı olmalıdır.
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>"
Not
Varsayılan olarak, APP_INSIGHTS_NAME AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME aynıdır.
Application Insights bağlantı dizesi almak ve Key Vault'ta ayarlamak için aşağıdaki komutları kullanın:
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}
Kullanılabilir veri miktarını artırmak üzere Application Insights bağlamasının örnekleme hızını güncelleştirmek için aşağıdaki komutu kullanın:
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}
Yapılandırmayı yeniden yüklemek üzere uygulamaları yeniden başlatmak için aşağıdaki komutları kullanın:
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
Çoklu oturum açmayı yapılandırdıysanız, kimlik hizmeti uygulama yapılandırmasını yeniden yüklemek üzere uygulamaları yeniden başlatmak için aşağıdaki komutları kullanın:
az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name identity-service
Java ve NodeJS uygulamaları için yeniden başlatma, yeni örnekleme hızının etkili olmasını sağlar. Java olmayan uygulamalar için yeniden başlatma, yeni eklenen İzleme Anahtarına Key Vault'tan erişmelerini sağlar.
Günlükleri görüntüleme
Azure Spring Apps'te günlükleri görmenin iki yolu vardır: uygulama örneği başına gerçek zamanlı günlüklerin günlük akışı veya gelişmiş sorgu özelliğine sahip toplu günlükler için Log Analytics
Günlük akışını kullanma
Uygulamada ilerleyerek, kataloğu görüntüleyerek ve siparişler vererek uygulamada trafik oluşturun. İptal edilene kadar sürekli trafik oluşturmak için aşağıdaki komutları kullanın:
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
Katalog Hizmeti uygulamasından uygulama konsolu günlüklerinin en son 100 satırını almak için aşağıdaki komutu kullanın:
az spring app logs \
--resource-group ${RESOURCE_GROUP} \
--name catalog-service \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
--lines 100
seçeneğini ekleyerek --follow
bir uygulamadan gerçek zamanlı günlük akışı alabilirsiniz. Katalog Hizmeti uygulaması için günlük akışını denemek için aşağıdaki komutu kullanın:
az spring app logs \
--resource-group ${RESOURCE_GROUP} \
--name catalog-service \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
--follow
İpucu
Az spring uygulama günlüklerini --help
kullanarak daha fazla parametre ve günlük akışı işlevi keşfedebilirsiniz.
Log Analytics kullanma
Azure portalına gidin ve oluşturduğunuz Log Analytics örneğini açın. Log Analytics örneğini, Azure Spring Apps hizmet örneğini oluşturduğunuz kaynak grubunda bulabilirsiniz.
Log Analytics sayfasında Günlükler bölmesini seçin ve Azure Spring Apps için aşağıdaki örnek sorgulardan herhangi birini çalıştırın.
Uygulama günlüklerini görmek için aşağıdaki Kusto sorgusunu yazın ve çalıştırın:
AppPlatformLogsforSpring
| where TimeGenerated > ago(24h)
| limit 500
| sort by TimeGenerated
| project TimeGenerated, AppName, Log
Bu sorgu, aşağıdaki ekran görüntüsünde gösterilenlere benzer sonuçlar üretir:
Uygulama günlüklerini görmek catalog-service
için aşağıdaki Kusto sorgusunu yazın ve çalıştırın:
AppPlatformLogsforSpring
| where AppName has "catalog-service"
| limit 500
| sort by TimeGenerated
| project TimeGenerated, AppName, Log
Bu sorgu, aşağıdaki ekran görüntüsünde gösterilenlere benzer sonuçlar üretir:
Her uygulama tarafından oluşturulan hataları ve özel durumları görmek için aşağıdaki Kusto sorgusunu yazın ve çalıştırın:
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
Bu sorgu, aşağıdaki ekran görüntüsünde gösterilenlere benzer sonuçlar üretir:
Azure Spring Apps'e gelen çağrıların tümünü görmek için aşağıdaki Kusto sorgusunu yazın ve çalıştırın:
AppPlatformIngressLogs
| project TimeGenerated, RemoteAddr, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Azure Spring Apps tarafından yönetilen yönetilen Spring Cloud Config Gateway'den tüm günlükleri görmek için aşağıdaki Kusto sorgusunu yazın ve çalıştırın:
AppPlatformSystemLogs
| where LogType contains "SpringCloudGateway"
| project TimeGenerated,Log
Bu sorgu, aşağıdaki ekran görüntüsünde gösterilenlere benzer sonuçlar üretir:
Azure Spring Apps tarafından yönetilen yönetilen Spring Cloud Service Kayıt Defteri'nden tüm günlükleri görmek için aşağıdaki Kusto sorgusunu yazın ve çalıştırın:
AppPlatformSystemLogs
| where LogType contains "ServiceRegistry"
| project TimeGenerated, Log
Bu sorgu, aşağıdaki ekran görüntüsünde gösterilenlere benzer sonuçlar üretir:
İzlemeyi kullanma
Azure portalında, Azure Spring Apps tarafından oluşturulan Application Insights örneğini açın ve Spring Boot uygulamalarını izlemeye başlayın. Application Insights örneğini, Azure Spring Apps hizmet örneğini oluşturduğunuz kaynak grubunda bulabilirsiniz.
Aşağıdaki ekran görüntüsüne benzer şekilde Uygulama haritası bölmesine gidin:
Aşağıdaki ekran görüntüsüne benzer şekilde Performans bölmesine gidin:
Performans/Bağımlılıklar bölmesine gidin. Burada, aşağıdaki ekran görüntüsünde gösterilene benzer şekilde bağımlılıkların performans numarasını, özellikle SQL çağrılarını görebilirsiniz:
Performans/Roller bölmesine gidin. Burada, aşağıdaki ekran görüntüsünde gösterilene benzer şekilde tek tek örneklerin veya rollerin performans ölçümlerini görebilirsiniz:
Bağlam içinde uçtan uca işlemi görmek için aşağıdaki ekran görüntüsünde gösterilene benzer bir SQL çağrısı seçin:
Hatalar/Özel Durumlar bölmesine gidin. Burada, aşağıdaki ekran görüntüsünde gösterilene benzer bir özel durum koleksiyonu görebilirsiniz:
Ölçümleri görüntüleme
Ölçümler bölmesine gidin. Burada Spring Boot uygulamalarının, Spring Cloud modüllerinin ve bağımlılıklarının katkılarıyla yapılan ölçümleri görebilirsiniz. Aşağıdaki ekran görüntüsünde http_server_requests ve Kullanılan Yığın Belleği gösterilmektedir:
Spring Boot çok sayıda çekirdek ölçümü kaydeder: JVM, CPU, Tomcat, Logback vb.
Spring Boot otomatik yapılandırması, Spring MVC tarafından işlenen isteklerin izlemesini sağlar.
REST denetleyicileri ProductController
ve PaymentController
sınıf düzeyinde Mikrometre ek açıklaması tarafından @Timed
izlenmiştir.
Uygulama acme-catalog
şu özel ölçümü etkinleştirmiştir: : @Timedstore.products
Uygulama acem-payment
şu özel ölçümü etkinleştirmiştir: : @Timedstore.payment
Bu özel ölçümleri aşağıdaki ekran görüntüsünde gösterildiği gibi Ölçümler bölmesinde görebilirsiniz.
Canlı Ölçümler bölmesine gidin. Burada, aşağıdaki ekran görüntüsünde gösterildiği gibi 1 saniyelik düşük gecikme süresine < sahip canlı ölçümleri ekranda görebilirsiniz:
Diğer izleme araçlarıyla çalışma
Azure Spring Apps Kurumsal planı, aşağıdaki araçlar da dahil olmak üzere ölçümleri diğer araçlara dışarı aktarmayı da destekler:
- AppDynamics
- ApacheSkyWalking
- Dynatrace
- ElasticAPM
- NewRelic
Aşağıdaki komutu kullanarak Tanzu Derleme Hizmeti'ndeki bir oluşturucuya daha fazla bağlama ekleyebilirsiniz:
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>
Kaynakları temizleme
Sonraki hızlı başlangıçlar ve öğreticilerle çalışmaya devam etmek istiyorsanız, bu kaynakları yerinde bırakmak isteyebilirsiniz. Artık gerekli olmadığında kaynak grubunu silin; bu da kaynak grubundaki kaynakları siler. Azure CLI kullanarak kaynak grubunu silmek için aşağıdaki komutları kullanın:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Sonraki adımlar
Aşağıdaki isteğe bağlı hızlı başlangıçlardan herhangi birine geçin: