configpb

package
v0.0.0-...-b314878 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	BugSystem_name = map[int32]string{
		0: "BUG_SYSTEM_UNSPECIFIED",
		1: "MONORAIL",
		2: "BUGANIZER",
	}
	BugSystem_value = map[string]int32{
		"BUG_SYSTEM_UNSPECIFIED": 0,
		"MONORAIL":               1,
		"BUGANIZER":              2,
	}
)

Enum value maps for BugSystem.

View Source
var (
	BuganizerPriority_name = map[int32]string{
		0: "BUGANIZER_PRIORITY_UNSPECIFIED",
		1: "P0",
		2: "P1",
		3: "P2",
		4: "P3",
		5: "P4",
	}
	BuganizerPriority_value = map[string]int32{
		"BUGANIZER_PRIORITY_UNSPECIFIED": 0,
		"P0":                             1,
		"P1":                             2,
		"P2":                             3,
		"P3":                             4,
		"P4":                             5,
	}
)

Enum value maps for BuganizerPriority.

View Source
var File_go_chromium_org_luci_analysis_proto_config_config_proto protoreflect.FileDescriptor
View Source
var File_go_chromium_org_luci_analysis_proto_config_project_config_proto protoreflect.FileDescriptor
View Source
var File_go_chromium_org_luci_analysis_proto_config_test_variant_analysis_config_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type BigQueryExport

type BigQueryExport struct {

	// The BigQuery table the analyzed test variants should be exported to.
	//
	// LUCI Analysis will use the project-scoped service account when exporting
	// the data.
	// The project-scoped service account MUST have permissions to create the
	// table in the dataset and insert rows to the table, e.g. WRITER role.
	Table *BigQueryExport_BigQueryTable `protobuf:"bytes,1,opt,name=table,proto3" json:"table,omitempty"`
	// Use predicate to query test variants that should be exported to
	// BigQuery table.
	Predicate *analyzedtestvariant.Predicate `protobuf:"bytes,2,opt,name=predicate,proto3" json:"predicate,omitempty"`
	// contains filtered or unexported fields
}

Configurations for BigQuery export. Deprecated, retained for config compatibility only. Can be deleted once chromium/chrome-m120 and all earlier versions have their LUCI config deleted.

func (*BigQueryExport) Descriptor deprecated

func (*BigQueryExport) Descriptor() ([]byte, []int)

Deprecated: Use BigQueryExport.ProtoReflect.Descriptor instead.

func (*BigQueryExport) GetPredicate

func (x *BigQueryExport) GetPredicate() *analyzedtestvariant.Predicate

func (*BigQueryExport) GetTable

func (*BigQueryExport) ProtoMessage

func (*BigQueryExport) ProtoMessage()

func (*BigQueryExport) ProtoReflect

func (x *BigQueryExport) ProtoReflect() protoreflect.Message

func (*BigQueryExport) Reset

func (x *BigQueryExport) Reset()

func (*BigQueryExport) String

func (x *BigQueryExport) String() string

type BigQueryExport_BigQueryTable

type BigQueryExport_BigQueryTable struct {
	CloudProject string `protobuf:"bytes,1,opt,name=cloud_project,json=cloudProject,proto3" json:"cloud_project,omitempty"`
	Dataset      string `protobuf:"bytes,2,opt,name=dataset,proto3" json:"dataset,omitempty"`
	Table        string `protobuf:"bytes,3,opt,name=table,proto3" json:"table,omitempty"`
	// contains filtered or unexported fields
}

func (*BigQueryExport_BigQueryTable) Descriptor deprecated

func (*BigQueryExport_BigQueryTable) Descriptor() ([]byte, []int)

Deprecated: Use BigQueryExport_BigQueryTable.ProtoReflect.Descriptor instead.

func (*BigQueryExport_BigQueryTable) GetCloudProject

func (x *BigQueryExport_BigQueryTable) GetCloudProject() string

func (*BigQueryExport_BigQueryTable) GetDataset

func (x *BigQueryExport_BigQueryTable) GetDataset() string

func (*BigQueryExport_BigQueryTable) GetTable

func (x *BigQueryExport_BigQueryTable) GetTable() string

func (*BigQueryExport_BigQueryTable) ProtoMessage

func (*BigQueryExport_BigQueryTable) ProtoMessage()

func (*BigQueryExport_BigQueryTable) ProtoReflect

func (*BigQueryExport_BigQueryTable) Reset

func (x *BigQueryExport_BigQueryTable) Reset()

func (*BigQueryExport_BigQueryTable) String

type BugManagement

type BugManagement struct {

	// Disables creation of comments on bugs when LUCI Analysis successfully
	// handles duplicate bugs by merging/updating failure association rules.
	//
	// This setting does not prevent the creation of comments in response
	// to errors handling duplicate bugs.
	DisableDuplicateBugComments bool `` /* 147-byte string literal not displayed */
	// The set of policies which control the (re-)opening, closure and
	// prioritization of bugs under the control of LUCI Analysis.
	Policies []*BugManagementPolicy `protobuf:"bytes,2,rep,name=policies,proto3" json:"policies,omitempty"`
	// The default bug system to route new bugs to, when the bug system and
	// component could not be automatically detected from a test metadata.
	DefaultBugSystem BugSystem `` /* 148-byte string literal not displayed */
	// Buganizer-specific bug filing configuration.
	Buganizer *BuganizerProject `protobuf:"bytes,4,opt,name=buganizer,proto3" json:"buganizer,omitempty"`
	// Monorail-specific bug filing configuration.
	Monorail *MonorailProject `protobuf:"bytes,5,opt,name=monorail,proto3" json:"monorail,omitempty"`
	// contains filtered or unexported fields
}

Settings related to bug management.

func (*BugManagement) Descriptor deprecated

func (*BugManagement) Descriptor() ([]byte, []int)

Deprecated: Use BugManagement.ProtoReflect.Descriptor instead.

func (*BugManagement) GetBuganizer

func (x *BugManagement) GetBuganizer() *BuganizerProject

func (*BugManagement) GetDefaultBugSystem

func (x *BugManagement) GetDefaultBugSystem() BugSystem

func (*BugManagement) GetDisableDuplicateBugComments

func (x *BugManagement) GetDisableDuplicateBugComments() bool

func (*BugManagement) GetMonorail

func (x *BugManagement) GetMonorail() *MonorailProject

func (*BugManagement) GetPolicies

func (x *BugManagement) GetPolicies() []*BugManagementPolicy

func (*BugManagement) ProtoMessage

func (*BugManagement) ProtoMessage()

func (*BugManagement) ProtoReflect

func (x *BugManagement) ProtoReflect() protoreflect.Message

func (*BugManagement) Reset

func (x *BugManagement) Reset()

func (*BugManagement) String

func (x *BugManagement) String() string

type BugManagementPolicy

type BugManagementPolicy struct {

	// A unique identifier for the bug management policy.
	//
	// Policies are stateful in that LUCI Analysis tracks which bugs have met the
	// activation condition on the policy (and not since met the deactivation
	// condition).
	//
	// Changing this value changes the identity of the policy and hence results in
	// the activation state for the policy being lost for all bugs.
	//
	// Valid syntax: ^[a-z]([a-z0-9-]{0,62}[a-z0-9])?$. (Syntax designed to comply
	// with google.aip.dev/122 for resource IDs.)
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// The owners of the policy, who can be contacted if there are issues/concerns
	// about the policy. Each item in the list should be an @google.com email
	// address. At least one owner (preferably a group) is required.
	Owners []string `protobuf:"bytes,2,rep,name=owners,proto3" json:"owners,omitempty"`
	// A short one-line description for the problem the policy identifies, which
	// will appear on the UI and in bugs comments. This is a sentence fragment
	// and not a sentence, so please do NOT include a full stop and or starting
	// capital letter.
	//
	// For example, "test variant(s) are being exonerated in presubmit".
	HumanReadableName string `protobuf:"bytes,3,opt,name=human_readable_name,json=humanReadableName,proto3" json:"human_readable_name,omitempty"`
	// The priority of the problem this policy defines.
	//
	// If:
	//   - the priority of the bug associated with a rule
	//     differs from this priority, and
	//   - the policy is activate on the rule (see `metrics`), and
	//   - LUCI Analysis is controlling the priority of the bug
	//     (the "Update bug priority" switch on the rule is enabled),
	//
	// the priority of the bug will be updated to match this priority.
	//
	// Where are there multiple policies active on the same rule,
	// the highest priority (of all active policies) will be used.
	//
	// For monorail projects, the buganizer priority will be converted to the
	// equivalent monorail priority (P0 is converted to Pri-0, P1 to Pri-1,
	// P2 to Pri-2, etc.) until monorail is turned down.
	Priority BuganizerPriority `protobuf:"varint,4,opt,name=priority,proto3,enum=luci.analysis.config.BuganizerPriority" json:"priority,omitempty"`
	// The set of metrics which will control activation of the bug-filing policy.
	// If a policy activates on a suggested cluster, a new bug will be filed.
	// If a policy activates on an existing rule cluster, the bug will be
	// updated.
	//
	// The policy will activate if the activation threshold is met on *ANY*
	// metric, and will de-activate only if the deactivation threshold is met
	// on *ALL* metrics.
	//
	// Activation on suggested clusters will be based on the metric values after
	// excluding failures for which a bug has already been filed. This is to
	// avoid duplicate bug filing.
	Metrics []*BugManagementPolicy_Metric `protobuf:"bytes,5,rep,name=metrics,proto3" json:"metrics,omitempty"`
	// Expanatory text of the problem the policy identified, shown on the
	// user interface when the user requests more information. Required.
	Explanation *BugManagementPolicy_Explanation `protobuf:"bytes,6,opt,name=explanation,proto3" json:"explanation,omitempty"`
	// Settings which affect the contents of a bug for a policy has activated.
	BugTemplate *BugManagementPolicy_BugTemplate `protobuf:"bytes,7,opt,name=bug_template,json=bugTemplate,proto3" json:"bug_template,omitempty"`
	// contains filtered or unexported fields
}

A bug management policy in LUCI Analysis.

Bug management policies control when and how bugs are automatically opened, prioritised, and verified as fixed. Each policy has a user-visible identity in the UI and can post custom instructions on the bug.

LUCI Analysis avoids filing multiple bugs for the same failures by allowing multiple policies to activate on the same failure association rule. The bug associated with a rule will only be verified if all policies have de-activated.

func (*BugManagementPolicy) Descriptor deprecated

func (*BugManagementPolicy) Descriptor() ([]byte, []int)

