go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/analysis/proto/bq/failure_attribute_row.proto (about)

     1  // Copyright 2023 The LUCI Authors.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //      http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  syntax = "proto3";
    16  
    17  package luci.analysis.bq;
    18  
    19  import "google/protobuf/timestamp.proto";
    20  
    21  option go_package = "go.chromium.org/luci/analysis/proto/bq;bqpb";
    22  
    23  // FailureAttributeRow represents a row in a BigQuery table,
    24  // `failure_attrbiutes`, that records the additional attributes of a test
    25  // failure.
    26  // Next ID: 7.
    27  message FailureAttributeRow {
    28    // The LUCI project that the test failure belongs to.
    29    string project = 1;
    30  
    31    // The test results system from which the test originated.
    32    //
    33    // Currently, the only valid value is "resultdb".
    34    string test_result_system = 2;
    35  
    36    // The invocation from which this test result was ingested. This is
    37    // the top-level invocation that was ingested, an "invocation" being
    38    // a container of test results as identified by the source test result
    39    // system.
    40    //
    41    // For ResultDB, LUCI Analysis ingests invocations corresponding to
    42    // buildbucket builds.
    43    //
    44    // All test results ingested from the same invocation (i.e. with the
    45    // same ingested_invocation_id) will have the same partition time.
    46    string ingested_invocation_id = 3;
    47  
    48    // The identity of the test result in the test results system. Together
    49    // with the test results sytstem, this uniquely identifies the test result
    50    // that was clustered.
    51    //
    52    // For test results in ResultDB, the format is:
    53    // "invocations/{INVOCATION_ID}/tests/{URL_ESCAPED_TEST_ID}/results/{RESULT_ID}"
    54    // Where INVOCATION_ID, URL_ESCAPED_TEST_ID and RESULT_ID are values
    55    // defined in ResultDB.
    56    //
    57    // Note that the test result ID is split over two fields (test_result_system,
    58    // test_result_id), rather than as one field with a record type, so that
    59    // BigQuery clustering can be defined over the ID (not possible if a
    60    // record type was used).
    61    string test_result_id = 4;
    62  
    63    // The test result partition time identifies the beginning of the test
    64    // result retention period, and corresponds approximately to the time
    65    // the test result was produced.
    66    //
    67    // It is guaranteed that all test results from one presubmit run
    68    // will have the same partition time. It is also guaranteed that all
    69    // test results from one build will have the same partition time (in
    70    // case of builds associated with presubmit runs this was implied by
    71    // previous guarantee, but for testing that occurs outside presubmit
    72    // this is an added guarantee).
    73    google.protobuf.Timestamp partition_time = 5;
    74  
    75    // The number of test runs that filtered out the test due to this failure.
    76    //
    77    // Conceptually, a test scheduler may decide to filter out certain tests when
    78    // it sees the tests failed in some places. This field records the number of
    79    // test runs that filerterd out the test due to this failure. The exact
    80    // attribution rule (to determine which failures triggered the test filtering)
    81    // is up to the implementation.
    82    //
    83    // For now, this field records the number of skipped runs caused by
    84    // go/cros-test-filtering, and the attribution rule is defined in
    85    // go/attribute-test-filtering-events-to-failures.
    86    int64 attributed_filtered_run_count = 6;
    87  }