Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the iter8 v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/iter8-tools/iter8-controller/pkg/apis/iter8 +k8s:defaulter-gen=TypeMeta +groupName=iter8.tools
Package v1alpha1 contains API Schema definitions for the iter8 v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/iter8-tools/iter8-controller/pkg/apis/iter8 +k8s:defaulter-gen=TypeMeta +groupName=iter8.tools
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type Analysis
- type AssessmentType
- type CleanUpType
- type Experiment
- type ExperimentList
- type ExperimentMetric
- type ExperimentMetrics
- type ExperimentSpec
- type ExperimentStatus
- func (in *ExperimentStatus) DeepCopy() *ExperimentStatus
- func (in *ExperimentStatus) DeepCopyInto(out *ExperimentStatus)
- func (s *ExperimentStatus) InitializeConditions()
- func (s *ExperimentStatus) MarkAnalyticsServiceError(reason, messageFormat string, messageA ...interface{}) bool
- func (s *ExperimentStatus) MarkAnalyticsServiceRunning() bool
- func (s *ExperimentStatus) MarkExperimentCompleted()
- func (s *ExperimentStatus) MarkExperimentFailed(reason, messageFormat string, messageA ...interface{})
- func (s *ExperimentStatus) MarkExperimentNotCompleted(reason, messageFormat string, messageA ...interface{})
- func (s *ExperimentStatus) MarkExperimentSucceeded(reason, messageFormat string, messageA ...interface{})
- func (s *ExperimentStatus) MarkMetricsSynced() bool
- func (s *ExperimentStatus) MarkMetricsSyncedError(reason, messageFormat string, messageA ...interface{}) bool
- func (s *ExperimentStatus) MarkRoutingRulesError(reason, messageFormat string, messageA ...interface{}) bool
- func (s *ExperimentStatus) MarkRoutingRulesReady() bool
- func (s *ExperimentStatus) MarkTargetsError(reason, messageFormat string, messageA ...interface{}) bool
- func (s *ExperimentStatus) MarkTargetsFound() bool
- type MinMax
- type Phase
- type SuccessCriterion
- type Summary
- type TargetService
- type ToleranceType
- type TrafficControl
- func (in *TrafficControl) DeepCopy() *TrafficControl
- func (in *TrafficControl) DeepCopyInto(out *TrafficControl)
- func (t *TrafficControl) GetConfidence() float64
- func (t *TrafficControl) GetInterval() string
- func (t *TrafficControl) GetIntervalDuration() (time.Duration, error)
- func (t *TrafficControl) GetMaxIterations() int
- func (t *TrafficControl) GetMaxTrafficPercentage() float64
- func (t *TrafficControl) GetOnSuccess() string
- func (t *TrafficControl) GetStepSize() float64
- func (t *TrafficControl) GetStrategy() string
- type TrafficSplit
Constants ¶
const ( // StrategyIncrementWithoutCheck ... StrategyIncrementWithoutCheck string = "increment_without_check" // StrategyCheckAndIncrement ... StrategyCheckAndIncrement string = "check_and_increment" )
TBD Can we remove these?
const ( // ExperimentConditionReady has status True when the Experiment has finished controlling traffic ExperimentConditionReady = duckv1alpha1.ConditionReady // ExperimentConditionTargetsProvided has status True when the Experiment detects all elements specified in targetService ExperimentConditionTargetsProvided duckv1alpha1.ConditionType = "TargetsProvided" // ExperimentConditionAnalyticsServiceNormal has status True when the analytics service is operating normally ExperimentConditionAnalyticsServiceNormal duckv1alpha1.ConditionType = "AnalyticsServiceNormal" // ExperimentConditionMetricsSynced has status True when metrics are successfully synced with config map ExperimentConditionMetricsSynced duckv1alpha1.ConditionType = "MetricsSynced" // ExperimentConditionExperimentCompleted has status True when the experiment is completed ExperimentConditionExperimentCompleted duckv1alpha1.ConditionType = "ExperimentCompleted" // ExperimentConditionExperimentSucceeded has status True when the experiment is succeeded ExperimentConditionExperimentSucceeded duckv1alpha1.ConditionType = "ExperimentSucceeded" // ExperimentConditionRoutingRulesReady has status True when routing rules are ready ExperimentConditionRoutingRulesReady duckv1alpha1.ConditionType = "RoutingRulesReady" )
const ( ReasonTargetsNotFound = "TargetsNotFound" ReasonTargetsFound = "TargetsFound" ReasonAnalyticsServiceError = "AnalyticsServiceError" ReasonAnalyticsServiceRunning = "AnalyticsServiceRunning" ReasonIterationUpdate = "IterationUpdate" ReasonIterationSucceeded = "IterationSucceeded" ReasonIterationFailed = "IterationFailed " ReasonExperimentSucceeded = "ExperimentSucceeded" ReasonExperimentFailed = "ExperimentFailed" ReasonSyncMetricsError = "SyncMetricsError" ReasonSyncMetricsSucceeded = "SyncMetricsSucceeded" ReasonRoutingRulesError = "RoutingRulesError" ReasonRoutingRulesReady = "RoutingRulesReady" )
A set of reason setting the experiment condition status
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "iter8.tools", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} // AddToScheme is required by pkg/client/... AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource is required by pkg/client/listers/...
Types ¶
type Analysis ¶
type Analysis struct { // AnalyticsService endpoint AnalyticsService string `json:"analyticsService,omitempty"` // Grafana Dashboard endpoint GrafanaEndpoint string `json:"grafanaEndpoint,omitempty"` // List of criteria for assessing the candidate version SuccessCriteria []SuccessCriterion `json:"successCriteria,omitempty"` }
Analysis ...
func (*Analysis) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Analysis.
func (*Analysis) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Analysis) GetGrafanaEndpoint ¶
GetGrafanaEndpoint returns the grafana endpoint; Default is "http://localhost:3000".
func (*Analysis) GetServiceEndpoint ¶
GetServiceEndpoint returns the analytcis endpoint; Default is "http://iter8-analytics.iter8".
type AssessmentType ¶
type AssessmentType string
AssessmentType ...
const ( // AssessmentOverrideSuccess indicates that the experiment should be forced to a successful termination AssessmentOverrideSuccess AssessmentType = "override_success" // AssessmentOverrideFailure indicates that the experiment should be forced to a failed termination AssessmentOverrideFailure AssessmentType = "override_failure" // AssessmentNull indicates that the experiment should be progress normally AssessmentNull AssessmentType = "" )
type CleanUpType ¶
type CleanUpType string
CleanUpType ...
const ( // CleanUpDelete indicates unused deployment should be removed on experiment completion CleanUpDelete CleanUpType = "delete" // CleanUpNull indicates no action should ne taken on experiment completion CleanUpNull CleanUpType = "" )
type Experiment ¶
type Experiment struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ExperimentSpec `json:"spec,omitempty"` Status ExperimentStatus `json:"status,omitempty"` Metrics ExperimentMetrics `json:"metrics,omitempty"` }
Experiment is the Schema for the experiments API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:categories=all,iter8 +kubebuilder:printcolumn:name="phase",type="string",JSONPath=".status.phase",description="Phase of the experiment",format="byte" +kubebuilder:printcolumn:name="status",type="string",JSONPath=".status.message",description="Detailed Status of the experiment",format="byte" +kubebuilder:printcolumn:name="baseline",type="string",JSONPath=".spec.targetService.baseline",description="Name of baseline",format="byte" +kubebuilder:printcolumn:name="percentage",type="integer",JSONPath=".status.trafficSplitPercentage.baseline",description="Traffic percentage for baseline",format="int32" +kubebuilder:printcolumn:name="candidate",type="string",JSONPath=".spec.targetService.candidate",description="Name of candidate",format="byte" +kubebuilder:printcolumn:name="percentage",type="integer",JSONPath=".status.trafficSplitPercentage.candidate",description="Traffic percentage for candidate",format="int32"
func (*Experiment) DeepCopy ¶
func (in *Experiment) DeepCopy() *Experiment
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Experiment.
func (*Experiment) DeepCopyInto ¶
func (in *Experiment) DeepCopyInto(out *Experiment)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Experiment) DeepCopyObject ¶
func (in *Experiment) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Experiment) GetStrategy ¶
func (e *Experiment) GetStrategy() string
GetStrategy returns the actual strategy of the experiment
func (*Experiment) Succeeded ¶
func (e *Experiment) Succeeded() bool
Succeeded determines whether experiment is a success or not
type ExperimentList ¶
type ExperimentList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Experiment `json:"items"` }
ExperimentList contains a list of Experiment +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*ExperimentList) DeepCopy ¶
func (in *ExperimentList) DeepCopy() *ExperimentList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentList.
func (*ExperimentList) DeepCopyInto ¶
func (in *ExperimentList) DeepCopyInto(out *ExperimentList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ExperimentList) DeepCopyObject ¶
func (in *ExperimentList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ExperimentMetric ¶
type ExperimentMetric struct { // QueryTemplate is the query template for metric QueryTemplate string `json:"query_template"` // SampleSizeTemplate is the query template for sample size SampleSizeTemplate string `json:"sample_size_template"` // IsCounter indicates metric is a monotonically increasing counter IsCounter bool `json:"is_counter"` // AbsentValue is default value when data source does not provide a value AbsentValue string `json:"absent_value"` }
ExperimentMetric stores details of a metric query template to
func (*ExperimentMetric) DeepCopy ¶
func (in *ExperimentMetric) DeepCopy() *ExperimentMetric
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentMetric.
func (*ExperimentMetric) DeepCopyInto ¶
func (in *ExperimentMetric) DeepCopyInto(out *ExperimentMetric)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExperimentMetrics ¶
type ExperimentMetrics map[string]ExperimentMetric
ExperimentMetrics is a map from metric name to metric definition
func (ExperimentMetrics) DeepCopy ¶
func (in ExperimentMetrics) DeepCopy() ExperimentMetrics
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentMetrics.
func (ExperimentMetrics) DeepCopyInto ¶
func (in ExperimentMetrics) DeepCopyInto(out *ExperimentMetrics)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExperimentSpec ¶
type ExperimentSpec struct { // TargetService is a reference to an object to use as target service TargetService TargetService `json:"targetService"` // TrafficControl defines parameters for controlling the traffic // +optional TrafficControl TrafficControl `json:"trafficControl,omitempty"` // Analysis parameters // +optional Analysis Analysis `json:"analysis,omitempty"` // Assessment is a flag to terminate experiment with action // +optional. //+kubebuilder:validation:Enum={override_success,override_failure} Assessment AssessmentType `json:"assessment,omitempty"` // CleanUp is a flag to determine the action to take at the end of experiment // +optional. //+kubebuilder:validation:Enum=delete CleanUp CleanUpType `json:"cleanup,omitempty"` // RoutingReference provides references to routing rules set by users // +optional RoutingReference *corev1.ObjectReference `json:"routingReference,omitempty"` }
ExperimentSpec defines the desired state of Experiment
func (*ExperimentSpec) DeepCopy ¶
func (in *ExperimentSpec) DeepCopy() *ExperimentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentSpec.
func (*ExperimentSpec) DeepCopyInto ¶
func (in *ExperimentSpec) DeepCopyInto(out *ExperimentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExperimentStatus ¶
type ExperimentStatus struct { // inherits duck/v1alpha1 Status, which currently provides: // * ObservedGeneration - the 'Generation' of the Service that was last processed by the controller. // * Conditions - the latest available observations of a resource's current state. duckv1alpha1.Status `json:",inline"` // StartTimestamp is the timestamp when the experiment starts StartTimestamp string `json:"startTimestamp,omitempty"` // EndTimestamp is the timestamp when experiment completes EndTimestamp string `json:"endTimestamp,omitempty"` // LastIncrementTime is the last time the traffic has been incremented LastIncrementTime metav1.Time `json:"lastIncrementTime,omitempty"` // CurrentIteration is the current iteration number CurrentIteration int `json:"currentIteration,omitempty"` // AnalysisState is the last analysis state AnalysisState runtime.RawExtension `json:"analysisState,omitempty"` // GrafanaURL is the url to the Grafana Dashboard GrafanaURL string `json:"grafanaURL,omitempty"` // AssessmentSummary returned by the last analyis AssessmentSummary Summary `json:"assessment,omitempty"` // TrafficSplit tells the current traffic spliting between baseline and candidate TrafficSplit TrafficSplit `json:"trafficSplitPercentage,omitempty"` // Phase marks the Phase the experiment is at Phase Phase `json:"phase,omitempty"` // Message specifies message to show in the kubectl printer Message string `json:"message,omitempty"` }
ExperimentStatus defines the observed state of Experiment
func (*ExperimentStatus) DeepCopy ¶
func (in *ExperimentStatus) DeepCopy() *ExperimentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentStatus.
func (*ExperimentStatus) DeepCopyInto ¶
func (in *ExperimentStatus) DeepCopyInto(out *ExperimentStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ExperimentStatus) InitializeConditions ¶
func (s *ExperimentStatus) InitializeConditions()
InitializeConditions sets relevant unset conditions to Unknown state.
func (*ExperimentStatus) MarkAnalyticsServiceError ¶
func (s *ExperimentStatus) MarkAnalyticsServiceError(reason, messageFormat string, messageA ...interface{}) bool
MarkAnalyticsServiceError sets the condition that the analytics service breaks down Return true if it's converted from true or unknown
func (*ExperimentStatus) MarkAnalyticsServiceRunning ¶
func (s *ExperimentStatus) MarkAnalyticsServiceRunning() bool
MarkAnalyticsServiceRunning sets the condition that the analytics service is operating normally Return true if it's converted from false or unknown
func (*ExperimentStatus) MarkExperimentCompleted ¶
func (s *ExperimentStatus) MarkExperimentCompleted()
MarkExperimentCompleted sets the condition that the experiemnt is completed
func (*ExperimentStatus) MarkExperimentFailed ¶
func (s *ExperimentStatus) MarkExperimentFailed(reason, messageFormat string, messageA ...interface{})
MarkExperimentFailed sets the condition that the experiemnt is ongoing
func (*ExperimentStatus) MarkExperimentNotCompleted ¶
func (s *ExperimentStatus) MarkExperimentNotCompleted(reason, messageFormat string, messageA ...interface{})
MarkExperimentNotCompleted sets the condition that the experiemnt is ongoing
func (*ExperimentStatus) MarkExperimentSucceeded ¶
func (s *ExperimentStatus) MarkExperimentSucceeded(reason, messageFormat string, messageA ...interface{})
MarkExperimentSucceeded sets the condition that the experiemnt is completed
func (*ExperimentStatus) MarkMetricsSynced ¶
func (s *ExperimentStatus) MarkMetricsSynced() bool
MarkMetricsSynced sets the condition that the metrics are synced with config map Return true if it's converted from false or unknown
func (*ExperimentStatus) MarkMetricsSyncedError ¶
func (s *ExperimentStatus) MarkMetricsSyncedError(reason, messageFormat string, messageA ...interface{}) bool
MarkMetricsSyncedError sets the condition that the error occurs when syncing with the config map Return true if it's converted from true or unknown
func (*ExperimentStatus) MarkRoutingRulesError ¶
func (s *ExperimentStatus) MarkRoutingRulesError(reason, messageFormat string, messageA ...interface{}) bool
MarkRoutingRulesError sets the condition that the routing rules are not ready Return true if it's converted from true or unknown
func (*ExperimentStatus) MarkRoutingRulesReady ¶
func (s *ExperimentStatus) MarkRoutingRulesReady() bool
MarkRoutingRulesReady sets the condition that the routing rules are ready Return true if it's converted from false or unknown
func (*ExperimentStatus) MarkTargetsError ¶
func (s *ExperimentStatus) MarkTargetsError(reason, messageFormat string, messageA ...interface{}) bool
MarkTargetsError sets the condition that the target service hasn't been found. Return true if it's converted from true or unknown
func (*ExperimentStatus) MarkTargetsFound ¶
func (s *ExperimentStatus) MarkTargetsFound() bool
MarkTargetsFound sets the condition that the all target have been found Return true if it's converted from false or unknown
type MinMax ¶
type MinMax struct { // Min minimum value of the metric Min float64 `json:"min"` //Max maximum value of the metric Max float64 `json:"max"` }
MinMax captures minimum and maximum values of the metric
func (*MinMax) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MinMax.
func (*MinMax) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Phase ¶
type Phase string
Phase the experiment is in
const ( // PhaseInitializing indicates experiment is intializing PhaseInitializing Phase = "Initializing" // PhasePause indicates experiment is paused PhasePause Phase = "Pause" // PhaseProgressing indicates experiment is progressing PhaseProgressing Phase = "Progressing" // PhaseCompleted indicates experiment has competed (successfully or not) PhaseCompleted Phase = "Completed" )
type SuccessCriterion ¶
type SuccessCriterion struct { // Name of the metric to which the criterion applies. Options: MetricName string `json:"metricName"` // Tolerance type. Options: // "delta": compares the candidate against the baseline version with respect to the metric; // "threshold": checks the candidate with respect to the metric //+kubebuilder:validation:Enum={threshold,delta} ToleranceType ToleranceType `json:"toleranceType"` // Value to check Tolerance float64 `json:"tolerance"` // Minimum number of data points required to make a decision based on this criterion; // If not specified, the default value is 10 // +optional SampleSize *int `json:"sampleSize,omitempty"` // Minimum and maximum values of the metric MinMax *MinMax `json:"min_max,omitempty"` // Indicates whether or not the experiment must finish if this criterion is not satisfied; // defaults to false // +optional StopOnFailure *bool `json:"stopOnFailure,omitempty"` }
SuccessCriterion specifies the criteria for an experiment to succeed
func (*SuccessCriterion) DeepCopy ¶
func (in *SuccessCriterion) DeepCopy() *SuccessCriterion
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SuccessCriterion.
func (*SuccessCriterion) DeepCopyInto ¶
func (in *SuccessCriterion) DeepCopyInto(out *SuccessCriterion)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SuccessCriterion) GetSampleSize ¶
func (s *SuccessCriterion) GetSampleSize() int
GetSampleSize returns the sample size for analytics in each iteration; Default is 10.
func (*SuccessCriterion) GetStopOnFailure ¶
func (s *SuccessCriterion) GetStopOnFailure() bool
GetStopOnFailure returns the sample size for analytics in each iteration; Default is false.
type Summary ¶
type Summary struct { // Overall summary based on all success criteria Conclusions []string `json:"conclusions,omitempty"` // Indicates whether or not all success criteria for assessing the candidate version // have been met AllSuccessCriteriaMet bool `json:"all_success_criteria_met,omitempty"` // Indicates whether or not the experiment must be aborted based on the success criteria AbortExperiment bool `json:"abort_experiment,omitempty"` }
Summary ...
func (*Summary) Assessment2String ¶
func (*Summary) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Summary.
func (*Summary) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetService ¶
type TargetService struct { // defines the characteristics of the service *corev1.ObjectReference `json:",inline"` // Baseline tells the name of baseline Baseline string `json:"baseline,omitempty"` // Candidate tells the name of candidate Candidate string `json:"candidate,omitempty"` }
TargetService defines what to watch in the controller
func (*TargetService) DeepCopy ¶
func (in *TargetService) DeepCopy() *TargetService
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetService.
func (*TargetService) DeepCopyInto ¶
func (in *TargetService) DeepCopyInto(out *TargetService)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ToleranceType ¶
type ToleranceType string
const ( // ToleranceTypeDelta constant string for tolerances of type "delta" ToleranceTypeDelta ToleranceType = "delta" // ToleranceTypeThreshold constant string for tolerances of type "threshhold" ToleranceTypeThreshold ToleranceType = "threshold" )
type TrafficControl ¶
type TrafficControl struct { // Strategy is the strategy used for experiment. Options: // "check_and_increment": get decision on traffic increament from analytics // "increment_without_check": increase traffic each interval without calling analytics // +optional. Default is "check_and_increment". //+kubebuilder:validation:Enum={check_and_increment,increment_without_check,epsilon_greedy,posterior_bayesian_routing,optimistic_bayesian_routing} Strategy *string `json:"strategy,omitempty"` // MaxTrafficPercentage is the maximum traffic ratio to send to the candidate. Default is 50 // +optional MaxTrafficPercentage *float64 `json:"maxTrafficPercentage,omitempty"` // TrafficStepSize is the traffic increment per interval. Default is 2.0 // +optional TrafficStepSize *float64 `json:"trafficStepSize,omitempty"` // Interval is the time in second before the next increment. Default is 1mn // +optional Interval *string `json:"interval,omitempty"` // Maximum number of iterations for this experiment. Default to 100. // +optional MaxIterations *int `json:"maxIterations,omitempty"` // Determines how the traffic must be split at the end of the experiment; options: // "baseline": all traffic goes to the baseline version; // "candidate": all traffic goes to the candidate version; // "both": traffic is split across baseline and candidate. // Defaults to “candidate” // +optional //+kubebuilder:validation:Enum={baseline,candidate,both} OnSuccess *string `json:"onSuccess,omitempty"` // Confidence *float64 `json:"confidence,omitempty"` }
TrafficControl specifies how/when traffic between versioins should be altered
func (*TrafficControl) DeepCopy ¶
func (in *TrafficControl) DeepCopy() *TrafficControl
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrafficControl.
func (*TrafficControl) DeepCopyInto ¶
func (in *TrafficControl) DeepCopyInto(out *TrafficControl)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TrafficControl) GetConfidence ¶
func (t *TrafficControl) GetConfidence() float64
GetConfidence retrieves the desired probability that all the success criteria are met
func (*TrafficControl) GetInterval ¶
func (t *TrafficControl) GetInterval() string
GetInterval gets the specified interval or the default value (1m)
func (*TrafficControl) GetIntervalDuration ¶
func (t *TrafficControl) GetIntervalDuration() (time.Duration, error)
GetIntervalDuration gets the specified interval or the default value (1mn)
func (*TrafficControl) GetMaxIterations ¶
func (t *TrafficControl) GetMaxIterations() int
GetMaxIterations gets the number of iterations or the default value (100)
func (*TrafficControl) GetMaxTrafficPercentage ¶
func (t *TrafficControl) GetMaxTrafficPercentage() float64
GetMaxTrafficPercentage gets the specified max traffic percent or the default value (50)
func (*TrafficControl) GetOnSuccess ¶
func (t *TrafficControl) GetOnSuccess() string
GetOnSuccess describes how the traffic must be split at the end of the experiment; Default is "candidate"
func (*TrafficControl) GetStepSize ¶
func (t *TrafficControl) GetStepSize() float64
GetStepSize gets the specified step size or the default value (2%)
func (*TrafficControl) GetStrategy ¶
func (t *TrafficControl) GetStrategy() string
GetStrategy gets the strategy used for traffic control. Default is "check_and_increment".
type TrafficSplit ¶
TrafficSplit specifies percentage of traffic to baseline vs candidate
func (*TrafficSplit) DeepCopy ¶
func (in *TrafficSplit) DeepCopy() *TrafficSplit
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrafficSplit.
func (*TrafficSplit) DeepCopyInto ¶
func (in *TrafficSplit) DeepCopyInto(out *TrafficSplit)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.