A configuração da cota ajuda a conseguir imparcialidade e criar orçamentos no Service Usage.
A configuração da cota funciona da seguinte maneira: - A configuração do serviço define um conjunto de métricas. - Para chamadas da API, quota.metric_rules mapeia métodos para métricas com os custos correspondentes. - quota.limits define limites para as métricas, que serão usados para verificações de cota no tempo de execução.
Um exemplo de configuração de cota no formato yaml:
Cota:
- name: apiWriteQpsPerProject
metric: library.googleapis.com/write_calls
unit: "1/min/{project}" # rate limit for consumer projects
values:
STANDARD: 10000
# The metric rules bind all methods to the read_calls metric,
# except for the UpdateBook and DeleteBook methods. These two methods
# are mapped to the write_calls metric, with the UpdateBook method
# consuming at twice rate as the DeleteBook method.
metricRules:
- selector: "*"
metricCosts:
library.googleapis.com/read_calls: 1
- selector: google.example.library.v1.LibraryService.UpdateBook
metricCosts:
library.googleapis.com/write_calls: 2
- selector: google.example.library.v1.LibraryService.DeleteBook
metricCosts:
library.googleapis.com/write_calls: 1
Definição da métrica correspondente:
metrics:
- name: library.googleapis.com/read_calls
displayName: Read requests
metricKind: DELTA
valueType: INT64
- name: library.googleapis.com/write_calls
displayName: Write requests
metricKind: DELTA
valueType: INT64
Representação JSON | |
---|---|
{ "limits": [ { object( |
Campos | |
---|---|
limits[] |
Lista de definições de |
metricRules[] |
Lista de definições de |
QuotaLimit
QuotaLimit
define um limite específico que se aplica em uma duração específica para um tipo de limite. Pode haver no máximo um limite para uma duração e combinação de tipo de limite definida dentro de um QuotaGroup
.
Representação JSON | |
---|---|
{ "name": string, "description": string, "defaultLimit": string, "maxLimit": string, "freeTier": string, "duration": string, "metric": string, "unit": string, "values": { string: string, ... }, "displayName": string } |
Campos | |
---|---|
name |
Nome do limite da cota. O nome precisa ser fornecido e ser exclusivo no serviço. O nome só pode incluir caracteres alfanuméricos e "-". O comprimento máximo do nome do limite é de 64 caracteres. |
description |
Opcional. Descrição detalhada e visível pelo usuário para esse limite de cota. Deve ser usado somente quando for preciso fornecer mais contexto para entender esse limite do que apenas o nome de exibição do limite (veja: |
defaultLimit |
Número padrão de tokens que podem ser consumidos na duração especificada. Este é o número de tokens atribuídos quando um desenvolvedor de aplicativo cliente ativa o serviço para o projeto. Especificar um valor 0 bloqueará todas as solicitações. Pode ser usado se você estiver provisionando a cota para consumidores selecionados e bloqueando outros. Da mesma maneira, um valor -1 indicará uma cota ilimitada. Não são permitidos outros valores negativos. Usado apenas por cotas baseadas em grupo. |
maxLimit |
Número máximo de tokens que podem ser consumidos na duração especificada. Os desenvolvedores de aplicativos cliente podem substituir o limite padrão até este valor máximo. Se especificado, esse valor não pode ser definido como inferior ao limite padrão. Se não for especificado, ele é definido como o limite padrão. Para permitir que os clientes apliquem substituições sem limite superior, defina como -1 para indicar uma cota máxima ilimitada. Usado apenas por cotas baseadas em grupo. |
freeTier |
Valor de nível gratuito exibido no Developers Console para esse limite. O nível gratuito é o número de tokens que serão subtraídos do valor faturado quando o faturamento estiver ativado. Este campo só pode ser definido em um limite com duração "1d", em um grupo faturável. Ele é inválido em qualquer outro limite. Se este campo não estiver configurado, ele é definido por padrão como 0, o que indica que não existe m nível gratuito para este serviço. Usado apenas por cotas baseadas em grupo. |
duration |
Duração deste limite na notação textual. Por exemplo: "100s", "24h", "1d". Para durações superiores a um dia, apenas múltiplos de dias são aceitos. Nós aceitamos apenas "100s" e "1d", por enquanto. Adicionaremos mais opções no futuro. "0" indica uma duração indefinida. Usado apenas por cotas baseadas em grupo. |
metric |
O nome da métrica a que este limite de cota se aplica. Os limites de cota com a mesma métrica serão verificados juntos durante o tempo de execução. A métrica precisa ser definida dentro da configuração do serviço. |
unit |
Especifique a unidade do limite da cota. Usa a mesma sintaxe que [Metric.unity][]. Os tipos de unidades aceitas são determinados pelo sistema de back-end de cota. Veja alguns exemplos: * "1/min./{project}" para a cota por minuto por projeto. Observação: a ordem dos componentes da unidade é insignificante. O "1" no início é obrigatório para seguir a sintaxe da unidade da métrica. |
values |
Valores-limite nivelados. Você precisa especificar esse campo como um par de chave-valor, com um número inteiro que é o número máximo de solicitações permitidas para a unidade especificada. Atualmente, apenas STANDARD é aceito. Um objeto com uma lista de pares |
displayName |
Nome de exibição visível pelo usuário para este limite. Opcional. Se não estiver configurado, a IU fornecerá um nome de exibição padrão com base na configuração da cota. Este campo pode ser usado para modificar o nome de exibição padrão gerado pela configuração. |