Menganalisis log dan metrik dengan setelan diagnostik
Catatan
Paket Basic, Standard, dan Enterprise tidak digunakan lagi mulai pertengahan Maret 2025, dengan periode penghentian 3 tahun. Sebaiknya transisi ke Azure Container Apps. Untuk informasi selengkapnya, lihat pengumuman penghentian Azure Spring Apps.
Konsumsi Standar dan paket khusus akan ditolak mulai 30 September 2024, dengan pematian lengkap setelah enam bulan. Sebaiknya transisi ke Azure Container Apps. Untuk informasi selengkapnya, lihat Memigrasikan konsumsi Azure Spring Apps Standard dan paket khusus ke Azure Container Apps.
Artikel ini berlaku untuk:✅ Java ✅ C#
Artikel ini berlaku untuk:✅ Basic/Standard ✅ Enterprise
Artikel ini menunjukkan cara menganalisis data diagnostik di Azure Spring Apps.
Menggunakan fungsionalitas diagnostik Azure Spring Apps, Anda dapat menganalisis log dan metrik dengan salah satu layanan berikut:
- Gunakan Azure Log Analytics. Ada penundaan saat mengekspor log ke Analitik Log.
- Simpan log ke akun penyimpanan untuk audit atau pemeriksaan manual. Anda dapat menentukan waktu retensi (dalam hari).
- Streaming log ke hub peristiwa untuk diserap oleh layanan pihak ketiga atau solusi analitik kustom.
Pilih kategori log dan kategori metrik yang ingin Anda pantau.
Tip
Jika Anda hanya ingin melakukan streaming log, Anda dapat menggunakan perintah Azure CLI az spring app logs.
Log
Log | Deskripsi |
---|---|
ApplicationConsole | Log konsol semua aplikasi pelanggan. |
SystemLogs | Nilai yang tersedia LogType adalah ConfigServer (hanya Dasar/Standar), ServiceRegistry (semua paket), ApiPortal (paket Enterprise saja), ApplicationConfigurationService (hanya paket Enterprise), SpringCloudGateway (hanya paket Enterprise), dan SpringCloudGatewayOperator (hanya paket Enterprise) |
IngressLogs | Log Ingress dari semua aplikasi pelanggan, hanya log akses. |
BuildLogs | Build log dari semua aplikasi pelanggan untuk setiap tahap build. |
Catatan
Untuk melindungi aplikasi Anda dari potensi kebocoran kredensial, semua konten log dengan kredensial atau informasi sensitif lainnya ditutupi dengan ***
. Misalnya, konten log apa pun dengan pola berikut ditangani sebagai informasi sensitif, dan nilai yang sesuai ditutupi:
-
dbpass
, ,password
,secret
key
,sig
, dansignature
diikuti oleh:
atau=
. Pola-pola ini biasanya muncul di parameter URL dan cadangan payload. Misalnya,https://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=xxxxxxxxxxxxxx
menjadihttps://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=***
- String yang dikodekan seperti token JWT dalam format:
eyJxxxxxx.eyJxxxxxx
Jika Anda menemukan nilai bertopeng di log Anda, pastikan untuk memperbarui kode aplikasi Anda untuk menghilangkan kebocoran kredensial.
Metrik
Untuk daftar lengkap metrik, lihat bagian Opsi metrik pengguna dari Metrik untuk Azure Spring Apps.
Untuk memulai, aktifkan salah satu layanan ini untuk menerima data. Untuk mempelajari tentang mengonfigurasi Log Analytics, lihat Mulai menggunakan Log Analytics di Azure Monitor.
Mengonfigurasi pengaturan diagnostik
Di portal Microsoft Azure, buka instans Azure Spring Apps Anda.
Pilih opsi pengaturan diagnostik, lalu pilih Tambahkan pengaturan diagnostik.
Masukkan nama untuk pengaturan, lalu pilih tempat Anda ingin mengirim log. Anda dapat memilih kombinasi dari opsi berikut:
- Mengarsipkan ke akun penyimpanan
- Melakukan streaming ke hub acara
- Mengirim ke Log Analytics
- Kirim ke solusi mitra
Pilih kategori log dan kategori metrik mana yang ingin Anda pantau, lalu tentukan waktu retensi (dalam hari). Waktu retensi hanya berlaku untuk akun penyimpanan.
Pilih Simpan.
Catatan
Mungkin ada celah hingga 15 menit antara saat log atau metrik dikeluarkan dan saat muncul di akun penyimpanan, hub peristiwa, atau Log Analytics. Jika instans Azure Spring Apps dihapus atau dipindahkan, operasi tidak akan mengalir ke sumber daya pengaturan diagnostik. Sumber daya pengaturan diagnostik harus dihapus secara manual sebelum operasi terhadap induknya, instans Azure Spring Cloud. Sebaliknya, jika instans Azure Spring Apps baru diprovisikan dengan ID sumber daya yang sama seperti yang dihapus, atau jika instans Azure Spring Apps dipindahkan kembali, sumber daya pengaturan diagnostik sebelumnya terus memperluasnya.
Melihat log dan metrik
Ada berbagai metode untuk melihat log dan metrik seperti yang dijelaskan di bawah judul berikut.
Menggunakan panel Log
Di portal Microsoft Azure, buka instans Azure Spring Apps Anda.
Untuk membuka panel Pencarian Log, pilih Log.
Dalam kotak pencarian Tabel , gunakan salah satu kueri berikut ini:
Untuk menampilkan log, masukkan kueri seperti contoh berikut:
AppPlatformLogsforSpring | limit 50
Untuk menampilkan metrik, masukkan kueri seperti contoh berikut:
AzureMetrics | limit 50
Untuk melihat hasil pencarian, pilih Jalankan.
Gunakan Analitik Log
Di portal Microsoft Azure, di panel kiri, pilih Log Analytics.
Pilih ruang kerja Log Analytics yang Anda pilih saat menambahkan pengaturan diagnostik.
Untuk membuka panel Pencarian Log, pilih Log.
Dalam kotak pencarian Tabel , gunakan salah satu kueri berikut ini:
Untuk menampilkan log, masukkan kueri seperti contoh berikut:
AppPlatformLogsforSpring | limit 50
Untuk menampilkan metrik, masukkan kueri seperti contoh berikut:
AzureMetrics | limit 50
Untuk melihat hasil pencarian, pilih Jalankan.
Anda dapat mencari log aplikasi atau instans tertentu dengan mengatur kondisi filter, seperti yang ditunjukkan dalam contoh berikut:
AppPlatformLogsforSpring | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName" | limit 50
Catatan
==
peka huruf besar/kecil, tetapi=~
tidak.
Untuk mempelajari selengkapnya tentang bahasa kueri yang digunakan dalam Log Analytics, lihat kueri log Azure Monitor. Untuk mengkueri semua log Log Analytics dari klien terpusat, lihat Azure Data Explorer.
Menggunakan akun penyimpanan
- Di portal Microsoft Azure, temukan Akun penyimpanan di panel navigasi kiri atau kotak pencarian.
- Pilih akun penyimpanan yang Anda pilih saat menambahkan pengaturan diagnostik.
- Untuk membuka panel Kontainer Blob, pilih Blob.
- Untuk meninjau log aplikasi, cari kontainer yang disebut insights-logs-applicationconsole.
- Untuk meninjau metrik aplikasi, cari kontainer yang disebut insights-metrics-pt1m.
Untuk mempelajari selengkapnya tentang mengirim informasi diagnostik ke akun penyimpanan, lihat Menyimpan dan melihat data diagnostik di Azure Storage.
Menggunakan hub peristiwa
Di portal Microsoft Azure, temukan Event Hubs di panel navigasi kiri atau kotak pencarian.
Cari dan pilih hub peristiwa yang Anda pilih saat menambahkan pengaturan diagnostik.
Untuk membuka panel Daftar Event Hub, pilih Event Hubs.
Untuk meninjau log aplikasi, cari hub peristiwa yang disebut insights-logs-applicationconsole.
Untuk meninjau metrik aplikasi, cari hub peristiwa yang disebut insights-metrics-pt1m.
Untuk mempelajari selengkapnya tentang mengirim informasi diagnostik ke hub peristiwa, lihat Streaming data Azure Diagnostics di jalur baru menggunakan Event Hubs.
Menganalisis log
Azure Log Analytics berjalan dengan mesin Kusto sehingga Anda dapat meminta log untuk dianalisis. Untuk pengenalan cepat untuk mengkueri log menggunakan Kusto, tinjau tutorial Log Analytics.
Log aplikasi menyediakan informasi penting dan log verbose tentang kesehatan, performa aplikasi, dan banyak lagi. Di bagian berikutnya adalah beberapa kueri sederhana untuk membantu Anda memahami status aplikasi Anda saat ini dan sebelumnya.
Tampilkan log aplikasi dari Azure Spring Apps
Untuk mengulas daftar log aplikasi dari Azure Spring Apps, diurutkan berdasarkan waktu dengan log terbaru ditampilkan terlebih dahulu, jalankan kueri berikut:
AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| sort by TimeGenerated desc
Menampilkan entri log yang berisi kesalahan atau pengecualian
Untuk meninjau entri log yang tidak diurutkan yang menyebutkan kesalahan atau pengecualian, jalankan kueri berikut ini:
AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| where Log contains "error" or Log contains "exception"
Gunakan kueri ini untuk menemukan kesalahan, atau ubah istilah kueri untuk menemukan kode kesalahan atau pengecualian tertentu.
Menampilkan jumlah kesalahan dan pengecualian yang dilaporkan oleh aplikasi Anda selama satu jam terakhir
Untuk membuat bagan pai yang menampilkan jumlah kesalahan dan pengecualian yang dicatat oleh aplikasi Anda dalam satu jam terakhir, jalankan kueri berikut ini:
AppPlatformLogsforSpring
| where TimeGenerated > ago(1h)
| where Log contains "error" or Log contains "exception"
| summarize count_per_app = count() by AppName
| sort by count_per_app desc
| render piechart
Memperlihatkan entri log masuk yang berisi host tertentu
Untuk meninjau entri log yang dihasilkan oleh host tertentu, jalankan kueri berikut:
AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and Host == "ingress-asc.test.azuremicroservices.io"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Gunakan kueri ini untuk menemukan respons Status
, RequestTime
dan properti lain dari log masuk host khusus ini.
Tampilkan entri log masuk untuk requestId tertentu
Untuk meninjau entri log untuk requestId
nilai tertentu <request_ID>
, jalankan kueri berikut:
AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and ReqId == "<request_ID>"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Tampilkan entri build log untuk aplikasi tertentu
Untuk mengulas entri log untuk aplikasi tertentu selama proses build, jalankan kueri berikut:
AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>"
| sort by TimeGenerated
Tampilkan entri build log untuk aplikasi tertentu pada tahap build tertentu
Guna mengulas entri log untuk aplikasi tertentu pada tahap build tertentu, jalankan kueri berikut. Ganti <app-name>
tempat penampung dengan nama aplikasi Anda. Ganti <build-stage>
tempat penampung dengan salah satu nilai berikut, yang mewakili tahapan proses pembuatan: prepare
, detect
, restore
, analyze
, build
, export
, atau completion
.
AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>" and ContainerName == "<build-stage>"
| sort by TimeGenerated
Menampilkan log VMware Spring Cloud Gateway dalam paket Enterprise
Untuk meninjau entri log untuk log VMware Spring Cloud Gateway dalam paket Enterprise, jalankan kueri berikut:
AppPlatformSystemLogs
| where LogType == "SpringCloudGateway"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Komponen lain, bernama Operator Spring Cloud Gateway, mengontrol siklus hidup Spring Cloud Gateway dan rute. Jika Anda mengalami masalah dengan rute yang tidak berlaku, periksa log untuk komponen ini. Untuk meninjau entri log untuk Operator VMware Spring Cloud Gateway dalam paket Enterprise, jalankan kueri berikut:
AppPlatformSystemLogs
| where LogType == "SpringCloudGatewayOperator"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Tampilkan Layanan Konfigurasi Aplikasi untuk log Tanzu dalam paket Enterprise
Untuk meninjau entri log untuk Application Configuration Service untuk log Tanzu dalam paket Enterprise, jalankan kueri berikut:
AppPlatformSystemLogs
| where LogType == "ApplicationConfigurationService"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Menampilkan log Tanzu Service Registry dalam paket Enterprise
Untuk meninjau entri log untuk log Tanzu Service Registry dalam paket Enterprise, jalankan kueri berikut:
AppPlatformSystemLogs
| where LogType == "ServiceRegistry"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Menampilkan portal API untuk log VMware Tanzu dalam paket Enterprise
Untuk meninjau entri log untuk portal API untuk log VMware Tanzu dalam paket Enterprise, jalankan kueri berikut:
AppPlatformSystemLogs
| where LogType == "ApiPortal"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Mempelajari selengkapnya tentang mengkueri log aplikasi
Azure Monitor menyediakan dukungan ekstensif untuk mengkueri log aplikasi menggunakan Log Analytics. Untuk mempelajari selengkapnya tentang layanan ini, lihat Mulai menggunakan kueri log di Azure Monitor. Untuk informasi selengkapnya tentang membuat kueri untuk menganalisis log aplikasi, lihat Gambaran umum kueri log di Azure Monitor.
Titik masuk yang nyaman di portal Azure
Gunakan langkah-langkah berikut untuk menavigasi ke panel Analitik Log dengan kueri yang telah ditentukan sebelumnya:
Buka halaman Gambaran Umum untuk instans layanan Azure Spring Apps Anda lalu pilih Aplikasi di panel navigasi.
Temukan aplikasi target Anda lalu pilih menu konteks.
Di menu konteks pop-up, pilih Tampilkan log.
Tindakan ini mengarahkan Anda ke panel Analitik Log dengan kueri yang telah ditentukan sebelumnya.
Ada titik masuk lain untuk melihat log. Anda juga dapat menemukan tombol Tampilkan log untuk komponen terkelola seperti Build Service dan Service Registry.
Pertanyaan Umum (FAQ)
Bagaimana cara mengonversi jejak tumpukan Java multibaris menjadi satu baris?
Ada solusi untuk mengonversi jejak tumpukan multibaris Anda menjadi satu baris. Anda dapat memodifikasi output log Java untuk menformat ulang pesan pelacakan tumpukan, mengganti karakter baru dengan token. Jika Anda menggunakan pustaka Logback Java, Anda dapat membuat ulang pesan pelacakan tumpukan dengan menambahkan %replace(%ex){'[\r\n]+', '\\n'}%nopex
sebagai berikut:
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
level: %level, message: "%logger{36}: %msg", exceptions: "%replace(%ex){'[\r\n]+', '\\n'}%nopex"%n
</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
Anda kemudian dapat mengganti token dengan karakter baris baru di Analitik Log, seperti yang ditunjukkan dalam contoh berikut:
AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')
Anda mungkin dapat menggunakan strategi yang sama untuk pustaka log Java lainnya.