Cara memecahkan masalah dengan log sumber daya

Panduan cara ini memberikan gambaran umum tentang log sumber daya Azure Web PubSub dan beberapa tips untuk menggunakan log untuk memecahkan masalah tertentu. Log dapat digunakan untuk identifikasi masalah, pelacakan koneksi, pelacakan pesan, pelacakan permintaan HTTP, dan analisis.

Apa itu log sumber daya?

Ada tiga jenis log sumber daya: permintaan Koneksi ivity, Messaging, dan HTTP.

  • log Koneksi ivity menyediakan informasi terperinci untuk koneksi hub Azure Web PubSub. Misalnya, informasi dasar (ID pengguna, ID koneksi, dan sebagainya) dan informasi peristiwa (sambungkan, putuskan sambungan, dan sebagainya).
  • Log olahpesan menyediakan informasi pelacakan untuk pesan hub Azure Web PubSub yang diterima dan dikirim melalui layanan Azure Web PubSub. Misalnya, melacak ID dan tipe pesan.
  • Log permintaan HTTP menyediakan informasi pelacakan untuk permintaan HTTP ke layanan Azure Web PubSub. Misalnya, metode HTTP dan kode status. Biasanya permintaan HTTP direkam ketika tiba di atau meninggalkan layanan.

Mengambil log sumber daya dengan menggunakan alat pelacakan langsung

Alat pelacakan langsung layanan Azure Web PubSub memiliki kemampuan untuk mengumpulkan log sumber daya secara real time, yang berguna untuk memecahkan masalah di lingkungan pengembangan Anda. Alat pelacakan langsung dapat menangkap log konektivitas, log olahpesan, dan log permintaan HTTP.

Catatan

Pertimbangan berikut berlaku untuk menggunakan alat pelacakan langsung:

  • Log sumber daya real time yang diambil oleh alat pelacakan langsung akan ditagihkan sebagai pesan (lalu lintas keluar).
  • Alat pelacakan langsung saat ini tidak mendukung otorisasi Microsoft Entra. Anda harus mengaktifkan kunci akses untuk menggunakan pelacakan langsung. Di bawah Pengaturan, pilih Kunci, lalu aktifkan Kunci Akses.
  • Instans Tingkat Gratis layanan Azure Web PubSub memiliki batas harian 20.000 pesan (lalu lintas keluar). Pelacakan langsung dapat menyebabkan Anda secara tak terduga mencapai batas harian.

Luncurkan alat jejak langsung

Catatan

Saat mengaktifkan kunci akses, Anda akan menggunakan token akses untuk mengautentikasi alat pelacakan langsung. Jika tidak, Anda akan menggunakan ID Microsoft Entra untuk mengautentikasi alat pelacakan langsung. Anda dapat memeriksa apakah Anda mengaktifkan kunci akses atau tidak di halaman Kunci SignalR Service Anda di portal Azure.

Langkah-langkah untuk kunci akses diaktifkan

  1. Buka portal Azure dan halaman SignalR Service Anda.

  2. Dari menu di sebelah kiri, di bawah Pemantauan pilih Pengaturan pelacakan langsung.

  3. Pilih Aktifkan Pelacakan Langsung.

  4. Pilih tombol Simpan . Ini akan memakan waktu sejenak agar perubahan diterapkan.

  5. Saat pembaruan selesai, pilih Buka Alat Pelacakan Langsung.

    Screenshot of launching the live trace tool.

Langkah-langkah untuk kunci akses dinonaktifkan

Menetapkan izin API alat pelacakan langsung untuk diri Anda sendiri

  1. Buka portal Azure dan halaman SignalR Service Anda.
  2. Pilih Kontrol Akses (IAM) .
  3. Di halaman baru, Klik +Tambahkan, lalu klik Penetapan peran.
  4. Di halaman baru, fokus pada tab Peran fungsi pekerjaan, Pilih peran Pemilik Layanan SignalR, lalu klik Berikutnya.
  5. Di halaman Anggota , klik +Pilih anggota.
  6. Di panel baru, cari dan pilih anggota, lalu klik Pilih.
  7. Klik Tinjau + tetapkan, dan tunggu pemberitahuan penyelesaian.