Deprecated: Use BugManagementPolicy.ProtoReflect.Descriptor instead.

func (*BugManagementPolicy) GetBugTemplate

func (*BugManagementPolicy) GetExplanation

func (*BugManagementPolicy) GetHumanReadableName

func (x *BugManagementPolicy) GetHumanReadableName() string

func (*BugManagementPolicy) GetId

func (x *BugManagementPolicy) GetId() string

func (*BugManagementPolicy) GetMetrics

func (*BugManagementPolicy) GetOwners

func (x *BugManagementPolicy) GetOwners() []string

func (*BugManagementPolicy) GetPriority

func (x *BugManagementPolicy) GetPriority() BuganizerPriority

func (*BugManagementPolicy) ProtoMessage

func (*BugManagementPolicy) ProtoMessage()

func (*BugManagementPolicy) ProtoReflect

func (x *BugManagementPolicy) ProtoReflect() protoreflect.Message

func (*BugManagementPolicy) Reset

func (x *BugManagementPolicy) Reset()

func (*BugManagementPolicy) String

func (x *BugManagementPolicy) String() string

type BugManagementPolicy_BugTemplate

type BugManagementPolicy_BugTemplate struct {

	// Text to be included in the bug comment advising of the activation of the
	// the policy. Leave blank to post no comment.
	//
	// The text here will be interpreted as a template by the golang
	// template/text library (https://pkg.go.dev/text/template). The following
	// fields are available:
	//   - RuleURL (string): The URL of the rule page.
	//   - BugID (BugID): The system-specific bug identifier. This type
	//     exposes the following methods with no arguments:
	//   - IsBuganizer returns (bool) indicating if the bug is a buganizer bug.
	//   - IsMonorail returns (bool) indicating if the bug is a monorail bug.
	//   - MonorailProject returns (string, error) indicating the monorail
	//     project, if the bug is a monorail bug, and errors otherwise.
	//   - MonorailBugID returns (string, error) indicating the monorail
	//     bug ID, if the bug is a monorail bug, and errors otherwise.
	//   - BuganizerBugID returns (string, error) indicating the buganizer
	//     bug ID, if the bug is a buganizer bug, and errors otherwise.
	//
	// Model usage of BugID in a template:
	// “`
	// {{if .BugID.IsBuganizer}}Buganizer bug: {{.BugID.BuganizerBugID}}{{end}}
	// {{if .BugID.IsMonorail}}Monorail bug: {{.BugID.MonorailProject}}/{{.BugID.MonorailBugID}}{{end}}
	// “`
	//
	// As for functions, only the standard global functions are available, see:
	// https://pkg.go.dev/text/template#hdr-Functions
	CommentTemplate string `protobuf:"bytes,1,opt,name=comment_template,json=commentTemplate,proto3" json:"comment_template,omitempty"`
	// Bug content options that are specific to Google issue tracker (Buganizer).
	Buganizer *BugManagementPolicy_BugTemplate_Buganizer `protobuf:"bytes,2,opt,name=buganizer,proto3" json:"buganizer,omitempty"`
	// Bug content options that are specific to monorail.
	Monorail *BugManagementPolicy_BugTemplate_Monorail `protobuf:"bytes,3,opt,name=monorail,proto3" json:"monorail,omitempty"`
	// contains filtered or unexported fields
}

Settings which affect the contents of a bug for a policy has activated.

func (*BugManagementPolicy_BugTemplate) Descriptor deprecated

func (*BugManagementPolicy_BugTemplate) Descriptor() ([]byte, []int)

Deprecated: Use BugManagementPolicy_BugTemplate.ProtoReflect.Descriptor instead.

func (*BugManagementPolicy_BugTemplate) GetBuganizer

func (*BugManagementPolicy_BugTemplate) GetCommentTemplate

func (x *BugManagementPolicy_BugTemplate) GetCommentTemplate() string

func (*BugManagementPolicy_BugTemplate) GetMonorail

func (*BugManagementPolicy_BugTemplate) ProtoMessage

func (*BugManagementPolicy_BugTemplate) ProtoMessage()

func (*BugManagementPolicy_BugTemplate) ProtoReflect

func (*BugManagementPolicy_BugTemplate) Reset

func (*BugManagementPolicy_BugTemplate) String

type BugManagementPolicy_BugTemplate_Buganizer

type BugManagementPolicy_BugTemplate_Buganizer struct {

	// The numeric ID of the buganizer hotlist to add the issue to. Optional.
	// The bug is added to the hostlist when the policy transitions to
	// activated. The issue is not removed from the hotlist if the policy is
	// deactivated, to avoid excessive bug updates.
	Hotlists []int64 `protobuf:"varint,1,rep,packed,name=hotlists,proto3" json:"hotlists,omitempty"`
	// contains filtered or unexported fields
}

Policy configuration that is specific to Google issue tracker (Buganizer).

func (*BugManagementPolicy_BugTemplate_Buganizer) Descriptor deprecated

func (*BugManagementPolicy_BugTemplate_Buganizer) Descriptor() ([]byte, []int)

Deprecated: Use BugManagementPolicy_BugTemplate_Buganizer.ProtoReflect.Descriptor instead.

func (*BugManagementPolicy_BugTemplate_Buganizer) GetHotlists

func (*BugManagementPolicy_BugTemplate_Buganizer) ProtoMessage

func (*BugManagementPolicy_BugTemplate_Buganizer) ProtoReflect

func (*BugManagementPolicy_BugTemplate_Buganizer) Reset

func (*BugManagementPolicy_BugTemplate_Buganizer) String

type BugManagementPolicy_BugTemplate_Monorail

type BugManagementPolicy_BugTemplate_Monorail struct {

	// The labels to apply to the bug.
	Labels []string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty"`
	// contains filtered or unexported fields
}

Policy configuration that is specific to monorail issue tracker.

func (*BugManagementPolicy_BugTemplate_Monorail) Descriptor deprecated

func (*BugManagementPolicy_BugTemplate_Monorail) Descriptor() ([]byte, []int)

Deprecated: Use BugManagementPolicy_BugTemplate_Monorail.ProtoReflect.Descriptor instead.

func (*BugManagementPolicy_BugTemplate_Monorail) GetLabels

func (*BugManagementPolicy_BugTemplate_Monorail) ProtoMessage

func (*BugManagementPolicy_BugTemplate_Monorail) ProtoReflect

func (*BugManagementPolicy_BugTemplate_Monorail) Reset

func (*BugManagementPolicy_BugTemplate_Monorail) String

type BugManagementPolicy_Explanation

type BugManagementPolicy_Explanation struct {

	// A longer human-readable description of the problem this policy
	// has identified, in HTML.
	//
	// For example, "Test variant(s) in this cluster are being exonerated
	// (ignored) in presubmit because they are too flaky or failing. This
	// means they are no longer effective at preventing the breakage of
	// the functionality the test(s) cover.".
	//
	// MUST be sanitised by UI before rendering. Sanitisation is only
	// required to support simple uses of the following tags: ul, li, a.
	ProblemHtml string `protobuf:"bytes,1,opt,name=problem_html,json=problemHtml,proto3" json:"problem_html,omitempty"`
	// A description of how a human should go about trying to fix the
	// problem, in HTML.
	//
	// For example, "<ul>
	// <li>View recent failures</li>
	// <li><a href="http://goto.google.com/demote-from-cq">Demote</a> the test from CQ</li>
	// </ul>"
	//
	// MUST be sanitised by UI before rendering. Sanitisation is only
	// required to support simple uses of the following tags: ul, li, a.
	ActionHtml string `protobuf:"bytes,2,opt,name=action_html,json=actionHtml,proto3" json:"action_html,omitempty"`
	// contains filtered or unexported fields
}

Content displayed on the user interface, to explain the problem and guide a developer to fix it.

func (*BugManagementPolicy_Explanation) Descriptor deprecated

func (*BugManagementPolicy_Explanation) Descriptor() ([]byte, []int)

Deprecated: Use BugManagementPolicy_Explanation.ProtoReflect.Descriptor instead.

func (*BugManagementPolicy_Explanation) GetActionHtml

func (x *BugManagementPolicy_Explanation) GetActionHtml() string

func (*BugManagementPolicy_Explanation) GetProblemHtml

func (x *BugManagementPolicy_Explanation) GetProblemHtml() string

func (*BugManagementPolicy_Explanation) ProtoMessage

func (*BugManagementPolicy_Explanation) ProtoMessage()

func (*BugManagementPolicy_Explanation) ProtoReflect

func (*BugManagementPolicy_Explanation) Reset

func (*BugManagementPolicy_Explanation) String

type BugManagementPolicy_Metric

type BugManagementPolicy_Metric struct {

	// The identifier of the metric.
	//
	// Full list of available metrics here:
	// https://source.chromium.org/chromium/infra/infra/+/main:go/src/go.chromium.org/luci/analysis/internal/analysis/metrics/metrics.go
	MetricId string `protobuf:"bytes,1,opt,name=metric_id,json=metricId,proto3" json:"metric_id,omitempty"`
	// The level at which the policy activates. Activation occurs if the
	// cluster impact meets or exceeds this threshold.
	// MUST imply deactivation_threshold.
	ActivationThreshold *MetricThreshold `protobuf:"bytes,2,opt,name=activation_threshold,json=activationThreshold,proto3" json:"activation_threshold,omitempty"`
	// The minimum metric level at which the policy remains active.
	// Deactivation occcurs if the cluster impact is below the de-activation
	// threshold. Deactivation_threshold should be set significantly lower
	// than activation_threshold to prevent policies repeatedly activating
	// and deactivating due to noise in the data, e.g. less tests executed
	// on weekends.
	DeactivationThreshold *MetricThreshold `protobuf:"bytes,3,opt,name=deactivation_threshold,json=deactivationThreshold,proto3" json:"deactivation_threshold,omitempty"`
	// contains filtered or unexported fields
}

A metric used to control activation of a bug-filing policy.

func (*BugManagementPolicy_Metric) Descriptor deprecated

func (*BugManagementPolicy_Metric) Descriptor() ([]byte, []int)

Deprecated: Use BugManagementPolicy_Metric.ProtoReflect.Descriptor instead.

func (*BugManagementPolicy_Metric) GetActivationThreshold

func (x *BugManagementPolicy_Metric) GetActivationThreshold() *MetricThreshold

func (*BugManagementPolicy_Metric) GetDeactivationThreshold

func (x *BugManagementPolicy_Metric) GetDeactivationThreshold() *MetricThreshold

func (*BugManagementPolicy_Metric) GetMetricId

func (x *BugManagementPolicy_Metric) GetMetricId() string

