canary

package
v1.5.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 28, 2022 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Rule

type Rule struct {
	// TagKey is the HTTP header will be added if rule matched.
	TagKey string `yaml:"tagKey"`
	// TagValue is the TagKey header's value.
	TagValue string `yaml:"tagValue"`
	// Description describes the rule.
	Description string `yaml:"description"`
	// Conditions is the rule's target, it's a conditional expressions beginning with 'if'.
	//
	// Supports conditional operator:
	// ==, !=, >=, <=, >, <, in, mod
	// mod is a special keyword which means randomly pick up request according
	// to the value in a specified rate. The value after mod op will be set to 0
	// if it is < 0. And it will be mod 100 before using it.
	// e.g., RealIP mod '10'
	//
	// Supports logic operator:
	// ||, &&, and ()
	//
	// Supports four types of sources:
	// Header, Cookie, Jwt, RealIP
	//
	// We get Jwt value from HTTP header Authorization,
	// by default, Jwt token will be put into this header which has this form:
	// Authorization: Bearer <token>.
	//
	// TODO may support multiple values for on header in future.
	//
	// e.g.,
	// Header.City in 'a, b, c' && (Header.Gender == 'male' || Cookie.UserType == 'VIP')
	// || Jwt.key != 'val' || RealIP mod '10'
	//
	// In practice, there only one legal 'mod', RealIP (TODO supports more approaches).
	// And it's better to put RealIP mod <x> in the end, because mod operation need
	// to calculate hash, it's much expensive than other condition. If there is
	// short circuit, we won't need to do such calculation.
	Conditions string `yaml:"conditions"`
	// contains filtered or unexported fields
}

Rule is the A/B testing rule specified by user.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL