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
Buka portal Azure dan halaman SignalR Service Anda.
Dari menu di sebelah kiri, di bawah Pemantauan pilih Pengaturan pelacakan langsung.
Pilih Aktifkan Pelacakan Langsung.
Pilih tombol Simpan . Ini akan memakan waktu sejenak agar perubahan diterapkan.
Saat pembaruan selesai, pilih Buka Alat Pelacakan Langsung.
Langkah-langkah untuk kunci akses dinonaktifkan
Menetapkan izin API alat pelacakan langsung untuk diri Anda sendiri
- Buka portal Azure dan halaman SignalR Service Anda.
- Pilih Kontrol Akses (IAM) .
- Di halaman baru, Klik +Tambahkan, lalu klik Penetapan peran.
- Di halaman baru, fokus pada tab Peran fungsi pekerjaan, Pilih peran Pemilik Layanan SignalR, lalu klik Berikutnya.
- Di halaman Anggota , klik +Pilih anggota.
- Di panel baru, cari dan pilih anggota, lalu klik Pilih.
- Klik Tinjau + tetapkan, dan tunggu pemberitahuan penyelesaian.
Kunjungi alat pelacakan langsung
Buka portal Azure dan halaman SignalR Service Anda.
Dari menu di sebelah kiri, di bawah Pemantauan pilih Pengaturan pelacakan langsung.
Pilih Aktifkan Pelacakan Langsung.
Pilih tombol Simpan . Ini akan memakan waktu sejenak agar perubahan diterapkan.
Saat pembaruan selesai, pilih Buka Alat Pelacakan Langsung.
Masuk dengan akun Microsoft Anda
- Alat pelacakan langsung akan memunculkan jendela masuk Microsoft. Jika tidak ada jendela yang muncul, periksa dan izinkan jendela pop up di browser Anda.
- 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.
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.
Buka portal Azure.
Pada halaman Pengaturan diagnostik instans layanan Azure Web PubSub Anda, pilih + Tambahkan pengaturan diagnostik.
Dalam Nama pengaturan diagnostik, masukkan nama pengaturan.
Dalam Detail kategori, pilih kategori log apa pun yang Anda butuhkan.
Dalam Detail tujuan, centang Arsipkan ke akun penyimpanan.
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:
- Pada halaman Pengaturan diagnostik, di bawah Detail tujuan, pilih **Kirim ke ruang kerja Analitik Log.
- Pilih Langganan yang ingin Anda gunakan.
- Pilih ruang kerja Analitik Log untuk digunakan sebagai tujuan log.
Untuk melihat log sumber daya, ikuti langkah-langkah berikut:
Pilih
Logs
di Analitik Log target Anda.Masukkan
WebPubSubConnectivity
,WebPubSubMessaging
atauWebPubSubHttpRequest
, lalu pilih rentang waktu untuk mengkueri log. Untuk kueri tingkat lanjut, lihat Mulai menggunakan Analitik Log di Azure Monitor.
Untuk menggunakan kueri sampel untuk layanan SignalR, ikuti langkah-langkah di bawah ini.
- Pilih
Logs
di Analitik Log target Anda. - Pilih
Queries
untuk membuka penjelajah kueri. - Pilih
Resource type
untuk mengelompokkan kueri sampel dalam jenis sumber daya. - Pilih
Run
untuk menjalankan skrip.
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.