Throttling of Client Logs

Starting with Avi Vantage version 17.1.3, by default, the collection of client logs (aka virtual service logs) is throttled at the Service Engines. Throttling (or rate-limiting) is implemented as the number of logs collected per second and any excess logs in a second are dropped.

Throttling is controlled by two sets of properties: (i) throttles specified in the analytics policy of a virtual service, and (ii) 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 could be dropped because of throttles for that type in either of the above two sets.

In Avi Vantage, each client log generated is categorized into one of the three types:

  • Significant: These logs correspond to requests (or connections) predetermined by Avi as significant, e.g., logs corresponding to requests ending with a 4XX response code.
  • Filtered: These logs correspond to requests (or connections) matching user-defined filters. We also refer to such logs as UDF (user-defined filters) logs.
  • Non-significant: These logs correspond to all other requests (or connections) that don’t fall into either of the above two categories.
Note: Changing throttles should be done with care, as that affects how much SE and Controller resources (disk IO, disk space, and network bandwidth) are consumed by logging.

VS Throttling

Following are the three analytics policy settings for a VS for throttling different types of logs. Each of these limits apply for a VS on a single Service Engine (cumulative across all cores).

  1. significant_log_throttle: This setting limits the number of significant logs generated per second for this VS on each SE. Default is 10 logs per second. Set it to zero (0) to disable throttling.

  2. udf_log_throttle: This setting limits the total number of UDF logs generated per second for this VS on each SE. UDF logs are generated due to the configured client log filters or the rules with logging enabled. Default is 10 logs per second. Set it to zero (0) to disable throttling.

  3. throttle under full_client_logs: This setting limits the number of non-significant logs generated per second for this VS on each SE. Default is 10 logs per second. Set it to zero (0) to disable throttling.

These options are available via CLI or in UI under the Analytics tab of the virtual service editor.

Analytics Policy Edit Tab in a VS Edit Window

The reader may also be interested in the Virtual Service Logs article.

SE Group Throttling

Following are Service Engine group settings that are used by the SEs of that group to throttle different types of logs. Note that each of these limits are applied per-core on a Service Engine.

  1. significant_log_throttle: This setting limits the number of significant logs generated per second per core on this SE. Default is 100 logs per second. Set it to zero (0) to disable throttling.

  2. 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. Default is 100 logs per second. Set it to zero (0) to disable throttling.

  3. non_significant_log_throttle: This setting limits the number of non-significant logs generated per second per core on this SE. Default is 100 logs per second. Set it to zero (0) to disable throttling.

These options are available via CLI or in UI under Advanced tab of the Service Engine group editor.

Advanced Tab in a SE Group Edit Window