func (*BugManagementPolicy_Metric) ProtoMessage

func (*BugManagementPolicy_Metric) ProtoMessage()

func (*BugManagementPolicy_Metric) ProtoReflect

func (*BugManagementPolicy_Metric) Reset

func (x *BugManagementPolicy_Metric) Reset()

func (*BugManagementPolicy_Metric) String

func (x *BugManagementPolicy_Metric) String() string

type BugManagementSystem

type BugManagementSystem struct {

	// Deprecated. No longer has any effect. Retained for textproto
	// compatibility only. Policy-based bug filing is now always enabled.
	PolicyBasedManagementEnabled bool `` /* 150-byte string literal not displayed */
	// contains filtered or unexported fields
}

BugManagementSystem controls system-level settings related to automatic bug management. For project-level clustering settings, see the `BugManagement` message instead.

func (*BugManagementSystem) Descriptor deprecated

func (*BugManagementSystem) Descriptor() ([]byte, []int)

Deprecated: Use BugManagementSystem.ProtoReflect.Descriptor instead.

func (*BugManagementSystem) GetPolicyBasedManagementEnabled

func (x *BugManagementSystem) GetPolicyBasedManagementEnabled() bool

func (*BugManagementSystem) ProtoMessage

func (*BugManagementSystem) ProtoMessage()

func (*BugManagementSystem) ProtoReflect

func (x *BugManagementSystem) ProtoReflect() protoreflect.Message

func (*BugManagementSystem) Reset

func (x *BugManagementSystem) Reset()

func (*BugManagementSystem) String

func (x *BugManagementSystem) String() string

type BugSystem

type BugSystem int32

An enum that represents the bug filing system that the project uses.

const (
	// An unspecified bug system, Do not use, this will
	// break LUCI Analysis bug filing functionality.
	BugSystem_BUG_SYSTEM_UNSPECIFIED BugSystem = 0
	// Use Monorail to file bugs.
	BugSystem_MONORAIL BugSystem = 1
	// Use Buganizer to file bugs.
	BugSystem_BUGANIZER BugSystem = 2
)

func (BugSystem) Descriptor

func (BugSystem) Descriptor() protoreflect.EnumDescriptor

func (BugSystem) Enum

func (x BugSystem) Enum() *BugSystem

func (BugSystem) EnumDescriptor deprecated

func (BugSystem) EnumDescriptor() ([]byte, []int)

Deprecated: Use BugSystem.Descriptor instead.

func (BugSystem) Number

func (x BugSystem) Number() protoreflect.EnumNumber

func (BugSystem) String

func (x BugSystem) String() string

func (BugSystem) Type

type BuganizerComponent

type BuganizerComponent struct {

	// The id of the component that we will use to file bugs in.
	Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

Defines the required details for a Buganizer component.

func (*BuganizerComponent) Descriptor deprecated

func (*BuganizerComponent) Descriptor() ([]byte, []int)

Deprecated: Use BuganizerComponent.ProtoReflect.Descriptor instead.

func (*BuganizerComponent) GetId

func (x *BuganizerComponent) GetId() int64

func (*BuganizerComponent) ProtoMessage

func (*BuganizerComponent) ProtoMessage()

func (*BuganizerComponent) ProtoReflect

func (x *BuganizerComponent) ProtoReflect() protoreflect.Message

func (*BuganizerComponent) Reset

func (x *BuganizerComponent) Reset()

func (*BuganizerComponent) String

func (x *BuganizerComponent) String() string

type BuganizerPriority

type BuganizerPriority int32

This enum represents the Buganizer priorities. It is equivalent to the one in Buganizer API.

const (
	// Priority unspecified, Do not use this value.
	BuganizerPriority_BUGANIZER_PRIORITY_UNSPECIFIED BuganizerPriority = 0
	// P0, Highest priority.
	BuganizerPriority_P0 BuganizerPriority = 1
	BuganizerPriority_P1 BuganizerPriority = 2
	BuganizerPriority_P2 BuganizerPriority = 3
	BuganizerPriority_P3 BuganizerPriority = 4
	BuganizerPriority_P4 BuganizerPriority = 5
)

func (BuganizerPriority) Descriptor

func (BuganizerPriority) Enum

func (BuganizerPriority) EnumDescriptor deprecated

func (BuganizerPriority) EnumDescriptor() ([]byte, []int)

Deprecated: Use BuganizerPriority.Descriptor instead.

func (BuganizerPriority) Number

func (BuganizerPriority) String

func (x BuganizerPriority) String() string

func (BuganizerPriority) Type

type BuganizerProject

type BuganizerProject struct {

	// The default Buganizer component.
	// This component will be used if we failed to find
	// a component for a cluster.
	DefaultComponent *BuganizerComponent `protobuf:"bytes,1,opt,name=default_component,json=defaultComponent,proto3" json:"default_component,omitempty"`
	// Deprecated. No longer has any effect. Retained for textproto
	// compatibility only.
	PriorityHysteresisPercent int64 `` /* 139-byte string literal not displayed */
	// Deprecated. No longer has any effect. Retained for textproto
	// compatibility only. Use bug_management.policies instead.
	PriorityMappings []*BuganizerProject_PriorityMapping `protobuf:"bytes,3,rep,name=priority_mappings,json=priorityMappings,proto3" json:"priority_mappings,omitempty"`
	// Whether the LIMIT_VIEW_TRUSTED access level should be omitted
	// on new auto-filed bugs and LIMIT_NONE access level should be set.
	// This makes those bugs visible to all those who can see bugs
	// in a given component.
	FileWithoutLimitViewTrusted bool `` /* 149-byte string literal not displayed */
	// contains filtered or unexported fields
}

The Buganizer configuration, this should only be used when the bug tracking system ins Buganizer.

func (*BuganizerProject) Descriptor deprecated

func (*BuganizerProject) Descriptor() ([]byte, []int)

Deprecated: Use BuganizerProject.ProtoReflect.Descriptor instead.

func (*BuganizerProject) GetDefaultComponent

func (x *BuganizerProject) GetDefaultComponent() *BuganizerComponent

func (*BuganizerProject) GetFileWithoutLimitViewTrusted

func (x *BuganizerProject) GetFileWithoutLimitViewTrusted() bool

func (*BuganizerProject) GetPriorityHysteresisPercent

func (x *BuganizerProject) GetPriorityHysteresisPercent() int64

func (*BuganizerProject) GetPriorityMappings

func (x *BuganizerProject) GetPriorityMappings() []*BuganizerProject_PriorityMapping

func (*BuganizerProject) ProtoMessage

func (*BuganizerProject) ProtoMessage()

func (*BuganizerProject) ProtoReflect

func (x *BuganizerProject) ProtoReflect() protoreflect.Message

func (*BuganizerProject) Reset

func (x *BuganizerProject) Reset()

func (*BuganizerProject) String

func (x *BuganizerProject) String() string

type BuganizerProject_PriorityMapping

type BuganizerProject_PriorityMapping struct {
	Priority   BuganizerPriority        `protobuf:"varint,1,opt,name=priority,proto3,enum=luci.analysis.config.BuganizerPriority" json:"priority,omitempty"`
	Threshold  *ImpactThreshold         `protobuf:"bytes,2,opt,name=threshold,proto3" json:"threshold,omitempty"`
	Thresholds []*ImpactMetricThreshold `protobuf:"bytes,3,rep,name=thresholds,proto3" json:"thresholds,omitempty"`
	// contains filtered or unexported fields
}

Deprecated. No longer has any effect. Retained for textproto compatibility only.

func (*BuganizerProject_PriorityMapping) Descriptor deprecated

func (*BuganizerProject_PriorityMapping) Descriptor() ([]byte, []int)

Deprecated: Use BuganizerProject_PriorityMapping.ProtoReflect.Descriptor instead.

func (*BuganizerProject_PriorityMapping) GetPriority

func (*BuganizerProject_PriorityMapping) GetThreshold

func (*BuganizerProject_PriorityMapping) GetThresholds

func (*BuganizerProject_PriorityMapping) ProtoMessage

func (*BuganizerProject_PriorityMapping) ProtoMessage()

func (*BuganizerProject_PriorityMapping) ProtoReflect

func (*BuganizerProject_PriorityMapping) Reset

func (*BuganizerProject_PriorityMapping) String

type Clustering

type Clustering struct {

	// Rules used to cluster test results by test name.
	// The order of rules matters; the first matching rule will be used
	// to cluster a given test result.
	//
	// If no rule matches, the test results will be clustered on the
	// full test name. This corresponds approximately to the rule:
	//
	//	{
	//	  name: "Full test name"
	//	  pattern: "^(?P<testname>.*)$"
	//	  like_template: "${testname}"
	//	}
	TestNameRules []*TestNameClusteringRule `protobuf:"bytes,1,rep,name=test_name_rules,json=testNameRules,proto3" json:"test_name_rules,omitempty"`
	// Regular expressions used to mask out part of a failure reason
	// prior to clustering.
	//
	// The process of generating the clustering key is:
	//  1. All '%', '_' and '\' characters in the failure reason are
	//     escaped to generate a SQL LIKE expression that matches the
	//     failure reason literally.
	//  2. Regular expressions are run over the escaped failure reason
	//     one by one to identify parts of the failure reason to mask
	//     out (replace by a SQL LIKE wildcard match).
	//  3. The clustering key is used in the failure association rule
	//     of a newly field bug, or hashed to generate the clustering
	//     key.
	//
	// For regular expression run against the failure reason,
	// the part of the reason that matches the first (capturing)
	// subexpression is masked out in the reason cluster.
	// All non-overlapping matches are replaced.
	//
	// For example, given the masking expression:
	// "^\\[Fixture failure\\] (\\w+):"
	// The failure reason:
	// `[Fixture failure] myFixture: some_error`
	// will be escaped to (in step 1):
	// `[Fixture failure] myFixture: some\_error`
	// and will yield the following output after masking (step 2):
	// `[Fixture failure] %: some\_error`
	//
	// Masking expressions are applied in the order that they appear
	// in the list.
	ReasonMaskPatterns []string `protobuf:"bytes,2,rep,name=reason_mask_patterns,json=reasonMaskPatterns,proto3" json:"reason_mask_patterns,omitempty"`
	// contains filtered or unexported fields
}

Configuration for how test results are clustered.

func (*Clustering) Descriptor deprecated

func (*Clustering) Descriptor() ([]byte, []int)

Deprecated: Use Clustering.ProtoReflect.Descriptor instead.

func (*Clustering) GetReasonMaskPatterns

func (x *Clustering) GetReasonMaskPatterns() []string

func (*Clustering) GetTestNameRules

func (x *Clustering) GetTestNameRules() []*TestNameClusteringRule

func (*Clustering) ProtoMessage

func (*Clustering) ProtoMessage()

func (*Clustering) ProtoReflect

func (x *Clustering) ProtoReflect() protoreflect.Message

func (*Clustering) Reset

func (x *Clustering) Reset()

func (*Clustering) String

func (x *Clustering) String() string

type ClusteringSystem

type ClusteringSystem struct {

	// Controls whether test variant analysis may be queried when clustering
	// failures. If set, the test_variant_branch column will be populated
	// for clustered_failures rows in BigQuery, if the failures have source
	// position data.
	QueryTestVariantAnalysisEnabled bool `` /* 161-byte string literal not displayed */
	// contains filtered or unexported fields
}

ClusteringSystem controls system-level settings related to LUCI Analysis clustering. For project-level clustering settings, see the `Clustering` message instead.

func (*ClusteringSystem) Descriptor deprecated

func (*ClusteringSystem) Descriptor() ([]byte, []int)

Deprecated: Use ClusteringSystem.ProtoReflect.Descriptor instead.

func (*ClusteringSystem) GetQueryTestVariantAnalysisEnabled

func (x *ClusteringSystem) GetQueryTestVariantAnalysisEnabled() bool

func (*ClusteringSystem) ProtoMessage

func (*ClusteringSystem) ProtoMessage()

func (*ClusteringSystem) ProtoReflect

func (x *ClusteringSystem) ProtoReflect() protoreflect.Message

func (*ClusteringSystem) Reset

func (x *ClusteringSystem) Reset()

func (*ClusteringSystem) String

func (x *ClusteringSystem) String() string

type Config

type Config struct {

	// The endpoint for Monorail APIs.
	MonorailHostname string `protobuf:"bytes,1,opt,name=monorail_hostname,json=monorailHostname,proto3" json:"monorail_hostname,omitempty"`
	// The GCS bucket that chunk contents should be archived to.
	ChunkGcsBucket string `protobuf:"bytes,2,opt,name=chunk_gcs_bucket,json=chunkGcsBucket,proto3" json:"chunk_gcs_bucket,omitempty"`
	// The number of workers to use when re-clustering. Maximum value is 1000,
	// which is the default max_concurrent_requests on the reclustering queue:
	// https://cloud.google.com/appengine/docs/standard/go111/config/queueref.
	//
	// If this is unset or zero, re-clustering is disabled.
	ReclusteringWorkers int64 `protobuf:"varint,3,opt,name=reclustering_workers,json=reclusteringWorkers,proto3" json:"reclustering_workers,omitempty"`
	// Deprecated November 2022. Setting this has no effect. Field retained
	// to maintain backwards compatibility with old configuration files.
	ReclusteringIntervalMinutes int64 `` /* 145-byte string literal not displayed */
	// Controls whether LUCI Analysis will interact with bug-filing systems.
	// Can be used to stop LUCI Analysis auto-bug filing and updates in
	// response to a problem.
	BugUpdatesEnabled bool `protobuf:"varint,5,opt,name=bug_updates_enabled,json=bugUpdatesEnabled,proto3" json:"bug_updates_enabled,omitempty"`
	// Config related to test variant analysis.
	TestVariantAnalysis *TestVariantAnalysis `protobuf:"bytes,6,opt,name=test_variant_analysis,json=testVariantAnalysis,proto3" json:"test_variant_analysis,omitempty"`
	// Config related to ingestion.
	Ingestion *Ingestion `protobuf:"bytes,7,opt,name=ingestion,proto3" json:"ingestion,omitempty"`
	// Config to control the test verdict export.
	TestVerdictExport *TestVerdictExport `protobuf:"bytes,8,opt,name=test_verdict_export,json=testVerdictExport,proto3" json:"test_verdict_export,omitempty"`
	// Configuration related to failure clustering.
	Clustering *ClusteringSystem `protobuf:"bytes,9,opt,name=clustering,proto3" json:"clustering,omitempty"`
	// Configuration related to automatic bug management.
	BugManagement *BugManagementSystem `protobuf:"bytes,10,opt,name=bug_management,json=bugManagement,proto3" json:"bug_management,omitempty"`
	// contains filtered or unexported fields
}

Config is the service-wide configuration data for LUCI Analysis.

func (*Config) Descriptor deprecated

func (*Config) Descriptor() ([]byte, []int)

Deprecated: Use Config.ProtoReflect.Descriptor instead.

func (*Config) GetBugManagement

func (x *Config) GetBugManagement() *BugManagementSystem

func (*Config) GetBugUpdatesEnabled

func (x *Config) GetBugUpdatesEnabled() bool

func (*Config) GetChunkGcsBucket

func (x *Config) GetChunkGcsBucket() string

func (*Config) GetClustering

func (x *Config) GetClustering() *ClusteringSystem

func (*Config) GetIngestion

func (x *Config) GetIngestion() *Ingestion

func (*Config) GetMonorailHostname

func (x *Config) GetMonorailHostname() string

func (*Config) GetReclusteringIntervalMinutes

func (x *Config) GetReclusteringIntervalMinutes() int64

func (*Config) GetReclusteringWorkers

func (x *Config) GetReclusteringWorkers() int64

func (*Config) GetTestVariantAnalysis

func (x *Config) GetTestVariantAnalysis() *TestVariantAnalysis

func (*Config) GetTestVerdictExport

func (x *Config) GetTestVerdictExport() *TestVerdictExport

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) ProtoReflect

