Menggunakan metrik sisi klien gRPC

Halaman ini menjelaskan cara memancarkan metrik sisi klien gRPC ke Cloud Monitoring saat Anda menggunakan gRPC untuk berinteraksi dengan Cloud Storage menggunakan salah satu antarmuka yang didukung berikut:

Metrik sisi klien dapat digunakan untuk memantau performa aplikasi klien yang berinteraksi dengan Cloud Storage menggunakan gRPC. Metrik sisi klien berbeda dengan metrik sisi server, yang memberikan insight tentang performa Cloud Storage dari perspektif sisi server.

Cara kerjanya

Anda dapat memilih untuk memancarkan metrik sisi klien ke Cloud Monitoring saat menggunakan gRPC untuk berinteraksi dengan Cloud Storage menggunakan salah satu antarmuka yang didukung. Anda dapat melihat metrik sisi klien menggunakan Metrics Explorer untuk membantu Anda memantau dan mengoptimalkan interaksi antara Cloud Storage dan klien gRPC, mengelola penggunaan, serta memecahkan masalah hambatan performa dan masalah teknis.

Harga

Metrik sisi klien Cloud Storage tidak dikenai biaya, yang berarti Anda dapat memancarkan, menyimpan, dan mengakses metrik sisi klien Cloud Storage tanpa dikenai biaya Cloud Monitoring. Untuk mengetahui informasi selengkapnya tentang harga, lihat harga Google Cloud Observability.

Sebelum memulai

Untuk menggunakan metrik sisi klien, Anda harus menyelesaikan langkah-langkah berikut terlebih dahulu:

  1. Verifikasi bahwa library atau konektor klien Cloud Storage yang ingin Anda gunakan mendukung gRPC. Library klien dan konektor Cloud Storage berikut mendukung gRPC:

  2. Siapkan autentikasi.

  3. Aktifkan Cloud Monitoring API.

  4. Aktifkan Cloud Storage API.

    Buka Cloud Storage API

  5. Tetapkan peran dan izin yang diperlukan untuk memancarkan metrik sisi klien.

Peran yang diperlukan

Untuk menetapkan izin yang diperlukan guna memancarkan metrik sisi klien gRPC ke Cloud Monitoring, berikan peran IAM Monitoring Metric Writer (roles/monitoring.metricWriter) pada akun layanan yang digunakan oleh klien gRPC.

Peran bawaan ini berisi izin yang diperlukan untuk memancarkan metrik sisi klien gRPC ke Cloud Monitoring. Untuk melihat izin persis yang diperlukan, lihat bagian Izin yang diperlukan:

Izin yang diperlukan

  • monitoring.timeSeries.create

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya. Untuk mengetahui informasi selengkapnya tentang peran Penulis Metrik Monitoring, lihat dokumentasi IAM tentang roles/monitoring.metricWriter.

Pertimbangan

Melihat metrik di Metrics Explorer

Gunakan petunjuk berikut untuk melihat metrik sisi klien gRPC Cloud Storage di Metrics Explorer.

  1. Di Google Cloud konsol, buka halaman Metrics Explorer.

    Buka Metrics Explorer

  2. Pilih project yang metriknya ingin Anda lihat.

  3. Dari menu drop-down Metrik, klik Pilih metrik.

  4. Di kotak penelusuran Filter menurut nama metrik atau resource, masukkan storage.googleapis.com/Client atau telusuri metrik yang ingin Anda terapkan menurut nama metrik, lalu klik Terapkan. Untuk menambahkan lebih dari satu metrik, klik Tambahkan kueri.

    Cloud Storage menerapkan metrik ke project Anda. Anda dapat memfilter atau menggabungkan metrik menggunakan menu drop-down berikut:

    • Untuk memilih dan melihat subkumpulan data berdasarkan kriteria yang ditentukan, gunakan menu drop-down Filter.

    • Untuk menggabungkan beberapa titik data menjadi satu nilai dan melihat ringkasan metrik, gunakan menu drop-down Agregasi.

    Biarkan aplikasi Anda berjalan setidaknya selama satu menit sebelum Anda memeriksa metrik yang dipublikasikan.

Untuk melihat metrik yang telah Anda tambahkan ke project menggunakan dasbor, lihat Ringkasan dasbor.

Deskripsi metrik

Bagian berikut menguraikan metrik sisi klien Cloud Storage yang dapat digunakan untuk memantau performa klien gRPC.

Metrik per upaya klien

