Halaman ini menjelaskan teknik untuk menyelidiki dan men-debug kueri yang dikirim AlloyDB untuk PostgreSQL ke instance kumpulan baca:
- Melihat daftar mendetail node penyusun kumpulan baca, termasuk alamat IP-nya.
- Menghubungkan langsung ke node, untuk tujuan proses debug.
- Memeriksa log AlloyDB untuk menentukan node tertentu yang menangani kueri yang dikirim ke kumpulan baca.
- Membuat kueri log untuk semua aktivitas terbaru dari node kumpulan baca tertentu.
- Melihat Google Cloud metrik yang terkait dengan node kumpulan baca.
Jika digunakan bersama, teknik ini memberi Anda akses diagnostik dan proses debug ke kumpulan baca Anda. Misalnya, jika salah satu kumpulan baca cluster Anda menggunakan CPU dalam jumlah yang tidak biasa saat memproses kueri yang berjalan lama, teknik ini memungkinkan Anda menentukan node mana yang menangani kueri tersebut, lalu terhubung langsung ke node tersebut untuk memeriksa atau menghentikan kueri lebih lanjut.
Mencantumkan detail node kumpulan baca
Dalam penggunaan AlloyDB normal, Anda tidak perlu mengetahui identitas atau alamat node yang membentuk kumpulan baca Anda. Namun, jika perlu, Anda dapat melihat daftar node instance kumpulan baca. Setiap node yang tercantum menyertakan informasi berikut yang berguna untuk diagnostik dan pen-debugan berikutnya:
String ID Google Cloud node, yang digunakan untuk melakukan kueri log tentang aktivitas terbaru node tersebut.
Alamat IP node dalam Virtual Private Cloud (VPC) cluster Anda, yang dapat Anda gunakan untuk terhubung langsung ke server PostgreSQL node tersebut.
Untuk melihat string ID internal dan alamat IP node pool baca,
ikuti petunjuk khusus gcloud di Melihat detail
instance, tetapi tambahkan argumen command line --view=FULL
tambahan:
gcloud
gcloud alloydb instances describe READ_POOL_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--view=FULLGanti kode berikut:
- READ_POOL_ID: ID pool baca.
- REGION_ID: ID region instance.
- CLUSTER_ID: ID cluster instance.
- PROJECT_ID: ID project instance.
Output-nya mencakup bagian berlabel nodes, yang terlihat seperti ini:
nodes:
- id: READ_POOL_INSTANCE_ID-edd4f6ed-hcfh
ip: 10.90.80.57
state: HEALTHY
zoneId: us-central1-b
- id: READ_POOL_INSTANCE_ID-edd4f6ed-ldbm
ip: 10.90.80.56
state: HEALTHY
zoneId: us-central1-cKolom id dan ip untuk setiap entri sangat relevan dengan
teknik lain yang dijelaskan di halaman ini:
Kolom
ipmenampilkan alamat IP node dalam VPC cluster.Kolom
idberisi string ID Google Cloud lengkap node. Hanya empat karakter terakhir dari string ini yang muncul dalam entri yang dicatat untuk node.Misalnya, untuk menemukan entri log yang melibatkan node pertama dari dua node dalam contoh output sebelumnya, kueri log menggunakan string ID
hcfh.
Menghubungkan langsung ke node
Setelah mengetahui alamat IP node, Anda dapat terhubung langsung ke server PostgreSQL-nya. Misalnya, untuk menggunakan psql guna terhubung ke VM di VPC cluster Anda, ikuti petunjuk di Menjalankan klien psql. Saat melakukannya, berikan alamat IP node, bukan alamat IP instance kumpulan baca:
psql -h NODE_IP_ADDRESS -U USERNAMEMenemukan aktivitas node di log
AlloyDB menyertakan ID node dalam entri log tentang kueri yang ditangani oleh kumpulan baca. Secara umum, Anda dapat menggunakan ID yang ditemukan ini dengan dua cara:
- Tentukan IP node tersebut agar Anda dapat terhubung ke node tersebut.
- Lakukan kueri log lebih lanjut untuk mempelajari lebih lanjut aktivitas terbaru node.
Menentukan node mana yang menangani kueri yang diketahui
Jika Anda mengetahui bahwa kumpulan baca tertentu sedang memproses kueri yang berjalan lama, maka Log Explorer dapat membantu Anda menentukan ID node tertentu yang menangani kueri tersebut.
Perhatikan bahwa teknik ini hanya berfungsi pada instance kumpulan baca yang telah mengaktifkan ekstensi pgAudit.
Buka Logs Explorer:
Di pembuat kueri, tambahkan
resource.labels.instance_id="READ_POOL_ID"ke kolom editor kueri, dengan mengganti READ_POOL_ID dengan nama instance pool baca Anda.Tambahkan pernyataan SQL yang sedang Anda selidiki, secara keseluruhan atau sebagian, ke kolom editor kueri. Misalnya:
select id from MyTable. Input ini tidak peka huruf besar/kecil.Klik Run query.
Gunakan kontrol Log Explorer untuk menyesuaikan dan menjalankan ulang kueri sesuai kebutuhan untuk memfilter hasil ke yang paling relevan.
Klik entri log dalam daftar hasil untuk meluaskan tampilannya.
Klik kolom
labelsdi tampilan yang diperluas dari entri.Catat nilai
NODE_IDdi bagianlabels.
Hasilnya adalah ID empat karakter dari node yang menangani kueri.
Menghubungkan ke node yang disebutkan dalam entri log
Jika Anda ingin terhubung langsung ke server PostgreSQL node tertentu berdasarkan aktivitas yang dicatatnya, ikuti langkah-langkah berikut:
Catat string ID empat karakter node yang dicatat. Anda dapat menemukan ID ini di kolom
NODE_IDentri log.Mencantumkan node untuk kumpulan baca.
Dalam daftar tersebut, temukan node dengan string ID yang diakhiri dengan empat karakter yang Anda catat di langkah pertama. Mungkin tidak ada node yang tercantum yang cocok.
Jika Anda menemukan node yang cocok, gunakan alamat IP yang cocok untuk terhubung ke server PostgreSQL node tersebut.
Jika tidak, jika tidak ada node kumpulan baca yang tercantum di langkah sebelumnya memiliki ID yang cocok dengan node yang dicatat, kumpulan baca telah menonaktifkan node tersebut dalam waktu yang telah berlalu sejak entri log asli. Ini adalah perilaku normal untuk kumpulan baca AlloyDB, seperti yang dijelaskan dalam Catatan tentang efemeralitas node. Dalam hal ini, Anda tidak dapat membuat koneksi langsung ke node tersebut.
Setelah terhubung ke server PostgreSQL node, Anda dapat menggunakan teknik pemantauan PostgreSQL standar, seperti pg_stat_activity, untuk menyelidiki lebih lanjut proses node saat ini, dan menyesuaikannya sesuai kebutuhan.
Melihat entri log lainnya tentang node
Untuk melihat aktivitas yang dicatat lebih baru tentang node dengan ID tertentu:
Buka Logs Explorer:
Tambahkan
labels.NODE_ID=NODE_IDke pembuat kueri Logs Explorer, ganti NODE_ID dengan string ID empat karakter node.Klik Run Query untuk melihat semua aktivitas dari node tersebut dalam jangka waktu yang dipilih, atau sesuaikan kueri untuk memfilternya lebih lanjut.
Ulangi langkah sebelumnya sesuai kebutuhan untuk mempersempit penelusuran Anda.
Memantau metrik node
Anda dapat melihat metrik yang terkait dengan setiap node dari dasbor Insight sistem AlloyDB. Untuk mengetahui informasi selengkapnya tentang metrik node yang tersedia, lihat referensi metrik Analisis sistem.
Untuk mempelajari ID node mana yang terkait dengan instance kumpulan baca tertentu, lihat Mencantumkan detail node kumpulan baca.
Untuk dokumentasi referensi lengkap tentang metrik ini dan metrik AlloyDB lainnya, lihat alloydb di
"Google Cloud metrics".
Catatan tentang efemeralitas node
Meskipun Anda dapat terhubung dengan aman ke node untuk tujuan penyelidikan atau pen-debug-an sementara, aplikasi yang menggunakan kumpulan baca harus selalu terhubung ke kumpulan tersebut di tingkat instance, menggunakan alamat IP yang ditampilkan cluster di daftar instansinya.
AlloyDB memperlakukan node kumpulan baca sebagai resource sementara yang dapat dipertukarkan. Layanan mengubah daftar node kumpulan baca sesering yang diperlukan untuk menjaga instance kumpulan baca tersebut tetap seimbang dan responsif. Aplikasi yang terhubung langsung ke node kumpulan baca, bukan ke instance kumpulan baca, berisiko terputus tiba-tiba dari database Anda setiap kali AlloyDB memperbarui daftar node instance.
Selalu izinkan aplikasi Anda terhubung ke kumpulan baca di tingkat instance, dan biarkan AlloyDB melakukan tugas merutekan kueri Anda secara efisien ke node yang tepat.
Langkah berikutnya
- Pelajari lebih lanjut cara menggunakan Logs Explorer.