Skip to main content

A/B Test Example

With at least two endpoints and Traffic Policy, you can run simple A/B tests with using the rand.double() macro.

Basic example

This rule:

  1. Uses rand.double() to generate a random double between 0 and 1 when traffic reaches the endpoint
  2. Checks if the value is greater than or equal to 0.5
  3. If so, it routes the traffic to a different internal agent endpoint.

traffic-policy.yml

tip

You can change the value the random number is checked against to split the traffic in different ratios. For example,>=0.8 would send 80% of the traffic to one endpoint and 20% to the other.

See the forward-internal Traffic Policy action docs for more information.

Using rewrites

You can also send the traffic to a different route.

traffic-policy.yml

on_http_request:
  - expressions:
      - rand.double() <= 0.5
    actions:
      - type: url-rewrite
        config:
          from: /path/to/test
          to: /path/to/test-b

See the URL Rewrite Example for another example using rewrites.