18.5 A/B tests
test ab "search v2" {
variant a = oldSearch
variant b = newSearch
split by .User 50/50
metric ctr, latency.p95
guard latency.p95 < SEARCH_P95_LIMIT
traffic recorded("traffic/search.oxlrec")
}- In
oxl testthe experiment is run on recorded traffic and compares the metrics of the variants with statistical significance. - In a cluster
oxl ab start "search v2"creates a dynamicFlag, splits traffic and collects metrics; aguardviolation automatically rolls the flag back. - The body of
test abis a set of clausesvariant,split by,metric,guard,traffic, not a block of statements (D-8052; DIV-001; D-6850). From the code of the function under test the variant of a request is reported byab.variant(…)fromstd.ab(an implementation extension, App. B).
Implementation-defined. Limits of A/B tests (D-8056; DIV-038; D-6851). This implementation: user metrics of
std.obsare not split by variants in a cluster; streaming rpcs are not journalled;replayreproduces only recorded traffic.
Related diagnostics
See also
Source: docs/spec/oxl-standard.en.md