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 operasi baca tertentu.
- Melihat metrik Google Cloud yang terkait dengan node kumpulan operasi baca.
Jika digunakan bersama, teknik ini memberi Anda akses diagnostik dan proses debug ke kumpulan operasi baca. Misalnya, jika salah satu kumpulan operasi baca cluster Anda menggunakan jumlah CPU yang tidak biasa saat memproses kueri yang berjalan lama, teknik ini memungkinkan Anda menentukan node mana yang menangani kueri tersebut, lalu langsung terhubung ke node tersebut untuk memeriksa atau menghentikan kueri lebih lanjut.
Mencantumkan detail node kumpulan operasi baca
Dalam penggunaan AlloyDB normal, Anda tidak perlu mengetahui identitas atau alamat node yang membentuk kumpulan baca. Namun, jika perlu, Anda dapat melihat daftar node instance kumpulan baca. Setiap node yang tercantum menyertakan informasi berikut yang berguna untuk diagnostik dan proses debug 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 kumpulan operasi 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=FULL
Ganti kode berikut:
- READ_POOL_ID: ID read pool.
- 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-c
Kolom id
dan ip
untuk setiap entri sangat relevan dengan teknik lain yang dijelaskan di halaman ini:
Kolom
ip
menampilkan alamat IP node dalam VPC cluster.Kolom
id
berisi 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 output contoh sebelumnya, buat 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, ikuti petunjuk di Menjalankan klien psql. Saat melakukannya, berikan alamat IP node, bukan instance kumpulan bacanya:
psql -h NODE_IP_ADDRESS -U USERNAME
Menemukan aktivitas node dalam 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 aktivitas terbaru node lebih lanjut.
Menentukan node yang menangani kueri yang diketahui
Jika Anda mengetahui bahwa kumpulan operasi baca tertentu memproses kueri yang berjalan lama, 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 query builder, tambahkan
resource.labels.instance_id="READ_POOL_ID"
ke kolom editor kueri, dengan mengganti READ_POOL_ID dengan nama instance kumpulan operasi baca Anda.Tambahkan pernyataan SQL yang 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
labels
di tampilan yang diperluas untuk entri.Perhatikan nilai
NODE_ID
di 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 dicatat dalam log, ikuti langkah-langkah berikut:
Perhatikan string ID empat karakter node yang dicatat. Anda dapat menemukan ID ini di kolom
NODE_ID
entri log.Cantumkan node untuk kumpulan operasi 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 cocok dengan node yang tercantum.
Jika Anda menemukan node yang cocok, gunakan alamat IP yang cocok untuk terhubung ke server PostgreSQL node tersebut.
Atau, jika tidak ada node kumpulan baca yang tercantum di langkah sebelumnya yang memiliki ID yang cocok dengan node yang dicatat dalam log, kumpulan baca telah menonaktifkan node tersebut dalam waktu yang telah berlalu sejak entri log asli. Ini adalah perilaku normal untuk kumpulan operasi baca AlloyDB, seperti yang dijelaskan dalam Catatan tentang ephemeralitas 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 terbaru yang dicatat ke dalam log tentang node dengan ID tertentu:
Buka Logs Explorer:
Tambahkan
labels.NODE_ID=NODE_ID
ke Query Builder Logs Explorer, ganti NODE_ID dengan string ID empat karakter node.Klik Jalankan Kueri untuk melihat semua aktivitas dari node tersebut dalam periode waktu yang dipilih, atau sesuaikan kueri untuk memfilternya lebih lanjut.
Ulangi langkah sebelumnya sesuai kebutuhan untuk mempersempit penelusuran.
Memantau metrik node
Anda dapat melihat metrik yang terkait dengan setiap node dari dasbor Insight sistem AlloyDB. Untuk informasi selengkapnya tentang metrik node yang tersedia, lihat Referensi metrik Analisis sistem.
Untuk mempelajari ID node yang terkait dengan instance read pool tertentu, lihat Mencantumkan detail node read pool.
Untuk dokumentasi referensi lengkap tentang metrik ini dan metrik AlloyDB lainnya, lihat alloydb
di "metrikGoogle Cloud ".
Catatan tentang sifat sementara node
Meskipun Anda dapat terhubung dengan aman ke node untuk tujuan penyelidikan sementara atau proses debug, aplikasi yang menggunakan kumpulan baca harus selalu terhubung ke kumpulan tersebut di tingkat instance, menggunakan alamat IP yang ditampilkan cluster dalam daftar instance-nya.
AlloyDB memperlakukan node kumpulan bacanya sebagai resource sementara yang dapat dipertukarkan. Layanan ini mengubah daftar node kumpulan baca sesering yang diperlukan agar instance kumpulan baca tersebut tetap memiliki beban yang seimbang dan responsif. Aplikasi yang terhubung langsung ke node kumpulan baca, bukan ke instance kumpulan baca, berisiko terputus secara tiba-tiba dari database Anda setiap kali AlloyDB memperbarui daftar node instance.
Selalu izinkan aplikasi Anda terhubung ke kumpulan baca di tingkat instance, dan izinkan AlloyDB melakukan tugas merutekan kueri Anda ke node yang tepat secara efisien.
Langkah selanjutnya
- Pelajari lebih lanjut cara menggunakan Logs Explorer.