Este documento explica como observar a aplicação de quotas. O sistema de quotas com lacunas de ar do Google Distributed Cloud (GDC) protege os serviços impedindo picos inesperados na utilização que possam sobrecarregar os serviços. Para ajudar a compreender como as quotas de serviço são configuradas e aplicadas, pode usar o serviço Library Agent para observar os comportamentos das quotas, como a limitação de taxa.
O serviço Library Agent expõe duas APIs:
- GetShelf: obtém detalhes de uma prateleira específica e não tem limite de taxa.
- ListShelves: obtém uma lista de todas as prateleiras e tem um limite de taxa de dois pedidos por minuto.
Esta página destina-se aos programadores do grupo de operadores de aplicações, que são responsáveis por monitorizar as quotas e os padrões de utilização do respetivo projeto. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.
Antes de começar
Antes de interagir com o serviço Library Agent, certifique-se de que tem as autorizações corretas e o ponto final do serviço:
Para receber as autorizações necessárias para interagir com o serviço Library Agent, peça ao administrador de IAM do projeto que lhe conceda a função Utilizador do LibraryAgent no espaço de nomes do seu projeto. Por exemplo, o administrador de IAM do projeto pode associar a função
libraryagent-userà sua conta de utilizador no espaço de nomes do projeto aplicando um 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 EOFSubstitua o seguinte:
PROJECT_NAMESPACE: o espaço de nomes do seu projeto, comoproject-123.USER_EMAIL_ADDRESS: o endereço de email associado à sua identidade de utilizador.
Peça a um administrador da plataforma que tenha acesso ao cluster de administrador da organização e que tenha a função de monitor DNS (
dns-monitor-mp) para obter o nome DNS do serviço do agente da biblioteca:kubectl get dnsregistration.network.private.gdc.goog -n libraryagent-system libraryagent -o jsonpath='{.status.fqdn}'Se precisar de editar o registo de DNS, o PA também tem de ter a função de depurador de DNS (
dns-debugger-mp).
Respeite os limites de quotas
Para interagir com as APIs Library Agent e observar a limitação de taxa, siga estes passos:
Defina variáveis de ambiente para o nome DNS e o token de autenticação:
export DNS_NAME=LIBRARY_AGENT_DNS_NAME export TOKEN="$($HOME/gdcloud auth print-identity-token --audiences=https://$DNS_NAME)"Substitua
LIBRARY_AGENT_DNS_NAMEpelo nome DNS que obteve anteriormente.Chame a API
GetShelfpara obter uma prateleira específica pelo nome. Este método não tem limite de taxa:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelves/Shelf1Substitua
PROJECT_NAMESPACEpelo espaço de nomes do seu projeto.Recebe uma resposta
HTTP 200 OK.Chame a API
ListShelvespara listar todas as prateleiras numa localização que se reflita no nome DNS. Este método está limitado a duas solicitações por minuto:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelvesSubstitua
PROJECT_NAMESPACEpelo espaço de nomes do seu projeto.Se estiver dentro do limite de dois pedidos por minuto, recebe uma resposta
HTTP 200 OK.Para observar a aplicação da quota, chame a API
ListShelvesrepetidamente até exceder o limite de velocidade:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelvesSubstitua
PROJECT_NAMESPACEpelo espaço de nomes do seu projeto.Quando excede o limite, recebe uma
HTTP 429 Too Many Requestsresposta a indicar que o pedido foi limitado pela taxa do sistema de quotas. O resultado é semelhante ao seguinte:* 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 intactA aplicação do limite de taxa nem sempre é precisa. Podem ser necessárias mais de duas solicitações num minuto para acionar o erro 429.