Mengamati pemberlakuan kuota

Dokumen ini menjelaskan cara mengamati penerapan kuota. Sistem kuota air gap Google Distributed Cloud (GDC) melindungi layanan dengan mencegah lonjakan penggunaan yang tidak terduga yang dapat membebani layanan. Untuk membantu Anda memahami cara kuota layanan dikonfigurasi dan diterapkan, Anda dapat menggunakan layanan Library Agent untuk mengamati perilaku kuota, seperti pembatasan kapasitas.

Layanan Library Agent mengekspos dua API:

  • GetShelf: Mengambil detail untuk rak tertentu dan tidak dibatasi kecepatan.
  • ListShelves: Mengambil daftar semua rak dan memiliki batas kecepatan dua permintaan per menit.

Halaman ini ditujukan bagi developer dalam grup operator aplikasi, yang bertanggung jawab untuk memantau kuota dan pola penggunaan untuk project mereka. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi audiens untuk GDC yang terisolasi dari jaringan.

Sebelum memulai

Sebelum berinteraksi dengan layanan Library Agent, pastikan Anda memiliki izin yang benar dan endpoint layanan:

  1. Untuk mendapatkan izin yang diperlukan untuk berinteraksi dengan layanan Library Agent, minta Admin IAM Project Anda untuk memberi Anda peran LibraryAgent User di namespace project Anda. Misalnya, Project IAM Admin dapat mengikat peran libraryagent-user ke akun pengguna Anda di namespace project Anda dengan menerapkan resource RoleBinding:

    kubectl apply -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: libraryagent-user-binding
      namespace: PROJECT_NAMESPACE
    subjects:
    - kind: User
      name: USER_EMAIL_ADDRESS
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: Role
      name: libraryagent-user
      apiGroup: rbac.authorization.k8s.io
    EOF
    

    Ganti kode berikut:

    • PROJECT_NAMESPACE: namespace project Anda, seperti project-123.
    • USER_EMAIL_ADDRESS: alamat email yang terkait dengan identitas pengguna Anda.
  2. Minta Admin Platform yang memiliki akses ke cluster admin org dan yang memiliki peran DNS Monitor (dns-monitor-mp) untuk mendapatkan nama DNS bagi layanan Library Agent:

    kubectl get dnsregistration.network.private.gdc.goog -n libraryagent-system libraryagent -o jsonpath='{.status.fqdn}'
    

    Jika Anda perlu mengedit pendaftaran DNS, PA juga harus memiliki peran DNS Debugger (dns-debugger-mp).

Patuhi batas kuota

Untuk berinteraksi dengan Library Agent API dan mengamati pembatasan kecepatan, ikuti langkah-langkah berikut:

  1. Tetapkan variabel lingkungan untuk nama DNS dan token autentikasi Anda:

    export DNS_NAME=LIBRARY_AGENT_DNS_NAME
    export TOKEN="$($HOME/gdcloud auth print-identity-token --audiences=https://$DNS_NAME)"
    

    Ganti LIBRARY_AGENT_DNS_NAME dengan nama DNS yang Anda peroleh sebelumnya.

  2. Panggil GetShelf API untuk mengambil rak tertentu berdasarkan nama. Metode ini tidak memiliki batas kecepatan:

    curl -v -X GET \
    -H "Authorization: Bearer ${TOKEN?}" \
    --insecure \
    https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelves/Shelf1
    

    Ganti PROJECT_NAMESPACE dengan namespace project Anda.

    Anda menerima respons HTTP 200 OK.

  3. Panggil API ListShelves untuk mencantumkan semua galeri di lokasi yang tercermin dalam nama DNS. Metode ini dibatasi hingga dua permintaan per menit:

    curl -v -X GET \
    -H "Authorization: Bearer ${TOKEN?}" \
    --insecure \
    https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelves
    

    Ganti PROJECT_NAMESPACE dengan namespace project Anda.

    Jika Anda berada dalam batas dua permintaan per menit, Anda akan menerima respons HTTP 200 OK.

  4. Untuk mengamati penerapan kuota, panggil API ListShelves berulang kali hingga Anda melampaui batas kapasitas:

    curl -v -X GET \
    -H "Authorization: Bearer ${TOKEN?}" \
    --insecure \
    https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelves
    

    Ganti PROJECT_NAMESPACE dengan namespace project Anda.

    Jika Anda melebihi batas, Anda akan menerima respons HTTP 429 Too Many Requests, yang menunjukkan bahwa permintaan dibatasi lajunya oleh sistem kuota. Outputnya mirip dengan hal berikut ini:

    * Request completely sent off
    < HTTP/2 429
    < x-envoy-ratelimited: true
    < date: Thu, 24 Apr 2025 18:37:16 GMT
    < server: istio-envoy
    < x-envoy-upstream-service-time: 46
    <
    * Connection #0 to host libraryagent.org-1.zone1.google.gdch.test left intact
    

    Penerapan batas kecepatan tidak selalu akurat; mungkin diperlukan lebih dari dua permintaan dalam satu menit untuk memicu error 429.