func (x *Config) ProtoReflect() protoreflect.Message

func (*Config) Reset

func (x *Config) Reset()

func (*Config) String

func (x *Config) String() string

type ImpactMetricThreshold

type ImpactMetricThreshold struct {

	// The id of the impact metric.
	// e.g.
	// human-cls-failed-presubmit: The number of presubmit runs that failed.
	// critical-failures-exonerated: The number of test failures on critical
	//
	//	builders that were exonerated with an
	//	exoneration reason other than NOT_CRITICAL.
	//
	// test-runs-failed: The number of test runs that failed.
	//
	//	A test run (also known as a 'shard' (chromium) or
	//	'task' (Chrome OS)) is considered failed if all tries of
	//	test(s) in it unexpectedly failed. The failed test run is
	//	attributed to the last failure of each of the test(s)
	//	that failed on all tries.
	//
	// failures: The number of test results that were unexpected failures.
	//
	// Full list of available metrics here:
	// https://source.chromium.org/chromium/infra/infra/+/main:go/src/go.chromium.org/luci/analysis/internal/analysis/metrics/metrics.go
	MetricId string `protobuf:"bytes,1,opt,name=metric_id,json=metricId,proto3" json:"metric_id,omitempty"`
	// The thresholds against a metric.
	Threshold *MetricThreshold `protobuf:"bytes,2,opt,name=threshold,proto3" json:"threshold,omitempty"`
	// contains filtered or unexported fields
}

ImpactMetricThreshold specifies a condition on a cluster's impact metric.

func (*ImpactMetricThreshold) Descriptor deprecated

func (*ImpactMetricThreshold) Descriptor() ([]byte, []int)

Deprecated: Use ImpactMetricThreshold.ProtoReflect.Descriptor instead.

func (*ImpactMetricThreshold) GetMetricId

func (x *ImpactMetricThreshold) GetMetricId() string

func (*ImpactMetricThreshold) GetThreshold

func (x *ImpactMetricThreshold) GetThreshold() *MetricThreshold

func (*ImpactMetricThreshold) ProtoMessage

func (*ImpactMetricThreshold) ProtoMessage()

func (*ImpactMetricThreshold) ProtoReflect

func (x *ImpactMetricThreshold) ProtoReflect() protoreflect.Message

func (*ImpactMetricThreshold) Reset

func (x *ImpactMetricThreshold) Reset()

func (*ImpactMetricThreshold) String

func (x *ImpactMetricThreshold) String() string

type ImpactThreshold

type ImpactThreshold struct {
	TestResultsFailed          *MetricThreshold `protobuf:"bytes,4,opt,name=test_results_failed,json=testResultsFailed,proto3" json:"test_results_failed,omitempty"`
	TestRunsFailed             *MetricThreshold `protobuf:"bytes,5,opt,name=test_runs_failed,json=testRunsFailed,proto3" json:"test_runs_failed,omitempty"`
	PresubmitRunsFailed        *MetricThreshold `protobuf:"bytes,6,opt,name=presubmit_runs_failed,json=presubmitRunsFailed,proto3" json:"presubmit_runs_failed,omitempty"`
	CriticalFailuresExonerated *MetricThreshold `` /* 141-byte string literal not displayed */
	UnexpectedFailures_1D      *int64           `` /* 130-byte string literal not displayed */
	UnexpectedFailures_3D      *int64           `` /* 130-byte string literal not displayed */
	UnexpectedFailures_7D      *int64           `` /* 130-byte string literal not displayed */
	// contains filtered or unexported fields
}

Deprecated. No longer has any effect. Retained for textproto compatibility only.

func (*ImpactThreshold) Descriptor deprecated

func (*ImpactThreshold) Descriptor() ([]byte, []int)

Deprecated: Use ImpactThreshold.ProtoReflect.Descriptor instead.

func (*ImpactThreshold) GetCriticalFailuresExonerated

func (x *ImpactThreshold) GetCriticalFailuresExonerated() *MetricThreshold

func (*ImpactThreshold) GetPresubmitRunsFailed

func (x *ImpactThreshold) GetPresubmitRunsFailed() *MetricThreshold

func (*ImpactThreshold) GetTestResultsFailed

func (x *ImpactThreshold) GetTestResultsFailed() *MetricThreshold

func (*ImpactThreshold) GetTestRunsFailed

func (x *ImpactThreshold) GetTestRunsFailed() *MetricThreshold

func (*ImpactThreshold) GetUnexpectedFailures_1D

func (x *ImpactThreshold) GetUnexpectedFailures_1D() int64

func (*ImpactThreshold) GetUnexpectedFailures_3D

func (x *ImpactThreshold) GetUnexpectedFailures_3D() int64

func (*ImpactThreshold) GetUnexpectedFailures_7D

func (x *ImpactThreshold) GetUnexpectedFailures_7D() int64

func (*ImpactThreshold) ProtoMessage

func (*ImpactThreshold) ProtoMessage()

func (*ImpactThreshold) ProtoReflect

func (x *ImpactThreshold) ProtoReflect() protoreflect.Message

func (*ImpactThreshold) Reset