Metrik berikut mengumpulkan data performa tentang setiap upaya yang dilakukan oleh klien untuk berkomunikasi dengan server. Metrik per upaya klien dapat membantu Anda mengukur perilaku percobaan ulang, hambatan, dan mengoptimalkan komunikasi antara klien dan server.

Metrik lengkap Deskripsi Jenis instrumen Unit Atribut
storage.googleapis.com/client/grpc/client/attempt/started Preview. Jumlah total percobaan RPC yang dimulai, termasuk yang belum selesai. Penghitung {attempt}
  • grpc.method: nama metode gRPC lengkap, termasuk paket, layanan, dan metode.
  • grpc.target: URI target kanonis yang digunakan saat membuat saluran gRPC.
storage.googleapis.com/client/grpc/client/attempt/duration Preview. Waktu end-to-end yang diperlukan untuk menyelesaikan upaya RPC, termasuk waktu yang diperlukan untuk memilih subchannel. Histogram s
  • grpc.method: nama metode gRPC lengkap, termasuk paket, layanan, dan metode.
  • grpc.target: URI target kanonis yang digunakan saat membuat saluran gRPC.
  • grpc.status: Kode status server gRPC yang diterima, seperti OK, CANCELLED, atau DEADLINE_EXCEEDED.
  • grpc.lb.locality: lokalitas tempat traffic dikirim. Nilai ini akan disetel ke atribut resolver yang diteruskan dari kebijakan weighted_target, atau string kosong jika atribut resolver tidak disetel.
storage.googleapis.com/client/grpc/client/attempt/sent_total_compressed_message_size Preview. Total byte, dikompresi tetapi tidak dienkripsi, yang dikirim di semua pesan permintaan kecuali metadata per upaya RPC. Ini tidak mencakup byte framing gRPC atau transport. Histogram By
  • grpc.method: nama metode gRPC lengkap, termasuk paket, layanan, dan metode.
  • grpc.target: URI target kanonis yang digunakan saat membuat saluran gRPC.
  • grpc.status: Kode status server gRPC yang diterima, seperti OK, CANCELLED, atau DEADLINE_EXCEEDED.
  • grpc.lb.locality: lokalitas tempat traffic dikirim. Nilai ini akan disetel ke atribut resolver yang diteruskan dari kebijakan weighted_target, atau string kosong jika atribut resolver tidak disetel.
storage.googleapis.com/client/grpc/client/attempt/rcvd_total_compressed_message_size Preview. Total byte, dikompresi tetapi tidak dienkripsi, yang diterima di semua pesan respons kecuali metadata per upaya RPC. Ini tidak mencakup byte framing gRPC atau transport. Histogram By
  • grpc.method: nama metode gRPC lengkap, termasuk paket, layanan, dan metode.
  • grpc.target: URI target kanonis yang digunakan saat membuat saluran gRPC.
  • grpc.status: Kode status server gRPC yang diterima, seperti OK, CANCELLED, atau DEADLINE_EXCEEDED.
  • grpc.lb.locality: lokalitas tempat traffic dikirim. Nilai ini akan disetel ke atribut resolver yang diteruskan dari kebijakan weighted_target, atau string kosong jika atribut resolver tidak disetel.

Untuk mengetahui informasi selengkapnya tentang instrumen per-upaya klien, lihat dokumentasi metrik OpenTelemetry di GitHub.

Metrik per panggilan klien

Metrik berikut memberikan tampilan gabungan dari seluruh siklus proses panggilan klien ke server. Metrik per panggilan klien memberikan data tingkat tinggi tentang panggilan klien, memberikan metrik pelacakan untuk memahami pola panggilan, dan membantu Anda mengidentifikasi frekuensi error.

Metrik lengkap Deskripsi Jenis instrumen Unit Atribut
storage.googleapis.com/client/grpc/client/call/duration Preview. Mengukur waktu end-to-end yang diperlukan library gRPC untuk menyelesaikan RPC dari perspektif aplikasi. Histogram s
  • grpc.method: nama metode gRPC lengkap, termasuk paket, layanan, dan metode.
  • grpc.target: URI target kanonis yang digunakan saat membuat saluran gRPC.
  • grpc.status: Kode status server gRPC yang diterima seperti OK, CANCELLED, atau DEADLINE_EXCEEDED.

Untuk mengetahui informasi selengkapnya tentang instrumen per panggilan klien, lihat dokumentasi metrik OpenTelemetry di GitHub.

Meminta metrik penginderaan beban permintaan

