Mulai cepat: Memantau aplikasi end-to-end
Catatan
Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.
Artikel ini berlaku untuk:❌ Basic/Standard ✔️ Enterprise
Mulai cepat ini menunjukkan kepada Anda cara memantau aplikasi yang menjalankan paket Azure Spring Apps Enterprise dengan menggunakan Application Insights dan Log Analytics.
Catatan
Anda dapat memantau beban kerja Spring anda secara menyeluruh dengan menggunakan alat dan platform apa pun pilihan Anda, termasuk App Insights, Log Analytics, New Relic, Dynatrace, AppDynamics, Elastic, atau Splunk. Untuk informasi selengkapnya, lihat Bekerja dengan alat pemantauan lainnya nanti di artikel ini.
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Pahami dan penuhi bagian Persyaratan paket Enterprise di Marketplace Azure.
- Azure CLI versi 2.45.0 atau yang lebih tinggi.
- Git.
- Ekstensi paket Azure Spring Apps Enterprise. Gunakan perintah berikut untuk menghapus versi sebelumnya dan menginstal ekstensi paket Enterprise terbaru. Jika sebelumnya Anda menginstal ekstensi
spring-cloud
, hapus instalannya untuk menghindari ketidakcocokan konfigurasi dan versi.az extension add --upgrade --name spring az extension remove --name spring-cloud
- Sumber daya untuk dipantau, seperti yang dibuat dalam mulai cepat berikut:
Memperbarui aplikasi
Anda harus memberikan string koneksi Application Insights secara manual ke aplikasi Order Service (ASP.NET core) dan Cart Service (python). Instruksi berikut menjelaskan cara memberikan string koneksi ini dan meningkatkan tingkat pengambilan sampel ke Application Insights.
Catatan
Saat ini hanya buildpack untuk aplikasi Java dan NodeJS yang mendukung instrumentasi Application Insights.
Buat variabel untuk menahan nama sumber daya dengan menggunakan perintah berikut. Pastikan untuk mengganti placeholder dengan nilai Anda sendiri. Nama instans layanan Azure Spring Apps Anda harus panjangnya antara 4 dan 32 karakter dan hanya dapat berisi huruf kecil, angka, dan tanda hubung. Karakter pertama dari nama layanan harus berupa huruf dan karakter terakhir harus berupa huruf atau angka.
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>"
Catatan
Secara default, APP_INSIGHTS_NAME sama dengan AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME.
Gunakan perintah berikut untuk mengambil string koneksi Application Insights dan mengaturnya di 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}
Gunakan perintah berikut untuk memperbarui laju pengambilan sampel untuk pengikatan Application Insights untuk meningkatkan jumlah data yang tersedia:
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}
Gunakan perintah berikut untuk memulai ulang aplikasi untuk memuat ulang konfigurasi:
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
Jika Anda telah mengonfigurasi akses menyeluruh, gunakan perintah berikut untuk memulai ulang aplikasi untuk memuat ulang konfigurasi aplikasi layanan identitas:
az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name identity-service
Untuk aplikasi Java dan NodeJS, menghidupkan ulang akan memungkinkan laju pengambilan sampel baru berlaku. Untuk aplikasi non-Java, menghidupkan ulang akan memungkinkan mereka mengakses Kunci Instrumentasi yang baru ditambahkan dari Key Vault.
Menampilkan log
Ada dua cara untuk melihat log di Azure Spring Apps: streaming log log real-time per instans aplikasi atau Log Analytics untuk log agregat dengan kemampuan kueri tingkat lanjut
Menggunakan streaming log
Hasilkan lalu lintas dalam aplikasi dengan berpindah melalui aplikasi, melihat katalog, dan menempatkan pesanan. Gunakan perintah berikut untuk menghasilkan lalu lintas terus menerus, hingga dibatalkan:
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
Gunakan perintah berikut untuk mendapatkan 100 baris terbaru log konsol aplikasi dari aplikasi Catalog Service:
az spring app logs \
--resource-group ${RESOURCE_GROUP} \
--name catalog-service \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
--lines 100
Dengan menambahkan --follow
opsi , Anda bisa mendapatkan streaming log real-time dari aplikasi. Gunakan perintah berikut untuk mencoba streaming log untuk aplikasi Catalog Service:
az spring app logs \
--resource-group ${RESOURCE_GROUP} \
--name catalog-service \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
--follow
Tip
Anda dapat menggunakan log --help
aplikasi az spring untuk menjelajahi lebih banyak parameter dan fungsionalitas aliran log.
Gunakan Analitik Log
Navigasi ke portal Azure dan buka instans Log Analytics yang Anda buat. Anda dapat menemukan instans Analitik Log di grup sumber daya yang sama tempat Anda membuat instans layanan Azure Spring Apps.
Pada halaman Analitik Log, pilih panel Log dan jalankan salah satu kueri sampel berikut untuk Azure Spring Apps.
Ketik dan jalankan kueri Kusto berikut untuk melihat log aplikasi:
AppPlatformLogsforSpring
| where TimeGenerated > ago(24h)
| limit 500
| sort by TimeGenerated
| project TimeGenerated, AppName, Log
Kueri ini menghasilkan hasil yang mirip dengan yang diperlihatkan dalam cuplikan layar berikut:
Ketik dan jalankan kueri Kusto berikut untuk melihat catalog-service
log aplikasi:
AppPlatformLogsforSpring
| where AppName has "catalog-service"
| limit 500
| sort by TimeGenerated
| project TimeGenerated, AppName, Log
Kueri ini menghasilkan hasil yang mirip dengan yang diperlihatkan dalam cuplikan layar berikut:
Ketik dan jalankan kueri Kusto berikut untuk melihat kesalahan dan pengecualian yang dilemparkan oleh setiap aplikasi:
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
Kueri ini menghasilkan hasil yang mirip dengan yang diperlihatkan dalam cuplikan layar berikut:
Ketik dan jalankan kueri Kusto berikut untuk melihat semua dalam panggilan masuk ke Azure Spring Apps:
AppPlatformIngressLogs
| project TimeGenerated, RemoteAddr, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Ketik dan jalankan kueri Kusto berikut untuk melihat semua log dari Spring Cloud Config Gateway terkelola yang dikelola oleh Azure Spring Apps:
AppPlatformSystemLogs
| where LogType contains "SpringCloudGateway"
| project TimeGenerated,Log
Kueri ini menghasilkan hasil yang mirip dengan yang diperlihatkan dalam cuplikan layar berikut:
Ketik dan jalankan kueri Kusto berikut untuk melihat semua log dari Spring Cloud Service Registry terkelola yang dikelola oleh Azure Spring Apps:
AppPlatformSystemLogs
| where LogType contains "ServiceRegistry"
| project TimeGenerated, Log
Kueri ini menghasilkan hasil yang mirip dengan yang diperlihatkan dalam cuplikan layar berikut:
Menggunakan pelacakan
Di portal Azure, buka instans Application Insights yang dibuat oleh Azure Spring Apps dan mulai pantau aplikasi Spring Boot. Anda dapat menemukan instans Application Insights di grup sumber daya yang sama tempat Anda membuat instans layanan Azure Spring Apps.
Navigasi ke panel Peta aplikasi, yang akan mirip dengan cuplikan layar berikut:
Navigasi ke panel Performa , yang akan mirip dengan cuplikan layar berikut:
Navigasi ke panel Performa/Dependensi . Di sini Anda dapat melihat nomor performa untuk dependensi, terutama panggilan SQL, mirip dengan apa yang ditunjukkan pada cuplikan layar berikut:
Navigasi ke panel Performa/Peran . Di sini Anda dapat melihat metrik performa untuk instans atau peran individual, mirip dengan apa yang ditunjukkan dalam cuplikan layar berikut:
Pilih panggilan SQL untuk melihat transaksi end-to-end dalam konteks, mirip dengan apa yang diperlihatkan dalam cuplikan layar berikut:
Navigasi ke panel Kegagalan/Pengecualian . Di sini Anda dapat melihat kumpulan pengecualian, mirip dengan apa yang diperlihatkan dalam cuplikan layar berikut:
Melihat metrik
Navigasi ke panel Metrik . Di sini Anda dapat melihat metrik yang dikontribusikan oleh aplikasi Spring Boot, modul Spring Cloud, dan dependensi. Bagan dalam cuplikan layar berikut menunjukkan http_server_requests dan Memori Timbunan yang Digunakan:
Spring Boot mendaftarkan sejumlah besar metrik inti: JVM, CPU, Tomcat, Logback, dan sebagainya.
Konfigurasi otomatis Spring Boot memungkinkan instrumentasi permintaan yang ditangani oleh Spring MVC.
Pengontrol REST dan PaymentController
telah diinstrumentasikan ProductController
oleh @Timed
anotasi Micrometer di tingkat kelas.
Aplikasi acme-catalog
ini mengaktifkan metrik kustom berikut: @Timedstore.products
Aplikasi acem-payment
ini mengaktifkan metrik kustom berikut: @Timedstore.payment
Anda dapat melihat metrik kustom ini di panel Metrik , seperti yang diperlihatkan dalam cuplikan layar berikut.
Navigasi ke panel Metrik Langsung. Di sini Anda dapat melihat metrik langsung di layar dengan latensi < rendah 1 detik, seperti yang ditunjukkan pada cuplikan layar berikut:
Bekerja dengan alat pemantauan lainnya
Paket Azure Spring Apps Enterprise juga mendukung ekspor metrik ke alat lain, termasuk alat berikut:
- AppDinamics
- ApacheSkyWalking
- Dynatrace
- ElasticAPM
- NewRelic
Anda dapat menambahkan lebih banyak pengikatan ke penyusun di Tanzu Build Service dengan menggunakan perintah berikut:
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>
Membersihkan sumber daya
Jika Anda berencana untuk terus bekerja dengan mulai cepat dan tutorial berikutnya, biarkan sumber daya ini tetap di tempatnya. Jika tidak lagi diperlukan, hapus grup sumber daya yang juga akan menghapus sumber daya di grup sumber daya. Untuk menghapus grup sumber daya dengan menggunakan Azure CLI, gunakan perintah berikut:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Langkah berikutnya
Lanjutkan ke salah satu mulai cepat opsional berikut: