Documentation ¶
Index ¶
- func NewExperimentParams() *experimentParams
- type CustomDiversionBucket
- type DiversionBucket
- type Domain
- func (d *Domain) AddDebugUsers(users []string)
- func (d *Domain) AddFeature(feature *Feature)
- func (d *Domain) AddLayer(layer *Layer)
- func (d *Domain) Features() []*Feature
- func (d *Domain) Init() error
- func (d *Domain) Layers() []*Layer
- func (d *Domain) Match(experimentContext *ExperimentContext) bool
- func (d *Domain) MatchDebugUsers(experimentContext *ExperimentContext) bool
- type ExpParameter
- type Experiment
- func (e *Experiment) AddDebugUsers(users []string)
- func (e *Experiment) AddExperimentVersion(experimentVersion *ExperimentVersion)
- func (e *Experiment) ExperimentVersions() []*ExperimentVersion
- func (e *Experiment) Init() error
- func (e *Experiment) Match(experimentContext *ExperimentContext) bool
- func (e *Experiment) MatchDebugUsers(experimentContext *ExperimentContext) bool
- type ExperimentContext
- type ExperimentParams
- type ExperimentResult
- type ExperimentVersion
- func (e *ExperimentVersion) AddDebugUsers(users []string)
- func (e *ExperimentVersion) Experiment() *Experiment
- func (e *ExperimentVersion) Init() error
- func (e *ExperimentVersion) Match(experimentContext *ExperimentContext) bool
- func (e *ExperimentVersion) MatchDebugUsers(experimentContext *ExperimentContext) bool
- func (e *ExperimentVersion) Params() map[string]any
- func (e *ExperimentVersion) SetExperiment(experiment *Experiment)
- type Feature
- type FilterDiversionBucket
- type Layer
- type Project
- type UidDiversionBucket
- type UidHashDiversionBucket
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewExperimentParams ¶
func NewExperimentParams() *experimentParams
Types ¶
type CustomDiversionBucket ¶
type CustomDiversionBucket struct { }
func NewCustomDiversionBucket ¶
func NewCustomDiversionBucket() *CustomDiversionBucket
func (*CustomDiversionBucket) Match ¶
func (b *CustomDiversionBucket) Match(experimentContext *ExperimentContext) bool
type DiversionBucket ¶
type DiversionBucket interface {
Match(*ExperimentContext) bool
}
DiversionBucket is a interface by the bucket type to match diversion
func NewDiversionBucket ¶
func NewDiversionBucket(bucketType string) DiversionBucket
type Domain ¶
func (*Domain) Match ¶
func (d *Domain) Match(experimentContext *ExperimentContext) bool
func (*Domain) MatchDebugUsers ¶
func (d *Domain) MatchDebugUsers(experimentContext *ExperimentContext) bool
MatchDebugUsers return true if debug_users is set and debug_users contain of uid
type ExpParameter ¶
type Experiment ¶
type Experiment struct { *swagger.Experiment // contains filtered or unexported fields }
func NewExperiment ¶
func NewExperiment(experiment *swagger.Experiment) *Experiment
func (*Experiment) AddExperimentVersion ¶
func (e *Experiment) AddExperimentVersion(experimentVersion *ExperimentVersion)
AddExperimentVersion
func (*Experiment) ExperimentVersions ¶
func (e *Experiment) ExperimentVersions() []*ExperimentVersion
ExperimentVersions return all experiment versions
func (*Experiment) Init ¶
func (e *Experiment) Init() error
func (*Experiment) Match ¶
func (e *Experiment) Match(experimentContext *ExperimentContext) bool
func (*Experiment) MatchDebugUsers ¶
func (e *Experiment) MatchDebugUsers(experimentContext *ExperimentContext) bool
MatchDebugUsers return true if debug_users is set and debug_users contain of uid
type ExperimentContext ¶
type ExperimentContext struct { RequestId string // Uid Uid string // FilterParams is map of params, use for filter condition FilterParams map[string]interface{} // contains filtered or unexported fields }
func (*ExperimentContext) ExperimentHashString ¶
func (c *ExperimentContext) ExperimentHashString() string
func (*ExperimentContext) SetExperimentHashString ¶
func (c *ExperimentContext) SetExperimentHashString(str string)
type ExperimentParams ¶
type ExperimentParams interface { AddParam(key string, value interface{}) AddParams(params map[string]interface{}) Get(key string, defaultValue interface{}) interface{} GetString(key, defaultValue string) string GetInt(key string, defaultValue int) int GetFloat(key string, defaultValue float64) float64 GetInt64(key string, defaultValue int64) int64 }
ExperimentParams offers Get* function to get value by the key If not found the key, defaultValue will return
func MergeExperimentParams ¶
func MergeExperimentParams(layersParamsMap map[string]ExperimentParams) ExperimentParams
type ExperimentResult ¶
type ExperimentResult struct { ExperimentContext *ExperimentContext // contains filtered or unexported fields }
func NewExperimentResult ¶
func NewExperimentResult(projectName string, experimentContext *ExperimentContext, project *Project) *ExperimentResult
func (*ExperimentResult) AddExperimentVersion ¶
func (r *ExperimentResult) AddExperimentVersion(experimentVersion *ExperimentVersion)
AddExperimentVersion
func (*ExperimentResult) GetExpId ¶
func (r *ExperimentResult) GetExpId() string
func (*ExperimentResult) GetExperimentParams ¶
func (r *ExperimentResult) GetExperimentParams() ExperimentParams
func (*ExperimentResult) Info ¶
func (r *ExperimentResult) Info() string
func (*ExperimentResult) Init ¶
func (r *ExperimentResult) Init()
type ExperimentVersion ¶
type ExperimentVersion struct { *swagger.ExperimentVersion // contains filtered or unexported fields }
func NewExperimentVersion ¶
func NewExperimentVersion(experimentVersion *swagger.ExperimentVersion) *ExperimentVersion
func (*ExperimentVersion) AddDebugUsers ¶
func (e *ExperimentVersion) AddDebugUsers(users []string)
AddDebugUsers
func (*ExperimentVersion) Experiment ¶
func (e *ExperimentVersion) Experiment() *Experiment
Experiment
func (*ExperimentVersion) Match ¶
func (e *ExperimentVersion) Match(experimentContext *ExperimentContext) bool
func (*ExperimentVersion) MatchDebugUsers ¶
func (e *ExperimentVersion) MatchDebugUsers(experimentContext *ExperimentContext) bool
MatchDebugUsers return true if debug_users is set and debug_users contain of uid
func (*ExperimentVersion) SetExperiment ¶
func (e *ExperimentVersion) SetExperiment(experiment *Experiment)
SetExperiment
type Feature ¶
func NewFeature ¶
type FilterDiversionBucket ¶
type FilterDiversionBucket struct { Filter string EvaluableExpression *govaluate.EvaluableExpression }
func NewFilterDiversionBucket ¶
func NewFilterDiversionBucket(filter string) (*FilterDiversionBucket, error)
NewFilterDiversionBucket return instance of FilterDiversionBucket
func (*FilterDiversionBucket) Match ¶
func (b *FilterDiversionBucket) Match(experimentContext *ExperimentContext) bool
Match is a function of FilterDiversionBucket implements the DiversionBucket interface
type Layer ¶
func (*Layer) AddExperiment ¶
func (l *Layer) AddExperiment(experiment *Experiment)
AddExperiment add experiment to layer
func (*Layer) Experiments ¶
func (l *Layer) Experiments() []*Experiment
Experiments return all experiments
type Project ¶
func NewProject ¶
func (*Project) DefaultDomain ¶
func (*Project) GetDomains ¶
func (*Project) SetDefaultDomain ¶
type UidDiversionBucket ¶
type UidDiversionBucket struct {
// contains filtered or unexported fields
}
func NewUidDiversionBucket ¶
func NewUidDiversionBucket(bucketCount int, bucketStr string) *UidDiversionBucket
func (*UidDiversionBucket) Match ¶
func (b *UidDiversionBucket) Match(experimentContext *ExperimentContext) bool
type UidHashDiversionBucket ¶
type UidHashDiversionBucket struct {
*UidDiversionBucket
}
func NewUidHashDiversionBucket ¶
func NewUidHashDiversionBucket(bucketCount int, bucketStr string) *UidHashDiversionBucket
func (*UidHashDiversionBucket) Match ¶
func (b *UidHashDiversionBucket) Match(experimentContext *ExperimentContext) bool