Metrik berikut memberikan insight tentang efektivitas penggunaan penginderaan beban permintaan oleh aplikasi klien Anda. Metrik penginderaan beban permintaan dapat membantu Anda menyeimbangkan beban server, mengoptimalkan pemanfaatan resource, dan meningkatkan waktu respons klien. Metrik berikut hanya tersedia dengan konektivitas langsung.

Metrik lengkap Deskripsi Jenis instrumen Unit Atribut
storage.googleapis.com/client/grpc/lb/rls/cache_entries Preview. Jumlah entri dalam beban permintaan cache penginderaan. Meteran {entry}
  • grpc.target: menunjukkan target saluran gRPC tempat WRR digunakan.
  • grpc.lb.rls.server_target: URI target yang digunakan oleh server penginderaan beban permintaan.
  • grpc.lb.rls.instance_uuid: ID unik universal (UUID) untuk setiap instance klien penginderaan beban permintaan. Nilai ini tidak bermakna dengan sendirinya, tetapi berguna untuk membedakan antara beban permintaan instance klien penginderaan dalam kasus ketika ada beberapa instance di saluran gRPC yang sama atau ketika ada beberapa saluran ke target yang sama.
storage.googleapis.com/client/grpc/lb/rls/cache_size Preview. Ukuran cache penginderaan beban permintaan saat ini. Meteran By
  • grpc.target: target saluran gRPC tempat WRR digunakan.
  • grpc.lb.rls.server_target: URI target yang digunakan oleh server penginderaan beban permintaan.
  • grpc.lb.rls.instance_uuid: UUID untuk setiap instance klien penginderaan beban permintaan. Nilai ini tidak bermakna dengan sendirinya, tetapi berguna untuk membedakan antara beban permintaan instance klien penginderaan dalam kasus ketika ada beberapa instance di saluran gRPC yang sama atau ketika ada beberapa saluran ke target yang sama.
storage.googleapis.com/client/grpc/lb/rls/default_target_picks Preview. Jumlah pilihan load balancer (LB) yang dikirim ke target default. Penghitung {pick}
  • grpc.target: menunjukkan target saluran gRPC tempat penginderaan beban permintaan digunakan.
  • grpc.lb.rls.server_target: URI target server penginderaan beban permintaan yang akan diajak berkomunikasi.
  • grpc.lb.rls.data_plane_target: string target yang digunakan oleh penginderaan beban permintaan untuk merutekan traffic bidang data. Nilai dikembalikan oleh server penginderaan beban permintaan untuk kunci tertentu atau dikonfigurasi sebagai target default dalam konfigurasi penginderaan beban permintaan.
  • grpc.lb.pick_result:hasil pemilihan LB, seperti "complete", "fail", atau "drop".
storage.googleapis.com/client/grpc/lb/rls/target_picks Preview. Jumlah pilihan LB yang dikirim ke setiap target deteksi beban permintaan. Jika target default juga ditampilkan oleh server penginderaan beban permintaan, RPC yang dikirim ke target tersebut dari cache dihitung dalam metrik ini, bukan dalam grpc.rls.default_target_picks. Penghitung {pick}
  • grpc.target: target saluran gRPC tempat penginderaan beban permintaan digunakan.
  • grpc.lb.rls.server_target: URI target server penginderaan beban permintaan yang akan diajak berkomunikasi.
  • grpc.lb.rls.data_plane_target: string target yang digunakan oleh penginderaan beban permintaan untuk merutekan traffic bidang data. Nilai dikembalikan oleh server penginderaan beban permintaan untuk kunci tertentu atau dikonfigurasi sebagai target default dalam konfigurasi penginderaan beban permintaan.
  • grpc.lb.pick_result: hasil pilihan LB seperti "complete", "fail", atau "drop".
storage.googleapis.com/client/grpc/lb/rls/failed_picks Preview. Jumlah pilihan LB yang gagal karena permintaan penginderaan beban permintaan gagal atau saluran penginderaan beban permintaan dibatasi. Penghitung {pick}
  • grpc.target: target saluran gRPC tempat penginderaan beban permintaan digunakan.
  • grpc.lb.rls.server_target: URI target server penginderaan beban permintaan yang akan diajak berkomunikasi.

Metrik klien xDiscovery Service

Metrik berikut memberikan insight tentang cara aplikasi klien Anda berinteraksi dengan bidang kontrol xDiscovery Service (xDS) untuk menemukan dan mengonfigurasi koneksi ke layanan backend. Metrik xDS dapat membantu Anda melacak latensi permintaan layanan, memantau update konfigurasi, dan mengoptimalkan performa xDS secara keseluruhan.

Metrik berikut hanya tersedia dengan konektivitas langsung.