Kunjungi alat pelacakan langsung

  1. Buka portal Azure dan halaman SignalR Service Anda.

  2. Dari menu di sebelah kiri, di bawah Pemantauan pilih Pengaturan pelacakan langsung.

  3. Pilih Aktifkan Pelacakan Langsung.

  4. Pilih tombol Simpan . Ini akan memakan waktu sejenak agar perubahan diterapkan.

  5. Saat pembaruan selesai, pilih Buka Alat Pelacakan Langsung.

    Screenshot of launching the live trace tool.

Masuk dengan akun Microsoft Anda

  1. Alat pelacakan langsung akan memunculkan jendela masuk Microsoft. Jika tidak ada jendela yang muncul, periksa dan izinkan jendela pop up di browser Anda.
  2. Tunggu Siap ditampilkan di bilah status.

Mengambil log sumber daya

Alat pelacakan langsung menyediakan fungsionalitas untuk membantu Anda menangkap log sumber daya untuk pemecahan masalah.

  • Tangkap: Mulai ambil log sumber daya real-time dari Azure Web PubSub.
  • Bersihkan: Bersihkan log sumber daya real time yang berhasil diambil.
  • Filter log: Alat pelacakan langsung memungkinkan Anda memfilter log sumber daya real-time yang diambil dengan satu kata kunci tertentu. Pemisah umum (misalnya, spasi, koma, titik koma, dan sebagainya) akan diperlakukan sebagai bagian dari kata kunci.
  • Status: Status menunjukkan apakah alat jejak langsung terhubung atau terputus dengan instans tertentu.

Screenshot of capturing resource logs with live trace tool.

Log sumber daya real time yang diambil oleh alat pelacakan langsung berisi informasi detail untuk pemecahan masalah.

Nama Deskripsi
Waktu Log waktu peristiwa
Tingkat log Tingkat peristiwa log, bisa [Lacak | Debug | Informasi | Peringatan | Kesalahan]
Nama Acara Nama operasi peristiwa
Pesan Pesan terperinci untuk peristiwa
Pengecualian Pengecualian run-time dari layanan Azure Web PubSub
Hub Nama hub yang ditentukan pengguna
ID Koneksi Identitas koneksi
Id Pengguna Identitas pengguna
IP Alamat IP Klien
Templat Rute Templat rute API
Metode Http Metode Http (POST/GET/PUT/DELETE)
URL Alamat web
ID Pelacakan Pengidentifikasi unik untuk pemanggilan
Kode status Kode respons Http
Durasi Durasi antara menerima permintaan dan memproses permintaan
Header Informasi tambahan yang diteruskan oleh klien dan server dengan permintaan HTTP atau respons

Mengambil log sumber daya dengan Azure Monitor

Cara mengaktifkan log sumber daya

Saat ini Azure Web PubSub mendukung integrasi dengan Azure Storage.

  1. Buka portal Azure.

  2. Pada halaman Pengaturan diagnostik instans layanan Azure Web PubSub Anda, pilih + Tambahkan pengaturan diagnostik. Screenshot of viewing diagnostic settings and create a new one

  3. Dalam Nama pengaturan diagnostik, masukkan nama pengaturan.

  4. Dalam Detail kategori, pilih kategori log apa pun yang Anda butuhkan.

  5. Dalam Detail tujuan, centang Arsipkan ke akun penyimpanan.

    Screenshot of configuring diagnostic setting detail

  6. Pilih Simpan untuk menyimpan pengaturan diagnostik.

    Catatan

    Akun penyimpanan harus berada di wilayah yang sama dengan layanan Azure Web PubSub.

Mengarsipkan ke Akun Azure Storage

