En este documento, se explica cómo observar la aplicación de la cuota. El sistema de cuotas aislado de Google Distributed Cloud (GDC) protege los servicios, ya que evita aumentos repentinos imprevistos en el uso que podrían sobrecargarlos. Para ayudarte a comprender cómo se configuran y aplican las cuotas de servicio, puedes usar el servicio Library Agent para observar los comportamientos de las cuotas, como el límite de frecuencia.
El servicio Library Agent expone dos APIs:
- GetShelf: Recupera detalles de una biblioteca específica y no está limitado por la tasa.
- ListShelves: Recupera una lista de todos los estantes y tiene un límite de frecuencia de dos solicitudes por minuto.
Esta página está dirigida a los desarrolladores que forman parte del grupo de operadores de aplicaciones y que son responsables de supervisar las cuotas y los patrones de uso de su proyecto. Para obtener más información, consulta Públicos de la documentación de Google Distributed Cloud aislado.
Antes de comenzar
Antes de interactuar con el servicio Library Agent, asegúrate de tener los permisos correctos y el extremo del servicio:
Para obtener los permisos que necesitas para interactuar con el servicio de Library Agent, pídele al administrador de IAM del proyecto que te otorgue el rol de Usuario de Library Agent en el espacio de nombres de tu proyecto. Por ejemplo, el administrador de IAM del proyecto puede vincular el rol
libraryagent-usera tu cuenta de usuario en el espacio de nombres del proyecto aplicando un recursoRoleBinding: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 EOFReemplaza lo siguiente:
PROJECT_NAMESPACE: Es el espacio de nombres de tu proyecto, comoproject-123.USER_EMAIL_ADDRESS: La dirección de correo electrónico asociada con tu identidad de usuario.
Pídele a un administrador de la plataforma que tenga acceso al clúster de administración de la organización y que tenga el rol de DNS Monitor (
dns-monitor-mp) que obtenga el nombre de DNS para el servicio del agente de la biblioteca:kubectl get dnsregistration.network.private.gdc.goog -n libraryagent-system libraryagent -o jsonpath='{.status.fqdn}'Si necesitas editar el registro de DNS, el PA también debe tener el rol de DNS Debugger (
dns-debugger-mp).
Observa los límites de cuota
Para interactuar con las APIs de Library Agent y observar la límite de frecuencia, sigue estos pasos:
Establece variables de entorno para el nombre de DNS y tu token de autenticación:
export DNS_NAME=LIBRARY_AGENT_DNS_NAME export TOKEN="$($HOME/gdcloud auth print-identity-token --audiences=https://$DNS_NAME)"Reemplaza
LIBRARY_AGENT_DNS_NAMEpor el nombre de DNS que obtuviste antes.Llama a la API de
GetShelfpara recuperar una biblioteca específica por su nombre. Este método no tiene límite de frecuencia:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelves/Shelf1Reemplaza
PROJECT_NAMESPACEpor el espacio de nombres de tu proyecto.Recibirás una respuesta
HTTP 200 OK.Llama a la API de
ListShelvespara enumerar todas las estanterías en una ubicación que se refleja en el nombre de DNS. Este método tiene un límite de dos solicitudes por minuto:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelvesReemplaza
PROJECT_NAMESPACEpor el espacio de nombres de tu proyecto.Si estás dentro del límite de dos solicitudes por minuto, recibirás una respuesta
HTTP 200 OK.Para observar la aplicación de la cuota, llama a la API de
ListShelvesde forma reiterada hasta que excedas el límite de frecuencia:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelvesReemplaza
PROJECT_NAMESPACEpor el espacio de nombres de tu proyecto.Cuando superas el límite, recibes una respuesta
HTTP 429 Too Many Requests, que indica que el sistema de cuotas limitó la tasa de la solicitud. El resultado es similar a lo siguiente:* 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 intactLa aplicación del límite de frecuencia no siempre es precisa; es posible que se necesiten más de dos solicitudes en un minuto para activar el error 429.