Metrik lengkap Deskripsi Jenis instrumen Unit Atribut
storage.googleapis.com/client/grpc/xds_client/connected Preview. Mengukur apakah klien xDS memiliki streaming ADS yang berfungsi ke server xDS atau tidak. Untuk server tertentu, metrik ini disetel ke 1 saat streaming pertama kali dibuat. Jika terjadi kegagalan konektivitas atau saat streaming ADS gagal tanpa melihat pesan respons sesuai dengan A57, metrik akan ditetapkan ke 0. Setelah disetel ke 0, metrik akan direset ke 1 saat respons pertama diterima di aliran ADS. Metrik ini hanya tersedia untuk Library Klien Cloud untuk C++. Meteran {bool}
  • grpc.target: untuk klien, menunjukkan target saluran gRPC yang menggunakan XdsClient. Untuk server, akan menjadi string "#server".
  • grpc.xds.server: URI target server xDS yang berkomunikasi dengan XdsClient.
storage.googleapis.com/client/grpc/xds_client/resource_updates_invalid Preview. Jumlah resource yang diterima yang dianggap tidak valid. Metrik ini hanya tersedia untuk Library Klien Cloud untuk C++. Penghitung {resource}
  • grpc.target: untuk klien, menunjukkan target saluran gRPC tempat XdsClient digunakan. Untuk server, akan menjadi string "#server".
  • grpc.xds.server: URI target server xDS yang berkomunikasi dengan XdsClient.
  • grpc.xds.resource_type: menunjukkan jenis resource xDS, seperti "envoy.config.listener.v3.Listener".
storage.googleapis.com/client/grpc/xds_client/resource_updates_valid Preview. Jumlah resource yang diterima dan dianggap valid, meskipun tidak berubah. Metrik ini hanya tersedia untuk Library Klien Cloud untuk C++. Penghitung {resource}
  • grpc.target: untuk klien, menunjukkan target saluran gRPC tempat XdsClient digunakan. Untuk server, akan menjadi string "#server".
  • grpc.xds.server: URI target server xDS yang berkomunikasi dengan XdsClient.
  • grpc.xds.resource_type: menunjukkan jenis resource xDS, seperti "envoy.config.listener.v3.Listener".
storage.googleapis.com/client/grpc/xds_client/resources Preview. Jumlah resource xDS. Metrik ini hanya tersedia untuk Library Klien Cloud untuk C++. Meteran {resource}
  • grpc.target: untuk klien, menunjukkan target saluran gRPC tempat XdsClient digunakan. Untuk server, akan berupa string "#server".
  • grpc.xds.authority: otoritas xDS. Nilai adalah "#old" untuk nama resource non-xdstp yang diidentifikasi di xDS API, sebelum pengenalan representasi URI xdstp://.
  • grpc.xds.cache_state: menunjukkan status cache resource xDS.
  • grpc.xds.resource_type menunjukkan jenis resource xDS, seperti "envoy.config.listener.v3.Listener".
storage.googleapis.com/client/grpc/xds_client/server_failure Preview. Jumlah server xDS yang tidak lagi berfungsi dengan benar dan tidak tersedia, kelebihan beban, atau memberikan data konfigurasi yang salah atau tidak valid. Metrik ini hanya tersedia untuk Library Klien Cloud untuk C++. Penghitung {failure}
  • grpc.target: URI target server xDS yang berkomunikasi dengan XdsClient.
  • grpc.xds.server: untuk klien, ini menunjukkan target saluran gRPC tempat XdsClient digunakan. Untuk server, ini adalah string "#server".

Untuk mengetahui informasi selengkapnya tentang metrik klien xDS, lihat dokumentasi Load balancing global berbasis xDS di GitHub.

Memilih tidak ikut metrik sisi klien

Anda dapat menonaktifkan metrik sisi klien jika diperlukan.

Java

public GrpcStorageOptions.Builder setEnableGrpcClientMetrics(false enableGrpcClientMetrics)

Untuk mengetahui informasi selengkapnya, lihat Metode GrpcStorageOptions.Builder class Library Klien Cloud untuk Java untuk metrik klien gRPC.

C++

Untuk menonaktifkan metrik sisi klien untuk gRPC API menggunakan Cloud Client Libraries untuk C++, lihat Struct EnableGrpcMetricsOption.

Jika Anda menggunakan Bazel untuk membangun aplikasi dan ingin menonaktifkan metrik sisi klien, tetapkan opsi enable_grpc_metrics ke false dalam file build aplikasi Anda.

Langkah berikutnya