Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ResultRow ¶
type ResultRow struct { // ExperimentID is a string representation of a UUID. ExperimentID string `bigquery:"experiment_id"` Timestamp time.Time `bigquery:"timestamp"` Name string `bigquery:"name"` Value float64 `bigquery:"value"` // JSON encoded map[string]string of tags. Tags string `bigquery:"tags"` }
ResultRow represents a single datapoint for a single metric, to be stored in bigquery. Each result row is associated to a particular run of an experiment (via ExperimentID).
type Runner ¶
type Runner struct {
// contains filtered or unexported fields
}
Runner is responsible for running experiments using the ClusterProvider to get a cluster for the experiment.
func NewRunner ¶
func NewRunner(c cluster.Provider, pxCtx *pixie.Context, resultTable *bq.Table, specTable *bq.Table, containerRegistryRepo string) *Runner
NewRunner creates a new Runner for the given contexts.
func (*Runner) RunExperiment ¶
func (r *Runner) RunExperiment(ctx context.Context, expID uuid.UUID, spec *experimentpb.ExperimentSpec) error
RunExperiment runs an experiment according to the given ExperimentSpec.
type SpecRow ¶
type SpecRow struct { // ExperimentID is a string representation of a experiment UUID. ExperimentID string `bigquery:"experiment_id"` // Spec is a json encoded `experimentpb.ExperimentSpec` Spec string `bigquery:"spec"` // CommitTopoOrder is the number of commits since the beginning of history for the commit this experiment was run on. // This is used to order experiments in datastudio views. CommitTopoOrder int `bigquery:"commit_topo_order"` }
SpecRow stores an experiments ExperimentSpec in bigquery, encoded as JSON. SpecRows are only written to bigquery on experiment success, so all results from failed attempts can be ignored by joining on the ExperimentID