Log disimpan di akun penyimpanan yang dikonfigurasi di panel Pengaturan diagnostik. Kontainer bernama insights-logs-<CATEGORY_NAME> dibuat secara otomatis untuk menyimpan log sumber daya. Di dalam kontainer, log disimpan dalam file resourceId=/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/XXXX/PROVIDERS/MICROSOFT.SIGNALRSERVICE/SIGNALR/XXX/y=YYYY/m=MM/d=DD/h=HH/m=00/PT1H.json. Jalur ini digabungkan oleh resource ID dan Date Time. File log dipisahkan oleh hour. Nilai menit selalu m=00.

Semua log disimpan dalam format JavaScript Object Notation (JSON). Setiap entri memiliki bidang string yang menggunakan format yang dijelaskan di bagian berikut ini.

String JSON log arsip meliputi elemen yang tercantum dalam tabel berikut:

Format

Nama Deskripsi
waktu Log waktu peristiwa
tingkat Mencatat tingkat peristiwa
resourceId ID Sumber Daya Azure SignalR Service Anda
lokasi Lokasi Azure SignalR Service Anda
category Kategori peristiwa log
operationName Nama operasi peristiwa
callerIpAddress Alamat IP server atau klien Anda
properti Properti terperinci terkait peristiwa log ini. Untuk detail lebih lanjut, lihat tabel properti di bawah

Tabel Properti

Nama Deskripsi
collection Kumpulan peristiwa log. Nilai yang diizinkan adalah: Connection, Authorization dan Throttling
connectionId Identitas koneksi
userId Identitas pengguna
pesan Pesan terperinci dari peristiwa log
hub Nama Hub yang ditentukan pengguna
routeTemplate Templat rute API
httpMethod Metode Http (POST/GET/PUT/DELETE)
url Alamat web
traceId Pengidentifikasi unik untuk pemanggilan
statusCode Kode respons Http
durasi Durasi antara permintaan diterima sampai diproses
header Informasi tambahan yang diteruskan oleh klien dan server dengan permintaan HTTP atau respons

Kode berikut adalah contoh string JSON log arsip:

{
  "properties": {
    "message": "Connection started",
    "collection": "Connection",
    "connectionId": "LW61bMG2VQLIMYIVBMmyXgb3c418200",
    "userId": null
  },
  "operationName": "ConnectionStarted",
  "category": "ConnectivityLogs",
  "level": "Informational",
  "callerIpAddress": "167.220.255.79",
  "resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/MYGROUP/PROVIDERS/MICROSOFT.SIGNALRSERVICE/WEBPUBSUB/MYWEBPUBSUB",
  "time": "2021-09-17T05:25:05Z",
  "location": "westus"
}

Mengarsipkan ke Azure Log Analytics

Untuk mengirim log ke ruang kerja Analitik Log:

  1. Pada halaman Pengaturan diagnostik, di bawah Detail tujuan, pilih **Kirim ke ruang kerja Analitik Log.
  2. Pilih Langganan yang ingin Anda gunakan.
  3. Pilih ruang kerja Analitik Log untuk digunakan sebagai tujuan log.

Untuk melihat log sumber daya, ikuti langkah-langkah berikut:

  1. Pilih Logs di Analitik Log target Anda.

    Log Analytics menu item

  2. Masukkan WebPubSubConnectivity, WebPubSubMessaging atau WebPubSubHttpRequest, lalu pilih rentang waktu untuk mengkueri log. Untuk kueri tingkat lanjut, lihat Mulai menggunakan Analitik Log di Azure Monitor.

    Query log in Log Analytics

Untuk menggunakan kueri sampel untuk layanan SignalR, ikuti langkah-langkah di bawah ini.

  1. Pilih Logs di Analitik Log target Anda.
  2. Pilih Queries untuk membuka penjelajah kueri.
  3. Pilih Resource type untuk mengelompokkan kueri sampel dalam jenis sumber daya.
  4. Pilih Run untuk menjalankan skrip. Sample query in Log Analytics

Kolom log arsip menyertakan elemen yang tercantum dalam tabel berikut.

