blob: a81c5a1da36fc3ade8087359f176989590da218e [file] [log] [blame]
syntax = "proto3";
package cabe.v1;
option go_package = "go.skia.org/infra/cabe/go/proto";
import "cabe/proto/v1/spec.proto";
// AnalysisMetadata defines the metadata of an analysis.
message AnalysisMetadata {
// The report_id of an analysis
string report_id = 1;
AnalysisDiagnostics diagnostics = 2;
}
// AnalysisDiagnostics contains diagnostic messages generated by the Analyzer about
// the replica task pairs and individual tasks during its analysis.
message AnalysisDiagnostics {
// Things that had to be excluded from the analysis, and why.
repeated SwarmingTaskDiagnostics excluded_swarming_tasks = 1;
repeated ReplicaDiagnostics excluded_replicas = 2;
// Things that were included in the analysis as expected.
repeated SwarmingTaskDiagnostics included_swarming_tasks = 3;
repeated ReplicaDiagnostics included_replicas = 4;
}
message SwarmingTaskId {
string task_id = 1;
string project = 2;
}
// SwarmingTaskDiagnostics contains task-specific diagnostic messages
// generated by the Analyzer.
message SwarmingTaskDiagnostics {
SwarmingTaskId id = 1;
repeated string message = 2;
}
// ReplicaDiagnostics contains replica, or task pair-specific diagnostic messages
// generated by the Analyzer.
message ReplicaDiagnostics {
int32 replica_number = 1;
SwarmingTaskId control_task = 2;
SwarmingTaskId treatment_task = 3;
repeated string message = 4;
}
// AnalysisResult defines the result of an analysis
message AnalysisResult {
// Analysis result id (PK)
string result_id = 1;
// Analysis experiment spec
ExperimentSpec experiment_spec = 2;
// The metadata of the analysis
AnalysisMetadata analysis_metadata = 3;
// The calculated statistic of the analysis
Statistic statistic = 4;
}
// Statistic defines the statistic of an analysis
message Statistic {
// The lower bound of the analysis result
double lower = 1;
// The upper bound of the analysis result
double upper = 2;
// The P value of the analysis result
double p_value = 3;
// The defined significance level to calculate the lower and upper bound
double significance_level = 4;
// The point estimate of the analysis result
double point_estimate = 6;
// The median of control arm of the analysis result
double control_median = 7;
// The median of treatment arm of the analysis result
double treatment_median = 8;
}