Quota configuration helps to achieve fairness and budgeting in service usage.
The metric based quota configuration works this way:
- The service configuration defines a set of metrics.
- For API calls, the quota.metric_rules maps methods to metrics with corresponding costs.
- The quota.limits defines limits on the metrics, which will be used for
quota checks at runtime.
An example quota configuration in yaml format:
quota:
limits:
- 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.) metric_rules:
- selector: "*" metric_costs: library.googleapis.com/read_calls: 1
- selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2
- selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics:
- name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64
- name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64
Generated from protobuf message google.api.Quota
Methods |
public __construct( $data = NULL) Constructor.
|
public getLimits() List of QuotaLimit definitions for the service. Generated from protobuf field repeated .google.api.QuotaLimit limits = 3;
|
public getMetricRules() List of MetricRule definitions, each one mapping a selected method to one or more metrics. Generated from protobuf field repeated .google.api.MetricRule metric_rules = 4;
|
public setLimits( $var) List of QuotaLimit definitions for the service. Generated from protobuf field repeated .google.api.QuotaLimit limits = 3;
|
public setMetricRules( $var) List of MetricRule definitions, each one mapping a selected method to one or more metrics. Generated from protobuf field repeated .google.api.MetricRule metric_rules = 4;
|
Methods |
Properties |
private $limits = NULL List of QuotaLimit definitions for the service. Generated from protobuf field repeated .google.api.QuotaLimit limits = 3; |
private $metric_rules = NULL List of MetricRule definitions, each one mapping a selected method to one or more metrics. Generated from protobuf field repeated .google.api.MetricRule metric_rules = 4; |