Nama Deskripsi
TimeGenerated Log waktu peristiwa
Koleksi Kumpulan peristiwa log. Nilai yang diizinkan adalah: Connection, Authorization dan Throttling
OperationName Nama operasi peristiwa
Lokasi Lokasi Azure SignalR Service Anda
Tingkat Mencatat tingkat peristiwa
CallerIpAddress Alamat IP server/klien Anda
Pesan Pesan terperinci dari peristiwa log
UserId Identitas pengguna
ConnectionId Identitas koneksi
ConnectionType Jenis koneksi. Nilai yang diizinkan adalah: Server | Client. Server: koneksi dari sisi server; Client: koneksi dari sisi klien
TransportType Jenis transportasi koneksi. Nilai yang diizinkan adalah: Websockets | ServerSentEvents | LongPolling

Memecahkan masalah dengan log sumber daya

Jika Anda menemukan perubahan tak terduga dalam jumlah koneksi, meningkat atau menurun, Anda dapat memanfaatkan log sumber daya untuk memecahkan masalah. Masalah umum sering terjadi tentang perubahan kuantitas koneksi yang tidak terduga, koneksi mencapai batas koneksi, dan kegagalan otorisasi.

Perubahan tak terduga dalam jumlah koneksi

Penurunan koneksi tak terduga

Jika koneksi terputus, log sumber daya akan merekam peristiwa pemutusan dengan ConnectionAborted atau ConnectionEnded di operationName.

Perbedaan antara ConnectionAborted dan ConnectionEnded adalah bahwa ConnectionEnded adalah pemutusan yang diharapkan yang dipicu oleh sisi klien atau server. ConnectionAborted Meskipun biasanya merupakan peristiwa penurunan koneksi yang tidak terduga, dan alasan pemutusan akan disediakan di message.

Alasan pembatalan tercantum dalam tabel berikut:

Alasan Deskripsi
Jumlah koneksi mencapai batas Jumlah koneksi mencapai batas tingkat harga Anda saat ini. Pertimbangkan untuk meningkatkan unit layanan
Memuat ulang layanan, menyambungkan kembali Layanan Azure Web PubSub sedang dimuat ulang. Anda perlu menerapkan mekanisme koneksi ulang Anda sendiri atau terhubung kembali secara manual ke layanan Azure Web PubSub
Kesalahan sementara server internal Kesalahan sementara terjadi di layanan Azure Web PubSub, harus dipulihkan secara otomatis

Peningkatan koneksi yang tidak terduga

Ketika jumlah koneksi klien secara tak terduga meningkat, hal pertama yang perlu Anda lakukan adalah memfilter koneksi yang berlebihan. Tambahkan ID pengguna uji unik ke koneksi klien pengujian Anda. Kemudian periksa log sumber daya; jika Anda melihat lebih dari satu koneksi klien memiliki ID pengguna uji atau IP yang sama, kemungkinan klien membuat lebih banyak koneksi dari yang diharapkan. Periksa kode klien Anda untuk menemukan sumber koneksi tambahan.

Kegagalan otorisasi

Jika Anda mendapatkan 401 Tidak diotorisasi yang ditampilkan untuk permintaan klien, periksa log sumber daya Anda. Jika Anda menemukan Failed to validate audience. Expected Audiences: <valid audience>. Actual Audiences: <actual audience>, itu berarti semua audiens dalam token akses Anda tidak valid. Coba gunakan audiens yang valid yang disarankan di log.

Pembatasan

Jika Anda menemukan bahwa Anda tidak dapat membuat koneksi klien ke layanan Azure Web PubSub, periksa log sumber daya Anda. Jika Anda melihat Connection count reaches limit di log sumber daya, Anda membuat terlalu banyak koneksi ke layanan Azure Web PubSub dan mencapai batas jumlah koneksi. Pertimbangkan untuk meningkatkan instans layanan Azure Web PubSub Anda. Jika Anda melihat Message count reaches limit di log sumber daya dan Anda menggunakan tingkat Gratis, itu berarti Anda menggunakan kuota pesan. Jika Anda ingin mengirim lebih banyak pesan, pertimbangkan untuk mengubah instans layanan Azure Web PubSub Anda ke tingkat Standar. Untuk informasi selengkapnya, lihat Harga Layanan Azure Web PubSub.