func (x *ImpactThreshold) Reset()

func (*ImpactThreshold) String

func (x *ImpactThreshold) String() string

type Ingestion

type Ingestion struct {

	// Whether ingestion should be limited to allowlisted projects only.
	// By default, allowlisting is not enabled and all projects are ingested.
	ProjectAllowlistEnabled bool `` /* 133-byte string literal not displayed */
	// The list of allowlisted LUCI projects, e.g. "chromium", "chromeos".
	// Only used if project_allowlist_enabled is set.
	ProjectAllowlist []string `protobuf:"bytes,2,rep,name=project_allowlist,json=projectAllowlist,proto3" json:"project_allowlist,omitempty"`
	// contains filtered or unexported fields
}

Settings to control ingestion.

func (*Ingestion) Descriptor deprecated

func (*Ingestion) Descriptor() ([]byte, []int)

Deprecated: Use Ingestion.ProtoReflect.Descriptor instead.

func (*Ingestion) GetProjectAllowlist

func (x *Ingestion) GetProjectAllowlist() []string

func (*Ingestion) GetProjectAllowlistEnabled

func (x *Ingestion) GetProjectAllowlistEnabled() bool

func (*Ingestion) ProtoMessage

func (*Ingestion) ProtoMessage()

func (*Ingestion) ProtoReflect

func (x *Ingestion) ProtoReflect() protoreflect.Message

func (*Ingestion) Reset

func (x *Ingestion) Reset()

func (*Ingestion) String

func (x *Ingestion) String() string

type MetricThreshold

type MetricThreshold struct {

	// The threshold for one day.
	OneDay *int64 `protobuf:"varint,1,opt,name=one_day,json=oneDay,proto3,oneof" json:"one_day,omitempty"`
	// The threshold for three day.
	ThreeDay *int64 `protobuf:"varint,2,opt,name=three_day,json=threeDay,proto3,oneof" json:"three_day,omitempty"`
	// The threshold for seven days.
	SevenDay *int64 `protobuf:"varint,3,opt,name=seven_day,json=sevenDay,proto3,oneof" json:"seven_day,omitempty"`
	// contains filtered or unexported fields
}

MetricThreshold specifies thresholds for a particular metric. The threshold is considered satisfied if any of the individual metric thresholds is met or exceeded (i.e. if multiple thresholds are set, they are combined using an OR-semantic). If no threshold is set, the threshold as a whole is unsatisfiable.

func (*MetricThreshold) Descriptor deprecated

func (*MetricThreshold) Descriptor() ([]byte, []int)

Deprecated: Use MetricThreshold.ProtoReflect.Descriptor instead.

func (*MetricThreshold) GetOneDay

func (x *MetricThreshold) GetOneDay() int64

func (*MetricThreshold) GetSevenDay

func (x *MetricThreshold) GetSevenDay() int64

func (*MetricThreshold) GetThreeDay

func (x *MetricThreshold) GetThreeDay() int64

func (*MetricThreshold) ProtoMessage

func (*MetricThreshold) ProtoMessage()

func (*MetricThreshold) ProtoReflect

func (x *MetricThreshold) ProtoReflect() protoreflect.Message

func (*MetricThreshold) Reset

func (x *MetricThreshold) Reset()

func (*MetricThreshold) String

func (x *MetricThreshold) String() string

type Metrics

type Metrics struct {

	// Overrides to the default metrics configuration for a project.
	Overrides []*Metrics_MetricOverride `protobuf:"bytes,1,rep,name=overrides,proto3" json:"overrides,omitempty"`
	// contains filtered or unexported fields
}

Settings related to metrics used to measure cluster impact.

func (*Metrics) Descriptor deprecated

func (*Metrics) Descriptor() ([]byte, []int)

Deprecated: Use Metrics.ProtoReflect.Descriptor instead.

func (*Metrics) GetOverrides

func (x *Metrics) GetOverrides() []*Metrics_MetricOverride

func (*Metrics) ProtoMessage

func (*Metrics) ProtoMessage()

func (*Metrics) ProtoReflect

func (x *Metrics) ProtoReflect() protoreflect.Message

func (*Metrics) Reset

func (x *Metrics) Reset()

func (*Metrics) String

func (x *Metrics) String() string

type Metrics_MetricOverride

type Metrics_MetricOverride struct {

	// The id of the impact metric.
	//
	// Full list of available metrics here:
	// https://source.chromium.org/chromium/infra/infra/+/main:go/src/go.chromium.org/luci/analysis/internal/analysis/metrics/metrics.go
	MetricId string `protobuf:"bytes,1,opt,name=metric_id,json=metricId,proto3" json:"metric_id,omitempty"`
	// Whether the metric should be selected by default.
	IsDefault *bool `protobuf:"varint,2,opt,name=is_default,json=isDefault,proto3,oneof" json:"is_default,omitempty"`
	// Controls the default sort order between metrics. By default,
	// a list will sort by the metric with the highest sort priority,
	// followed by the metric with second highest sort priority,
	// and so on.
	SortPriority *int32 `protobuf:"varint,3,opt,name=sort_priority,json=sortPriority,proto3,oneof" json:"sort_priority,omitempty"`
	// contains filtered or unexported fields
}

func (*Metrics_MetricOverride) Descriptor deprecated

func (*Metrics_MetricOverride) Descriptor() ([]byte, []int)

Deprecated: Use Metrics_MetricOverride.ProtoReflect.Descriptor instead.

func (*Metrics_MetricOverride) GetIsDefault

func (x *Metrics_MetricOverride) GetIsDefault() bool

func (*Metrics_MetricOverride) GetMetricId

func (x *Metrics_MetricOverride) GetMetricId() string

func (*Metrics_MetricOverride) GetSortPriority

func (x *Metrics_MetricOverride) GetSortPriority() int32

func (*Metrics_MetricOverride) ProtoMessage

func (*Metrics_MetricOverride) ProtoMessage()

func (*Metrics_MetricOverride) ProtoReflect

func (x *Metrics_MetricOverride) ProtoReflect() protoreflect.Message

func (*Metrics_MetricOverride) Reset

func (x *Metrics_MetricOverride) Reset()

func (*Metrics_MetricOverride) String

func (x *Metrics_MetricOverride) String() string

type MonorailFieldValue

