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

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.

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

  2. 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}
    
  3. 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}
    
  4. 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
    
  5. Ç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:

Tüm uygulama günlükleri sorgusundan alınan örnek çıkışı gösteren Azure portalının ekran görüntüsü.

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:

Katalog Hizmeti uygulama günlüklerinden alınan örnek çıkışı gösteren Azure portalının ekran görüntüsü.

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:

Giriş Günlükleri'nden alınan örnek çıkışı gösteren Azure portalının ekran görüntüsü.

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:

Spring Cloud Gateway Günlükleri'nden alınan örnek çıkışı gösteren Azure portalının ekran görüntüsü.

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:

Hizmet kayıt defteri günlüklerinden alınan örnek çıkışı gösteren Azure portalının ekran görüntüsü.

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

Azure Uygulaması lication Insights Uygulama Haritası'nı gösteren Azure portalının ekran görüntüsü.

Aşağıdaki ekran görüntüsüne benzer şekilde Performans bölmesine gidin:

Azure Uygulaması lication Insights'ın Performans bölmesini gösteren Azure portalının ekran görüntüsü.

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:

Azure Uygulaması lication Insights'ın Performans bölmesinin Bağımlılıklar bölümünü gösteren Azure portalının ekran görüntüsü.

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:

Azure Uygulaması lication Insights'ın Performans bölmesinin Roller bölümünü gösteren Azure portalının ekran görüntüsü.

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:

S Q L çağrısının uçtan uca işlemini gösteren Azure portalının ekran görüntüsü.

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:

Uygulama hatalarını gösteren Azure portalının ekran görüntüsü.

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

Zaman içindeki ölçümleri gösteren Azure portal grafiğinin ekran görüntüsü.

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.

Mikrometre tarafından izlenen özel ölçümleri gösteren ekran görüntüsü.

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:

Tüm uygulamaların canlı ölçümlerini gösteren ekran görüntüsü.

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: