ingestion

package
v0.0.0-...-d72fac8 Latest Latest
Warning

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

Go to latest
Published: Nov 28, 2024 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const ChunkSize = 1000

ChunkSize is the number of test failures that are to appear in each chunk.

Variables

This section is empty.

Functions

This section is empty.

Types

type ChunkStore

type ChunkStore interface {
	// Put saves the given chunk to storage. If successful, it returns
	// the randomly-assigned ID of the created object.
	Put(ctx context.Context, project string, content *cpb.Chunk) (string, error)
}

ChunkStore is the interface for the blob store archiving chunks of test results for later re-clustering.

type Ingester

type Ingester struct {
	// contains filtered or unexported fields
}

Ingester handles the ingestion of test results for clustering.

func New

New initialises a new Ingester.

func (*Ingester) Ingest

func (i *Ingester) Ingest(ctx context.Context, opts Options, tvs []TestVerdict) error

Ingest performs the ingestion of the specified test variants, with the specified options.

type Ingestion

type Ingestion struct {
	// contains filtered or unexported fields
}

Ingestion handles the ingestion of a single invocation for clustering, in a streaming fashion.

type Options

type Options struct {
	// The task index identifying the unique partition of the invocation
	// being ingested.
	TaskIndex int64
	// Project is the LUCI Project.
	Project string
	// PartitionTime is the start of the retention period of test results
	// being ingested.
	PartitionTime time.Time
	// Realm is the LUCI Realm of the test results.
	Realm string
	// InvocationID is the identity of the invocation being ingested.
	InvocationID string
	// The presubmit run (if any).
	PresubmitRun *PresubmitRun
	// The result of the build that was ingested.
	BuildStatus pb.BuildStatus
	// Whether the build was critical to the presubmit run.
	// Ignored if PresubmitRun is nil.
	BuildCritical bool
	// The gardener rotations the build is a part of. Corresponds to the
	// `sheriff_rotations` field of the build input properties.
	BuildGardenerRotations []string
	// Whether LUCI Analysis should preferentially ingest buganizer component
	// data instead of monorail, if both are available.
	// TODO(b/320356457): Delete once chromium buganizer migration complete.
	PreferBuganizerComponents bool
}

Options represents parameters to the ingestion.

type PresubmitRun

type PresubmitRun struct {
	// ID is the identity of the presubmit run (if any).
	ID *pb.PresubmitRunId
	// Owner is the owner of the presubmit
	// run (if any). This is the owner of the CL on which CQ+1/CQ+2 was
	// clicked (even in case of presubmit run with multiple CLs).
	Owner string
	// The mode of the presubmit run.
	// E.g. DRY_RUN, FULL_RUN, QUICK_DRY_RUN.
	Mode pb.PresubmitRunMode
	// The presubmit run's ending status.
	Status pb.PresubmitRunStatus
}

type TestVerdict

type TestVerdict struct {
	// Verdict is the ResultDB test verdict.
	Verdict *rdbpb.TestVariant
	// Sources are the code source(s) tested by the verdict. Note
	// that this may vary from verdict to verdict within an invocation.
	// May be unset if sources are unavailable.
	Sources *pb.Sources
	// TestVariantBranch captures statistics about the (test, variant, branch)
	// 3-tuple from which the verdict was obtained.
	// May be unset if sources are unavailable.
	TestVariantBranch *cpb.TestVariantBranch
}

Jump to

Keyboard shortcuts

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