Menganalisis log dan metrik dengan setelan diagnostik

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: ✔️ 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 Log Analytics.
  • 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.

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

  1. Di portal Microsoft Azure, buka instans Azure Spring Apps Anda.

  2. Pilih opsi pengaturan diagnostik, lalu pilih Tambahkan pengaturan diagnostik.

  3. Masukkan nama untuk pengaturan, lalu pilih tempat Anda ingin mengirim log. Anda dapat memilih kombinasi apa pun dari tiga opsi berikut:

    • Mengarsipkan ke akun penyimpanan
    • Melakukan streaming ke hub acara
    • Mengirim ke Log Analytics
    • Kirim ke solusi mitra
  4. Pilih kategori log dan kategori metrik mana yang ingin Anda pantau, lalu tentukan waktu retensi (dalam hari). Waktu retensi hanya berlaku untuk akun penyimpanan.

  5. 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 blade Log

  1. Di portal Microsoft Azure, buka instans Azure Spring Apps Anda.

  2. Untuk membuka panel Pencarian Log, pilih Log.

  3. Di kotak pencarian Tabel

    • Untuk melihat log, masukkan kueri sederhana seperti:
    AppPlatformLogsforSpring
    | limit 50
    
    • Untuk melihat metrik, masukkan kueri sederhana seperti:
    AzureMetrics
    | limit 50
    
  4. Untuk melihat hasil pencarian, pilih Jalankan.

Gunakan Analitik Log

  1. Di portal Microsoft Azure, di panel kiri, pilih Log Analytics.

  2. Pilih ruang kerja Log Analytics yang Anda pilih saat menambahkan pengaturan diagnostik.

  3. Untuk membuka panel Pencarian Log, pilih Log.

  4. Di kotak pencarian Tabel,

    • untuk melihat log, masukkan kueri sederhana seperti:
    AppPlatformLogsforSpring
    | limit 50
    
    • untuk melihat metrik, masukkan kueri sederhana seperti:
    AzureMetrics
    | limit 50
    
  5. Untuk melihat hasil pencarian, pilih Jalankan.

  6. Anda dapat mencari log aplikasi atau instans tertentu dengan mengatur kondisi filter:

    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

  1. Di portal Microsoft Azure, temukan Akun penyimpanan di panel navigasi kiri atau kotak pencarian.
  2. Pilih akun penyimpanan yang Anda pilih saat menambahkan pengaturan diagnostik.
  3. Untuk membuka panel Kontainer Blob, pilih Blob.
  4. Untuk meninjau log aplikasi, cari kontainer yang disebut insights-logs-applicationconsole.
  5. 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

  1. Di portal Microsoft Azure, temukan Event Hubs di panel navigasi kiri atau kotak pencarian.

  2. Cari dan pilih hub peristiwa yang Anda pilih saat menambahkan pengaturan diagnostik.

  3. Untuk membuka panel Daftar Event Hub, pilih Event Hubs.

  4. Untuk meninjau log aplikasi, cari hub peristiwa yang disebut insights-logs-applicationconsole.

  5. 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 mengulas entri log untuk requestIdnilai 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.

Pertanyaan yang sering diajukan (FAQ)

Bagaimana cara mengonversi jejak tumpukan Java multibaris menjadi satu baris?

Ada solusi untuk mengonversi jejak tumpukan multibaris 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>

Lalu Anda dapat mengganti token dengan karakter baru lagi di Log Analytics seperti di bawah ini:

AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')

Anda mungkin dapat menggunakan strategi yang sama untuk pustaka log Java lainnya.

Langkah berikutnya