type MonorailFieldValue struct {

	// The ID of the field to set. You can find this by visiting
	// https://monorail-prod.appspot.com/p/<project>/adminLabels, scrolling
	// down to Custom fields and finding the ID of the field you wish to set.
	FieldId int64 `protobuf:"varint,1,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
	// The field value. Values are encoded according to the field type:
	//   - Enumeration types: the string enumeration value (e.g. "Bug").
	//   - Integer types: the integer, converted to a string (e.g. "1052").
	//   - String types: the value, included verbatim.
	//   - User types: the user's resource name (e.g. "users/2627516260").
	//     User IDs can be identified by looking at the people listing for a
	//     project:  https://monorail-prod.appspot.com/p/<project>/people/list.
	//     The User ID is included in the URL as u=<number> when clicking into
	//     the page for a particular user. For example, "user/3816576959" is
	//     https://monorail-prod.appspot.com/p/chromium/people/detail?u=3816576959.
	//   - Date types: the number of seconds since epoch, as a string
	//     (e.g. "1609459200" for 1 January 2021).
	//   - URL type: the URL value, as a string (e.g. "https://www.google.com/").
	//
	// The source of truth for mapping of field types to values is as
	// defined in the Monorail v3 API, found here:
	// https://source.chromium.org/chromium/infra/infra/+/main:appengine/monorail/api/v3/api_proto/issue_objects.proto?q=%22message%20FieldValue%22
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

MonorailFieldValue describes a monorail field/value pair.

func (*MonorailFieldValue) Descriptor deprecated

func (*MonorailFieldValue) Descriptor() ([]byte, []int)

Deprecated: Use MonorailFieldValue.ProtoReflect.Descriptor instead.

func (*MonorailFieldValue) GetFieldId

func (x *MonorailFieldValue) GetFieldId() int64

func (*MonorailFieldValue) GetValue

func (x *MonorailFieldValue) GetValue() string

func (*MonorailFieldValue) ProtoMessage

func (*MonorailFieldValue) ProtoMessage()

func (*MonorailFieldValue) ProtoReflect

func (x *MonorailFieldValue) ProtoReflect() protoreflect.Message

func (*MonorailFieldValue) Reset

func (x *MonorailFieldValue) Reset()

func (*MonorailFieldValue) String

func (x *MonorailFieldValue) String() string

type MonorailPriority

type MonorailPriority struct {
	Priority   string                   `protobuf:"bytes,1,opt,name=priority,proto3" json:"priority,omitempty"`
	Threshold  *ImpactThreshold         `protobuf:"bytes,2,opt,name=threshold,proto3" json:"threshold,omitempty"`
	Thresholds []*ImpactMetricThreshold `protobuf:"bytes,3,rep,name=thresholds,proto3" json:"thresholds,omitempty"`
	// contains filtered or unexported fields
}

Deprecated. No longer has any effect. Retained for textproto compatibility only.

func (*MonorailPriority) Descriptor deprecated

func (*MonorailPriority) Descriptor() ([]byte, []int)

Deprecated: Use MonorailPriority.ProtoReflect.Descriptor instead.

func (*MonorailPriority) GetPriority

func (x *MonorailPriority) GetPriority() string

func (*MonorailPriority) GetThreshold

func (x *MonorailPriority) GetThreshold() *ImpactThreshold

func (*MonorailPriority) GetThresholds

func (x *MonorailPriority) GetThresholds() []*ImpactMetricThreshold

func (*MonorailPriority) ProtoMessage

func (*MonorailPriority) ProtoMessage()

func (*MonorailPriority) ProtoReflect

func (x *MonorailPriority) ProtoReflect() protoreflect.Message

func (*MonorailPriority) Reset

func (x *MonorailPriority) Reset()

func (*MonorailPriority) String

func (x *MonorailPriority) String() string

type MonorailProject

type MonorailProject struct {

	// The monorail project being described.
	// E.g. "chromium".
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// The field values to use when creating new bugs.
	// For example, on chromium issue tracker, there is a manadatory
	// issue type field (field 10), which must be set to "Bug".
	DefaultFieldValues []*MonorailFieldValue `protobuf:"bytes,2,rep,name=default_field_values,json=defaultFieldValues,proto3" json:"default_field_values,omitempty"`
	// The ID of the issue's priority field. You can find this by visiting
	// https://monorail-prod.appspot.com/p/<project>/adminLabels, scrolling
	// down to Custom fields and finding the ID of the field you wish to set.
	//
	// This field must support the values: "Pri-0", "Pri-1", "Pri-2", "Pri-3".
	PriorityFieldId int64 `protobuf:"varint,3,opt,name=priority_field_id,json=priorityFieldId,proto3" json:"priority_field_id,omitempty"`
	// Deprecated. No longer has any effect. Retained for textproto
	// compatibility only. Use bug_management.policies instead.
	Priorities []*MonorailPriority `protobuf:"bytes,4,rep,name=priorities,proto3" json:"priorities,omitempty"`
	// Deprecated. No longer has any effect. Retained for textproto
	// compatibility only.
	PriorityHysteresisPercent int64 `` /* 139-byte string literal not displayed */
	// The prefix that should appear when displaying bugs from the
	// given bug tracking system. E.g. "crbug.com" or "fxbug.dev".
	// If no prefix is specified, only the bug number will appear.
	// Otherwise, the supplifed prefix will appear, followed by a
	// forward slash ("/"), followed by the bug number.
	// Valid prefixes match `^[a-z0-9\-.]{0,64}$`.
	DisplayPrefix string `protobuf:"bytes,6,opt,name=display_prefix,json=displayPrefix,proto3" json:"display_prefix,omitempty"`
	// The preferred hostname to use in links to monorail. For example,
	// "bugs.chromium.org" or "bugs.fuchsia.dev".
	MonorailHostname string `protobuf:"bytes,7,opt,name=monorail_hostname,json=monorailHostname,proto3" json:"monorail_hostname,omitempty"`
	// Whether the Restrict-View-Google tag should be omitted on new
	// auto-filed bugs. This makes those bugs publically visible.
	// If unset, defaults to filing with Restrict-View-Google.
	FileWithoutRestrictViewGoogle bool `` /* 155-byte string literal not displayed */
	// contains filtered or unexported fields
}

MonorailProject describes the configuration to use when filing bugs into a given monorail project.

func (*MonorailProject) Descriptor deprecated

func (*MonorailProject) Descriptor() ([]byte, []int)

Deprecated: Use MonorailProject.ProtoReflect.Descriptor instead.

func (*MonorailProject) GetDefaultFieldValues

func (x *MonorailProject) GetDefaultFieldValues() []*MonorailFieldValue

func (*MonorailProject) GetDisplayPrefix

func (x *MonorailProject) GetDisplayPrefix() string

func (*MonorailProject) GetFileWithoutRestrictViewGoogle

func (x *MonorailProject) GetFileWithoutRestrictViewGoogle() bool

func (*MonorailProject) GetMonorailHostname

func (x *MonorailProject) GetMonorailHostname() string

func (*MonorailProject) GetPriorities

func (x *MonorailProject) GetPriorities() []*MonorailPriority

func (*MonorailProject) GetPriorityFieldId

func (x *MonorailProject) GetPriorityFieldId() int64

func (*MonorailProject) GetPriorityHysteresisPercent

func (x *MonorailProject) GetPriorityHysteresisPercent() int64

func (*MonorailProject) GetProject

func (x *MonorailProject) GetProject() string

func (*MonorailProject) ProtoMessage

func (*MonorailProject) ProtoMessage()

func (*MonorailProject) ProtoReflect

func (x *MonorailProject) ProtoReflect() protoreflect.Message

func (*MonorailProject) Reset

func (x *MonorailProject) Reset()

func (*MonorailProject) String

func (x *MonorailProject) String() string

type ProjectConfig

type ProjectConfig struct {

	// The project metadata (eg. display name).
	ProjectMetadata *ProjectMetadata `protobuf:"bytes,6,opt,name=project_metadata,json=projectMetadata,proto3" json:"project_metadata,omitempty"`
	// The last time this project configuration was updated.
	// LUCI Analysis sets and stores this value internally. Do not set
	// in your project's configuration file, it will be ignored.
	LastUpdated *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"`
	// Configuration for how to cluster test results.
	Clustering *Clustering `protobuf:"bytes,5,opt,name=clustering,proto3" json:"clustering,omitempty"`
	// Configuration for automatic bug management.
	BugManagement *BugManagement `protobuf:"bytes,9,opt,name=bug_management,json=bugManagement,proto3" json:"bug_management,omitempty"`
	// Configuration related to metrics in LUCI Analysis.
	Metrics *Metrics `protobuf:"bytes,11,opt,name=metrics,proto3" json:"metrics,omitempty"`
	// Configuration for when tests are considered stable enough
	// to gate code changes. Only relevant for projects which integrate
	// with the TestVariants.QueryStability RPC to exonerate
	// unstable tests in presubmit.
	TestStabilityCriteria *TestStabilityCriteria `` /* 127-byte string literal not displayed */
	// Per realm configurations.
	Realms []*RealmConfig `protobuf:"bytes,3,rep,name=realms,proto3" json:"realms,omitempty"`
	// Deprecated. No longer has any effect. Retained for textproto
	// compatibility only. Use bug_management.default_bug_system instead.
	BugSystem BugSystem `protobuf:"varint,7,opt,name=bug_system,json=bugSystem,proto3,enum=luci.analysis.config.BugSystem" json:"bug_system,omitempty"`
	// Deprecated. No longer has any effect. Retained for textproto
	// compatibility only. Use bug_management.monorail instead.
	Monorail *MonorailProject `protobuf:"bytes,1,opt,name=monorail,proto3" json:"monorail,omitempty"`
	// Deprecated. No longer has any effect. Retained for textproto
	// compatibility only. Use bug_management.buganizer instead.
	Buganizer *BuganizerProject `protobuf:"bytes,8,opt,name=buganizer,proto3" json:"buganizer,omitempty"`
	// Deprecated. No longer has any effect. Retained for textproto
	// compatibility only. Use bug_management.policies instead.
	BugFilingThreshold *ImpactThreshold `protobuf:"bytes,2,opt,name=bug_filing_threshold,json=bugFilingThreshold,proto3" json:"bug_filing_threshold,omitempty"`
	// Deprecated. No longer has any effect. Retained for textproto
	// compatibility only. Use bug_management.policies instead.
	BugFilingThresholds []*ImpactMetricThreshold `protobuf:"bytes,10,rep,name=bug_filing_thresholds,json=bugFilingThresholds,proto3" json:"bug_filing_thresholds,omitempty"`
	// contains filtered or unexported fields
}

ProjectConfig is the project-specific configuration data for LUCI Analysis.

func (*ProjectConfig) Descriptor deprecated

func (*ProjectConfig) Descriptor() ([]byte, []int)

Deprecated: Use ProjectConfig.ProtoReflect.Descriptor instead.

func (*ProjectConfig) GetBugFilingThreshold

func (x *ProjectConfig) GetBugFilingThreshold() *ImpactThreshold

func (*ProjectConfig) GetBugFilingThresholds

func (x *ProjectConfig) GetBugFilingThresholds() []*ImpactMetricThreshold

func (*ProjectConfig) GetBugManagement

func (x *ProjectConfig) GetBugManagement() *BugManagement

func (*ProjectConfig) GetBugSystem

func (x *ProjectConfig) GetBugSystem() BugSystem

func (*ProjectConfig) GetBuganizer

func (x *ProjectConfig) GetBuganizer() *BuganizerProject

func (*ProjectConfig) GetClustering

func (x *ProjectConfig) GetClustering() *Clustering

func (*ProjectConfig) GetLastUpdated

func (x *ProjectConfig) GetLastUpdated() *timestamppb.Timestamp

func (*ProjectConfig) GetMetrics

func (x *ProjectConfig) GetMetrics() *Metrics

func (*ProjectConfig) GetMonorail

func (x *ProjectConfig) GetMonorail() *MonorailProject

func (*ProjectConfig) GetProjectMetadata

func (x *ProjectConfig) GetProjectMetadata() *ProjectMetadata

func (*ProjectConfig) GetRealms

func (x *ProjectConfig) GetRealms() []*RealmConfig

func (*ProjectConfig) GetTestStabilityCriteria

func (x *ProjectConfig) GetTestStabilityCriteria() *TestStabilityCriteria

func (*ProjectConfig) ProtoMessage

func (*ProjectConfig) ProtoMessage()

func (*ProjectConfig) ProtoReflect

func (x *ProjectConfig) ProtoReflect() protoreflect.Message

func (*ProjectConfig) Reset

func (x *ProjectConfig) Reset()

func (*ProjectConfig) String

func (x *ProjectConfig) String() string

type ProjectMetadata

type ProjectMetadata struct {

	// Indicates the preferred display name for the project in the UI.
	// Deprecated: not used anymore.
	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// contains filtered or unexported fields
}

ProjectMetadata provides data about the project that are mostly used in ui.

func (*ProjectMetadata) Descriptor deprecated

func (*ProjectMetadata) Descriptor() ([]byte, []int)

Deprecated: Use ProjectMetadata.ProtoReflect.Descriptor instead.

func (*ProjectMetadata) GetDisplayName

func (x *ProjectMetadata) GetDisplayName() string

func (*ProjectMetadata) ProtoMessage

func (*ProjectMetadata) ProtoMessage()

func (*ProjectMetadata) ProtoReflect

func (x *ProjectMetadata) ProtoReflect() protoreflect.Message

func (*ProjectMetadata) Reset

func (x *ProjectMetadata) Reset()

func (*ProjectMetadata) String

func (x *ProjectMetadata) String() string

type RealmConfig

type RealmConfig struct {

	// Name of the realm.
	//
	// Must match `^[a-z0-9_\.\-/]{1,400}$`.
	// Must not contain the project part. I.e. for "chromium:ci" realm the value
	// here must be "ci".
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Test variant analysis configurations for the realm.
	TestVariantAnalysis *TestVariantAnalysisConfig `protobuf:"bytes,2,opt,name=test_variant_analysis,json=testVariantAnalysis,proto3" json:"test_variant_analysis,omitempty"`
	// contains filtered or unexported fields
}

Configurations per realm.

func (*RealmConfig) Descriptor deprecated

func (*RealmConfig) Descriptor() ([]byte, []int)

Deprecated: Use RealmConfig.ProtoReflect.Descriptor instead.

func (*RealmConfig) GetName

func (x *RealmConfig) GetName() string

func (*RealmConfig) GetTestVariantAnalysis

func (x *RealmConfig) GetTestVariantAnalysis() *TestVariantAnalysisConfig

func (*RealmConfig) ProtoMessage

func (*RealmConfig) ProtoMessage()

func (*RealmConfig) ProtoReflect

func (x *RealmConfig) ProtoReflect() protoreflect.Message

func (*RealmConfig) Reset

