Menggunakan metrik sisi klien gRPC

Halaman ini menjelaskan cara menampilkan 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 menampilkan 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 bottleneck performa dan masalah teknis.

Harga

Metrik sisi klien Cloud Storage tidak dikenai biaya, yang berarti Anda dapat memunculkan, 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. Pastikan library klien atau konektor 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 memunculkan metrik sisi klien.

Peran yang diperlukan

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

Peran yang telah ditentukan ini berisi izin yang diperlukan untuk memunculkan metrik sisi klien gRPC ke Cloud Monitoring. Untuk melihat izin yang benar-benar 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 Monitoring Metric Writer, 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 Konsol Google Cloud, 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 resource atau metrik, 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 akan 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 tampilan ringkasan metrik, gunakan menu drop-down Aggregation.

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

Untuk melihat metrik yang telah ditambahkan 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 percobaan klien

Metrik berikut mengumpulkan data performa tentang setiap upaya yang dilakukan oleh klien untuk berkomunikasi dengan server. Metrik per percobaan klien dapat membantu Anda mengukur perilaku percobaan ulang, bottleneck, 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 menyeluruh yang diperlukan untuk menyelesaikan upaya RPC, termasuk waktu yang diperlukan untuk memilih subsaluran. 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. Ini akan disetel ke atribut resolver yang diteruskan dari kebijakan weighted_target, atau string kosong jika atribut resolver tidak ditetapkan.
storage.googleapis.com/client/grpc/client/attempt/sent_total_compressed_message_size Preview. Total byte, yang dikompresi tetapi tidak dienkripsi, yang dikirim ke semua pesan permintaan kecuali metadata per RPC percobaan. Jumlah ini tidak termasuk byte framing transpor atau gRPC. 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. Ini akan ditetapkan ke atribut resolver yang diteruskan dari kebijakan weighted_target, atau string kosong jika atribut resolver tidak ditetapkan.
storage.googleapis.com/client/grpc/client/attempt/rcvd_total_compressed_message_size Preview. Total byte, yang dikompresi tetapi tidak dienkripsi, yang diterima di semua pesan respons kecuali metadata per RPC yang dicoba. Jumlah ini tidak termasuk byte framing transpor atau gRPC. 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. Ini akan ditetapkan ke atribut resolver yang diteruskan dari kebijakan weighted_target, atau string kosong jika atribut resolver tidak ditetapkan.

Untuk mengetahui informasi selengkapnya tentang instrumen per percobaan 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 menyeluruh 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 deteksi beban

Metrik berikut memberikan insight tentang efektivitas penggunaan aplikasi klien Anda terhadap pengukuran beban permintaan. Metrik penginderaan beban permintaan dapat membantu Anda menyeimbangkan beban server, mengoptimalkan penggunaan 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 cache penginderaan beban permintaan. Meteran {entry}
  • grpc.target: menunjukkan target saluran gRPC tempat WRR digunakan.
  • grpc.lb.rls.server_target: URI target server yang berkomunikasi dengan server penginderaan beban permintaan.
  • grpc.lb.rls.instance_uuid: ID unik universal (UUID) untuk setiap instance klien penginderaan beban permintaan. Nilai ini tidak bermakna secara mandiri, tetapi berguna untuk membedakan antara instance klien yang merasakan beban permintaan jika ada beberapa instance di saluran gRPC yang sama atau jika 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 server yang berkomunikasi dengan server penginderaan beban permintaan.
  • grpc.lb.rls.instance_uuid: UUID untuk setiap instance klien penginderaan beban permintaan. Nilai ini tidak bermakna secara mandiri, tetapi berguna untuk membedakan antara instance klien yang merasakan beban permintaan jika ada beberapa instance di saluran gRPC yang sama atau jika 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 sensing 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 permintaan load sensing untuk merutekan traffic bidang data. Nilai ini ditampilkan oleh server permintaan load sensing untuk kunci tertentu atau dikonfigurasi sebagai target default dalam konfigurasi permintaan load sensing.
  • 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 penginderaan beban permintaan. Jika target default juga ditampilkan oleh server penginderaan beban permintaan, RPC yang dikirim ke target tersebut dari cache akan dihitung dalam metrik ini, bukan dalam grpc.rls.default_target_picks. Penghitung {pick}
  • grpc.target: target saluran gRPC tempat sensing 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 permintaan load sensing untuk merutekan traffic bidang data. Nilai ini ditampilkan oleh server permintaan load sensing untuk kunci tertentu atau dikonfigurasi sebagai target default dalam konfigurasi permintaan load sensing.
  • grpc.lb.pick_result: hasil pemilihan LB seperti "complete", "fail", atau "drop".
storage.googleapis.com/client/grpc/lb/rls/failed_picks Preview. Jumlah pilihan LB yang gagal karena permintaan load sensing permintaan yang gagal atau saluran load sensing permintaan yang di-throttle. Penghitung {pick}
  • grpc.target: target saluran gRPC tempat sensing beban permintaan digunakan.
  • grpc.lb.rls.server_target: URI target server penginderaan beban permintaan yang akan diajak berkomunikasi.

Metrik klien Layanan xDiscovery

Metrik berikut memberikan insight tentang cara aplikasi klien Anda berinteraksi dengan platform kontrol Layanan xDiscovery (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 ditetapkan ke 1 saat streaming pertama kali dibuat. Jika terjadi kegagalan konektivitas atau saat streaming ADS gagal tanpa melihat pesan respons sesuai A57, metrik akan ditetapkan ke 0. Setelah ditetapkan ke 0, metrik akan direset ke 1 saat respons pertama diterima di streaming ADS. Metrik ini hanya tersedia untuk Library Klien Cloud untuk C++. Meteran {bool}
  • grpc.target: untuk klien, menunjukkan target saluran gRPC tempat XdsClient digunakan. Untuk server, akan berupa string "#server".
  • grpc.xds.server: URI target server xDS yang dikomunikasikan oleh 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 berupa 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 yang 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 berupa 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. Nilainya akan menjadi "#old" untuk nama resource non-xdstp yang diidentifikasi di xDS API, sebelum diperkenalkannya 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 digunakan untuk 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 memilih untuk tidak menggunakan metrik sisi klien jika perlu.

Java

public GrpcStorageOptions.Builder setEnableGrpcClientMetrics(false enableGrpcClientMetrics)

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

C++

Untuk memilih tidak menggunakan metrik sisi klien untuk gRPC API menggunakan Library Klien Cloud untuk C++, lihat Struct EnableGrpcMetricsOption.

Langkah selanjutnya