This section explains virtual service throttling and its analytics policy settings.
Overview
By default, the collection of client logs (or virtual service logs) is throttled at the Service Engines.
Throttling (or rate-limiting) is implemented when the number of logs collected per second and any excess logs in a second are dropped. It is controlled by two sets of properties, namely,
Throttles specified in the analytics policy of a virtual service.
Throttles specified in the Service Engine group of a Service Engine.
Each set has a throttle property for each type of client log. A client log of a specific type can be dropped because of throttles for that type in either of the above two sets.
In Avi Load Balancer, each client log generated is categorized into one of the three types:
Significant: These logs correspond to requests (or connections) predetermined by Avi Load Balancer as significant, for instance, logs corresponding to requests ending with a 4XX response code.
Filtered: These logs correspond to requests (or connections) matching user-defined filters. Such logs are also referred to as UDF (user-defined filters) logs. UDF logs are generated due to the configured client log filters or the http policy / rules with logging enabled.
Non-significant: These logs correspond to all other requests (or connections) that do not fall into the above two categories.
Throttles must be changed carefully, as it affects SE and Controller resources (disk IO, disk space, and network bandwidth) consumption by logging.
Recommended Reading
Virtual Service Throttling
Following are the three analytics policy settings for a VS for throttling different types of logs. Each of these limits applies for a virtual service on a single Service Engine (cumulative across all cores).
significant_log_throttle
: This setting limits the number of significant logs generated per second for this virtual service on each SE. The default is 10 logs per second. Set it to zero (0) to disable throttling.udf_log_throttle: This setting limits the total number of UDF logs generated per second for this virtual service on each SE. UDF logs are generated due to the configured client log filters or the rules with logging enabled. The default is 10 logs per second. Set it to zero (0) to disable throttling.
throttle under full_client_logs
: This setting limits the number of non-significant logs generated per second for this virtual service on each SE. Default is 10 logs per second. Set it to zero (0) to disable throttling.
These options are available through CLI or in UI under the Analytics tab of the virtual service editor.
For more information, see Virtual Service Application Logs.
SE Group Throttling
Following are Service Engine group settings used by the SEs of that group to throttle different types of logs. Note that each of these limits is applied per core on a Service Engine.
significant_log_throttle
: This setting limits the number of significant logs generated per second per core on this SE. The default is 100 logs per second. Set it to zero (0) to disable throttling.udf_log_throttle
: This setting limits the number of UDF logs generated per second per core on this SE. UDF logs are generated due to the configured client log filters or the rules with logging enabled. The default is 100 logs per second. Set it to zero (0) to disable throttling.non_significant_log_throttle
: This setting limits the number of non-significant logs generated per second per core on this SE. The default is 100 logs per second. Setting it to zero (0) disables throttling.
These options are available using CLI and in UI under the Logs tab of the Service Engine group editor.