func (x *RealmConfig) Reset()

func (*RealmConfig) String

func (x *RealmConfig) String() string

type TestNameClusteringRule

type TestNameClusteringRule struct {

	// A human-readable name for the rule. This should be unique for each rule.
	// This may be used by LUCI Analysis to explain why it chose to cluster the
	// test name in this way.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The regular expression describing which test names should be clustered
	// by this rule.
	//
	// Example.
	//
	//	Assume our project uploads google test (gtest) results with the test
	//	name prefix "gtest://".
	//	If want to cluster value-parameterized google tests
	//	together based on the test suite and test case name (ignoring
	//	the value parameter), we may use a pattern like:
	//	  "^gtest://(\w+/)?(?P<testcase>\w+\.\w+)/\w+$"
	//
	//	This will allow us to cluster test names like:
	//	  "gtest://InstantiationOne/ColorSpaceTest.testNullTransform/0"
	//	  "gtest://InstantiationOne/ColorSpaceTest.testNullTransform/1"
	//	  "gtest://InstantiationTwo/ColorSpaceTest.testNullTransform/0"
	//	together.
	//
	//	See https://github.com/google/googletest/blob/main/docs/advanced.md#how-to-write-value-parameterized-tests
	//	to understand value-parameterised google tests.
	//
	// Use ?P<name> to name capture groups, so their values can be used in
	// like_template below.
	Pattern string `protobuf:"bytes,2,opt,name=pattern,proto3" json:"pattern,omitempty"`
	// The template used to generate a LIKE expression on test names
	// that defines the test name cluster identified by this rule.
	//
	// This like expression has two purposes:
	// (1) If the test name cluster is large enough to justify the
	//
	//	creation of a bug cluster, the like expression is used to
	//	generate a failure association rule of the following form:
	//	   test LIKE "<evaluated like_template>"
	//
	// (2) A hash of the expression is used as the clustering key for the
	//
	//	test name-based suggested cluster. This generally has the desired
	//	clustering behaviour, i.e. the parts of the test name which
	//	are important enough to included in the LIKE expression for (1)
	//	are also those on which clustering should occur.
	//
	// As is usual for LIKE expressions, the template can contain
	// the following operators to do wildcard matching:
	// * '%' for wildcard match of an arbitrary number of characters, and
	// * '_' for single character wildcard match.
	//
	// To match literal '%' or '_', escape the operator with a '\',
	// i.e. use "\%" or "\_" to match literal '%' and '_' respectively.
	// To match literal '\', you should use "\\".
	//
	// The template can refer to parts of the test name matched by
	// the rule pattern using ${name}, where name refers to the capture
	// group (see pattern). To insert the literal '$', the sequence '$$'
	// should be used.
	//
	// Example.
	//
	//	Assume our project uploads google test (gtest) results with the test
	//	name prefix "gtest://". Further assume we used the pattern:
	//	  "^gtest://(\w+/)?(?P<testcase>\w+\.\w+)/\w+$"
	//
	//	We might use the following like_template:
	//	  "gtest://%${testcase}%"
	//
	//	When instantiated for a value-parameterised test, e.g.
	//	"gtest://InstantiationOne/ColorSpaceTest.testNullTransform/0",
	//	the result would be a failure association rule like:
	//	  test LIKE "gtest://%ColorSpaceTest.testNullTransform%"
	//
	//	Note the use of ${testcase} to refer to the testname capture group
	//	specified in the pattern example.
	//
	//	See https://github.com/google/googletest/blob/main/docs/advanced.md#how-to-write-value-parameterized-tests
	//	to understand value-parameterised google tests.
	//
	// It is known that not all clusters can be precisely matched by
	// a LIKE expression. Nonetheless, LUCI Analysis prefers LIKE expressions
	// as they are easier to comprehend and modify by users, and in
	// most cases, the added precision is not required.
	//
	// As such, your rule should try to ensure the generated LIKE statement
	// captures your clustering logic as best it can. Your LIKE expression
	// MUST match all test names matched by your regex pattern, and MAY
	// capture additional test names (though this is preferably minimised,
	// to reduce differences between the suggested clusters and eventual
	// bug clusters).
	//
	// LUCI Analysis will automatically escape any '%' '_' and '\' in parts of
	// the matched test name before substitution to ensure captured parts
	// of the test name are matched literally and not interpreted.
	LikeTemplate string `protobuf:"bytes,3,opt,name=like_template,json=likeTemplate,proto3" json:"like_template,omitempty"`
	// contains filtered or unexported fields
}

A rule used to cluster a test result by test name.

func (*TestNameClusteringRule) Descriptor deprecated

func (*TestNameClusteringRule) Descriptor() ([]byte, []int)

Deprecated: Use TestNameClusteringRule.ProtoReflect.Descriptor instead.

func (*TestNameClusteringRule) GetLikeTemplate

func (x *TestNameClusteringRule) GetLikeTemplate() string

func (*TestNameClusteringRule) GetName

func (x *TestNameClusteringRule) GetName() string

func (*TestNameClusteringRule) GetPattern

func (x *TestNameClusteringRule) GetPattern() string

func (*TestNameClusteringRule) ProtoMessage

func (*TestNameClusteringRule) ProtoMessage()

func (*TestNameClusteringRule) ProtoReflect

func (x *TestNameClusteringRule) ProtoReflect() protoreflect.Message

func (*TestNameClusteringRule) Reset

func (x *TestNameClusteringRule) Reset()

func (*TestNameClusteringRule) String

func (x *TestNameClusteringRule) String() string

type TestStabilityCriteria

type TestStabilityCriteria struct {

	// The failure rate criteria to apply. Mandatory.
	FailureRate *TestStabilityCriteria_FailureRateCriteria `protobuf:"bytes,1,opt,name=failure_rate,json=failureRate,proto3" json:"failure_rate,omitempty"`
	// The flake rate criteria to apply. Mandatory.
	FlakeRate *TestStabilityCriteria_FlakeRateCriteria `protobuf:"bytes,2,opt,name=flake_rate,json=flakeRate,proto3" json:"flake_rate,omitempty"`
	// contains filtered or unexported fields
}

Criteria used to determine test stability. This criteria is used to inform test exoneration in presubmit via the TestVariants.QueryStability RPC.

Criteria is applied using a data source which contains the last 14 days' of test result data for all test variants, with certain filterings applied.

See go/luci-exoneration-v2 as well each criteria below for more details.

func (*TestStabilityCriteria) Descriptor deprecated

func (*TestStabilityCriteria) Descriptor() ([]byte, []int)

Deprecated: Use TestStabilityCriteria.ProtoReflect.Descriptor instead.

func (*TestStabilityCriteria) GetFailureRate

func (*TestStabilityCriteria) GetFlakeRate

func (*TestStabilityCriteria) ProtoMessage

func (*TestStabilityCriteria) ProtoMessage()

func (*TestStabilityCriteria) ProtoReflect

func (x *TestStabilityCriteria) ProtoReflect() protoreflect.Message

func (*TestStabilityCriteria) Reset

func (x *TestStabilityCriteria) Reset()

func (*TestStabilityCriteria) String

func (x *TestStabilityCriteria) String() string

type TestStabilityCriteria_FailureRateCriteria

type TestStabilityCriteria_FailureRateCriteria struct {

	// The number of unexpected test runs that must be
	// found in a sliding window of size 10 containing the
	// queried position to begin exoneration.
	// 6 is a good starting value.
	//
	// The criteria is applied over sliding windows of size
	// 10 around the query position. Assuming the full 20 test
	// runs are obtained, this means 11 window positions are considered.
	// If any window satisifes the threshold, the criteria is met
	// and the test is considered unstable.
	//
	// In the event that 10 test runs cannot be found in the last
	// 14 days of test history, a window sized to the available
	// test runs is used but the criteria is not scaled.
	FailureThreshold int32 `protobuf:"varint,1,opt,name=failure_threshold,json=failureThreshold,proto3" json:"failure_threshold,omitempty"`
	// The number of consecutive unexpected test runs, which if
	// present at the leading or trailing part of the (up to) 20
	// test verdicts, will trigger exoneration.
	// 3 is a good starting value.
	//
	// The consecutive failures must also touch the query position.
	//
	// This is designed to create a fast path to exoneration for
	// 100% failing tests which produce a strong and consistent
	// failing signal, leveraging the statistical significance
	// of consecutive failures. If this threshold is met,
	// the failure_threshold above does NOT need to be met.
	//
	// E.g. the following scenario WILL trigger this criteria for
	// a threshold of four or less.
	//
	// History: >F F F F< P P P P P P P
	//
	//	^
	//	Query position
	//
	// The following scenario WILL NOT trigger this criteria:
	//
	// History:>P F F F F< P P P P P P P
	//
	//	^
	//	Query position
	//
	// (N.B. Direction of history is irrelevant as criteria is
	// applied symmetrically. Either the left or right could
	// represent 'later' by commit position.)
	ConsecutiveFailureThreshold int32 `` /* 145-byte string literal not displayed */
	// contains filtered or unexported fields
}

The failure rate criteria detects consistently failing and highly flaky tests (e.g. 95%+ failing) by looking for a high number of failures at the queried position of the test's history.

The criteria obtains from the last 14 days' of filtered test data a set of (up to) 20 test runs centered on the queried commit position (10 prior and 10 after) and applies criteria to this in various ways. The 20 test runs are sorted by commit position and then time.

See go/luci-exoneration-v2 for more detail.

func (*TestStabilityCriteria_FailureRateCriteria) Descriptor deprecated

func (*TestStabilityCriteria_FailureRateCriteria) Descriptor() ([]byte, []int)

Deprecated: Use TestStabilityCriteria_FailureRateCriteria.ProtoReflect.Descriptor instead.

func (*TestStabilityCriteria_FailureRateCriteria) GetConsecutiveFailureThreshold

func (x *TestStabilityCriteria_FailureRateCriteria) GetConsecutiveFailureThreshold() int32

func (*TestStabilityCriteria_FailureRateCriteria) GetFailureThreshold

func (x *TestStabilityCriteria_FailureRateCriteria) GetFailureThreshold() int32

func (*TestStabilityCriteria_FailureRateCriteria) ProtoMessage

func (*TestStabilityCriteria_FailureRateCriteria) ProtoReflect

func (*TestStabilityCriteria_FailureRateCriteria) Reset

func (*TestStabilityCriteria_FailureRateCriteria) String

type TestStabilityCriteria_FlakeRateCriteria

