Bagikan melalui


Diagnostik server untuk Azure Cosmos DB untuk Apache Cassandra

BERLAKU UNTUK: Cassandra

Log Analytics adalah alat di portal Azure yang membantu Anda menjalankan diagnostik server di API untuk akun Cassandra. Jalankan kueri log dari data yang dikumpulkan oleh Azure Monitor Logs dan secara interaktif menganalisis hasilnya. Catatan yang diambil dari kueri Log Analytics membantu memberikan berbagai wawasan tentang data Anda.

Prasyarat

Gunakan Analitik Log

Setelah menyelesaikan pengaturan analitik log, Anda dapat mulai menjelajahi log Anda untuk mendapatkan lebih banyak wawasan.

Jelajahi Operasi Data Plane

Gunakan tabel CDBCassandraRequests untuk melihat operasi sarana data khusus untuk API Anda untuk akun Cassandra. Sampel kueri untuk melihat permintaan konsumsi topN (10) dan mendapatkan informasi terperinci tentang setiap permintaan yang dibuat.

CDBCassandraRequests
| where RequestCharge  > 0
| project DatabaseName, CollectionName, DurationMs, OperationName, ActivityId, ErrorCode, RequestCharge, PIICommandText 
| order by RequestCharge
| take 10

Kode Kesalahan dan Solusi yang Mungkin

Kode status Kode Kesalahan Deskripsi
200 -1 Berhasil
400 8704 Kuerinya benar tetapi sintaks yang tidak valid.
400 8192 Kueri yang dikirimkan memiliki kesalahan sintaksis. Tinjau kueri Anda.
400 8960 Kuerinya tidak valid karena beberapa masalah konfigurasi.
401 8448 Pengguna yang masuk tidak memiliki izin yang tepat untuk melakukan kueri.
403 8448 Respons terlarang karena pengguna mungkin tidak memiliki izin yang diperlukan untuk melaksanakan permintaan.
404 5376 Pengecualian non-waktu habis selama permintaan tulis sebagai akibat dari respons yang tidak ditemukan.
405 0 Server-side Cassandra error. Kesalahan jarang terjadi, buka tiket dukungan.
408 4608 Waktu habis selama permintaan baca.
408 4352 Pengecualian waktu habis selama penulisan serviceRequest.
409 9216 Mencoba membuat keyspace atau tabel yang sudah ada.
412 5376 Kegagalan prasyarat. Untuk memastikan integritas data, kami memastikan bahwa permintaan tulis berdasarkan respons baca adalah benar. Pengecualian permintaan tulis non-waktu habis dikembalikan.
413 5376 Pengecualian non-waktu habis ini selama permintaan tulis adalah karena muatan mungkin terlalu besar. Saat ini, ada batas 2MB per baris.
417 9472 Pengecualian dilemparkan ketika pernyataan yang disiapkan tidak di-cache pada simpul server. Ini harus bersifat sementara/non-pemblokiran.
423 5376 Ada kunci karena permintaan tulis yang saat ini sedang diproses.
429 4097 Pengecualian yang berlebihan adalah sebagai akibat dari kekurangan RU atau tingkat permintaan yang tinggi. Mungkin perlu lebih banyak RU untuk menangani permintaan volume yang lebih tinggi. Dalam, Cassandra asli ini dapat ditafsirkan sebagai salah satu VM tidak memiliki cukup CPU. Kami menyarankan untuk meninjau model data saat ini untuk memastikan bahwa Anda tidak memiliki kemiringan berlebihan yang mungkin menyebabkan partisi panas.
449 5376 Pengecualian eksekusi bersamaan. Ini terjadi untuk memastikan hanya satu pembaruan tulis pada satu waktu untuk baris tertentu.
500 0 Server cassandraError: sesuatu yang tak terduga terjadi. Ini menunjukkan bug sisi server.
503 4096 Layanan tidak tersedia.
256 Ini mungkin karena informasi masuk koneksi yang tidak valid. Silakan periksa informasi masuk koneksi Anda.
10 Pesan klien memicu pelanggaran protokol. Contohnya adalah pesan kueri yang dikirim sebelum startup dikirim.

Memecahkan Masalah Konsumsi Kueri

Tabel CDBPartitionKeyRUConsumption berisi rincian konsumsi unit permintaan (RU) untuk kunci logis di setiap wilayah dalam masing-masing partisi fisik mereka.

CDBPartitionKeyRUConsumption 
| summarize sum(todouble(RequestCharge)) by PartitionKey, PartitionKeyRangeId
| render columnchart

Jelajahi Operasi Sarana Kontrol

Tabel CBDControlPlaneRequests berisi detail tentang operasi sarana kontrol, khusus untuk API untuk akun Cassandra.

CDBControlPlaneRequests
| where TimeGenerated > now(-6h)
| where  ApiKind == "Cassandra"
| where OperationName in ("Create", "Upsert", "Delete", "Execute")
| summarize by OperationName

Langkah berikutnya