type TestStabilityCriteria_FlakeRateCriteria struct {

	// The minimum number of source verdicts desired
	// for the analysis window.
	//
	// As standard, all source verdicts for sources
	// +/- 7 days from the queried position are used.
	// The conversion between time and commit position is discussed
	// in go/luci-exoneration-v2.
	//
	// However, if the number of verdicts is not equal
	// to or greater than min_window, all source verdicts
	// from the last 14 days will be used. This is designed
	// to prioritise adequate flake detection performance
	// for test variants with low result volumes, at the
	// cost of data recency.
	//
	// If the number of source verdicts in the last 14 days
	// is less than min_window, then whatever source verdicts
	// are available are still used. This is to improve
	// detection performance on tests with a low volume of results.
	//
	// 100 is a good starting value.
	MinWindow int32 `protobuf:"varint,1,opt,name=min_window,json=minWindow,proto3" json:"min_window,omitempty"`
	// The minimum number of flaky source verdicts required
	// to trigger the criteria. 2 is a good starting value.
	FlakeThreshold int32 `protobuf:"varint,2,opt,name=flake_threshold,json=flakeThreshold,proto3" json:"flake_threshold,omitempty"`
	// The minimum flake rate required to trigger the criteria,
	// as a proportion of all source verdicts. This must be a
	// value between 0.0 and 1.0.
	// 0.01 (1%) is a good starting value.
	//
	// Note that not even the most flaky (50% flaky) test would
	// be expected to produce more than a 25% flake rate if
	// failures are retried once. This is because its expected
	// outcomes are:
	// - Pass on first try = 50%
	// - Fail on first try, pass on second try = 25% (flaky)
	// - Fail on both tries = 25%
	FlakeRateThreshold float64 `protobuf:"fixed64,3,opt,name=flake_rate_threshold,json=flakeRateThreshold,proto3" json:"flake_rate_threshold,omitempty"`
	// The minimum number of flaky source verdicts required to
	// occur on sources within one weekday either side of the
	// queried source position.
	//
	// The conversion between time and commit position is discussed
	// in go/luci-exoneration-v2.
	//
	// One weekday means 24 hours on a weekday as observed in
	// UTC, and includes any intervening weekend. For example:
	//   - if the queried source position corresponds to 8:00 UTC
	//     on Monday, the queried interval will be from 8:00 UTC
	//     the previous Friday to 8:00 UTC on the following Tuesday.
	//   - if the queried source position corresponds to 15:00 UTC
	//     on Wednesday, the queried interval will be from 15:00 UTC
	//     on Tuesday to 15:00 UTC on Thursday.
	//   - if the queried source position corresponds to 12:00 UTC
	//     on Saturday, the queried interval will be from 0:00 UTC
	//     on Friday to 0:00 UTC on Tuesday.
	//
	// Setting this thresold to a non-zero value may substantially
	// desensitise flaky test detection, but offers more guarantees
	// that exoneration will stop within a given period of time
	// if a test is fixed.
	FlakeThreshold_1Wd int32 `protobuf:"varint,4,opt,name=flake_threshold_1wd,json=flakeThreshold1wd,proto3" json:"flake_threshold_1wd,omitempty"`
	// contains filtered or unexported fields
}

The flake rate criteria detects flaky tests by looking for examples where a test has obtained expected and unexpected test runs for the same sources under test.

If there are more flaky source verdicts found than a threshold, the test is considered flaky.

To be satisfied, ALL of the criteria must be met: - flake_threshold - flake_rate_threshold - flake_threshold_1wd To ignore criteria, set the threshold to zero.

func (*TestStabilityCriteria_FlakeRateCriteria) Descriptor deprecated

func (*TestStabilityCriteria_FlakeRateCriteria) Descriptor() ([]byte, []int)

Deprecated: Use TestStabilityCriteria_FlakeRateCriteria.ProtoReflect.Descriptor instead.

func (*TestStabilityCriteria_FlakeRateCriteria) GetFlakeRateThreshold

func (x *TestStabilityCriteria_FlakeRateCriteria) GetFlakeRateThreshold() float64

func (*TestStabilityCriteria_FlakeRateCriteria) GetFlakeThreshold

func (x *TestStabilityCriteria_FlakeRateCriteria) GetFlakeThreshold() int32

func (*TestStabilityCriteria_FlakeRateCriteria) GetFlakeThreshold_1Wd

func (x *TestStabilityCriteria_FlakeRateCriteria) GetFlakeThreshold_1Wd() int32

func (*TestStabilityCriteria_FlakeRateCriteria) GetMinWindow

func (*TestStabilityCriteria_FlakeRateCriteria) ProtoMessage

func (*TestStabilityCriteria_FlakeRateCriteria) ProtoReflect

func (*TestStabilityCriteria_FlakeRateCriteria) Reset

func (*TestStabilityCriteria_FlakeRateCriteria) String

type TestVariantAnalysis

type TestVariantAnalysis struct {

	// Controls whether we should run test variant analysis during ingestion.
	// It should be only enabled on dev at the beginning, before we are confident
	// enough to turn it on for prod.
	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	// Controls whether we should export test variant analysis result to
	// BigQuery. To turn this on, the "enabled" flag should also be turned on.
	BigqueryExportEnabled bool `` /* 127-byte string literal not displayed */
	// contains filtered or unexported fields
}

TestVariantAnalysis controls how LUCI Analysis run test variant analysis. It can be used to turn on or off test variant analysis if a problem occurs.

func (*TestVariantAnalysis) Descriptor deprecated

func (*TestVariantAnalysis) Descriptor() ([]byte, []int)

Deprecated: Use TestVariantAnalysis.ProtoReflect.Descriptor instead.

func (*TestVariantAnalysis) GetBigqueryExportEnabled

func (x *TestVariantAnalysis) GetBigqueryExportEnabled() bool

func (*TestVariantAnalysis) GetEnabled

func (x *TestVariantAnalysis) GetEnabled() bool

func (*TestVariantAnalysis) ProtoMessage

func (*TestVariantAnalysis) ProtoMessage()

func (*TestVariantAnalysis) ProtoReflect

func (x *TestVariantAnalysis) ProtoReflect() protoreflect.Message

func (*TestVariantAnalysis) Reset

func (x *TestVariantAnalysis) Reset()

func (*TestVariantAnalysis) String

func (x *TestVariantAnalysis) String() string

type TestVariantAnalysisConfig

type TestVariantAnalysisConfig struct {

	// Configurations for UpdateTestVariant task.
	UpdateTestVariantTask *UpdateTestVariantTask `` /* 128-byte string literal not displayed */
	// Configurations for BigQuery export.
	BqExports []*BigQueryExport `protobuf:"bytes,2,rep,name=bq_exports,json=bqExports,proto3" json:"bq_exports,omitempty"`
	// contains filtered or unexported fields
}

Deprecated, retained for config compatibility only. Can be deleted once chromium/chrome-m120 and all earlier versions have their LUCI config deleted.

func (*TestVariantAnalysisConfig) Descriptor deprecated

func (*TestVariantAnalysisConfig) Descriptor() ([]byte, []int)

Deprecated: Use TestVariantAnalysisConfig.ProtoReflect.Descriptor instead.

func (*TestVariantAnalysisConfig) GetBqExports

func (x *TestVariantAnalysisConfig) GetBqExports() []*BigQueryExport

func (*TestVariantAnalysisConfig) GetUpdateTestVariantTask

func (x *TestVariantAnalysisConfig) GetUpdateTestVariantTask() *UpdateTestVariantTask

func (*TestVariantAnalysisConfig) ProtoMessage

func (*TestVariantAnalysisConfig) ProtoMessage()

func (*TestVariantAnalysisConfig) ProtoReflect

func (*TestVariantAnalysisConfig) Reset

func (x *TestVariantAnalysisConfig) Reset()

func (*TestVariantAnalysisConfig) String

func (x *TestVariantAnalysisConfig) String() string

type TestVerdictExport

type TestVerdictExport struct {

	// Controls whether test verdicts are exported. Can be used to
	// contain damage during production incidents.
	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	// contains filtered or unexported fields
}

TestVerdictExport contains settings to control the test verdict export.

func (*TestVerdictExport) Descriptor deprecated

func (*TestVerdictExport) Descriptor() ([]byte, []int)

Deprecated: Use TestVerdictExport.ProtoReflect.Descriptor instead.

func (*TestVerdictExport) GetEnabled

func (x *TestVerdictExport) GetEnabled() bool

func (*TestVerdictExport) ProtoMessage

func (*TestVerdictExport) ProtoMessage()

func (*TestVerdictExport) ProtoReflect

func (x *TestVerdictExport) ProtoReflect() protoreflect.Message

func (*TestVerdictExport) Reset

func (x *TestVerdictExport) Reset()

func (*TestVerdictExport) String

func (x *TestVerdictExport) String() string

type UpdateTestVariantTask

type UpdateTestVariantTask struct {

	// A task will run every interval to calculate the test variant's status.
	UpdateTestVariantTaskInterval *durationpb.Duration `` /* 154-byte string literal not displayed */
	// In each task, verdicts within the duration will be queried
	// and used to calculate the test variant's status.
	//
	// For example, if the duration is 24 hours, LUCI Analysis will use all
	// the verdicts from the last 24 hours to calculate the variant's status.
	TestVariantStatusUpdateDuration *durationpb.Duration `` /* 160-byte string literal not displayed */
	// contains filtered or unexported fields
}

Configurations for UpdateTestVariant task. Deprecated, retained for config compatibility only. Can be deleted once chromium/chrome-m120 and all earlier versions have their LUCI config deleted.

func (*UpdateTestVariantTask) Descriptor deprecated

func (*UpdateTestVariantTask) Descriptor() ([]byte, []int)

Deprecated: Use UpdateTestVariantTask.ProtoReflect.Descriptor instead.

func (*UpdateTestVariantTask) GetTestVariantStatusUpdateDuration

func (x *UpdateTestVariantTask) GetTestVariantStatusUpdateDuration() *durationpb.Duration

func (*UpdateTestVariantTask) GetUpdateTestVariantTaskInterval

func (x *UpdateTestVariantTask) GetUpdateTestVariantTaskInterval() *durationpb.Duration

func (*UpdateTestVariantTask) ProtoMessage

func (*UpdateTestVariantTask) ProtoMessage()

func (*UpdateTestVariantTask) ProtoReflect

func (x *UpdateTestVariantTask) ProtoReflect() protoreflect.Message

func (*UpdateTestVariantTask) Reset

func (x *UpdateTestVariantTask) Reset()

func (*UpdateTestVariantTask) String

func (x *UpdateTestVariantTask) String() string

Jump to

Keyboard shortcuts

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