github.com/GoogleCloudPlatform/testgrid@v0.0.174/pb/summary/summary.proto (about)

     1  // Summary info for TestGrid tests, dashboard tabs, and dashboards.
     2  // Stored in GCS as "dashboard-<normalized dashboard name>".
     3  
     4  syntax = "proto3";
     5  
     6  package testgrid.summary;
     7  
     8  option go_package = "github.com/GoogleCloudPlatform/testgrid/pb/summary";
     9  
    10  import "google/protobuf/timestamp.proto";
    11  
    12  // Summary of a failing test.
    13  message FailingTestSummary {
    14    // Display name of the test.
    15    string display_name = 1;
    16  
    17    // Name of the test. E.g., the target for tests in Sponge.
    18    string test_name = 2;
    19  
    20    // First build ID at which the test failed.
    21    string fail_build_id = 3;
    22  
    23    // Timestamp for the first cycle in which the test failed.
    24    double fail_timestamp = 4;
    25  
    26    // Last build ID at which the test passed.
    27    string pass_build_id = 5;
    28  
    29    // Timestamp for the last cycle in which the test passed.
    30    double pass_timestamp = 6;
    31  
    32    // Number of times the test has failed.
    33    int32 fail_count = 7;
    34  
    35    // Link to search for build changes.
    36    string build_link = 8;
    37  
    38    // Text for option to search for build changes.
    39    string build_link_text = 9;
    40  
    41    // Text to display for link to search for build changes.
    42    string build_url_text = 10;
    43  
    44    // Text for failure statuses associated with this test.
    45    string failure_message = 11;
    46  
    47    // List of bug IDs for bugs associated with this test.
    48    repeated string linked_bugs = 12;
    49  
    50    // A link to the first build in which the test failed.
    51    string fail_test_link = 13;
    52  
    53    // A link to the latest build in which the test failed.
    54    string latest_fail_test_link = 17;
    55  
    56    // The test ID for the latest test failure. (Does not indicate the failure is
    57    // 'over', just the latest test failure we found.)
    58    string latest_fail_build_id = 14;
    59  
    60    // Maps (property name):(property value) for arbitrary alert properties.
    61    map<string, string> properties = 15;
    62  
    63    // A list of IDs for issue hotlists related to this failure.
    64    repeated string hotlist_ids = 16;
    65  
    66    // Dynamic email list, route email alerts to these instead of the configured
    67    // defaults.
    68    repeated string email_addresses = 18;
    69  
    70    // map of custom column headers
    71    map<string,string> custom_column_headers = 19;
    72  }
    73  
    74  // Metrics about a specific test, i.e. passes, fails, total runs, etc.
    75  // Next ID: 12
    76  message TestInfo {
    77    // The display name of the test, typically what is shown for each row in
    78    // TestGrid
    79    string display_name = 1;
    80  
    81    // The total number of test runs not including runs failed due to
    82    // infrastructure failures.
    83    int32 total_non_infra_runs = 2;
    84  
    85    // The number of passed test runs not including runs failed due to
    86    // infrastructure failures.
    87    int32 passed_non_infra_runs = 3;
    88  
    89    // The number of failed test runs not including runs failed due to
    90    // infrastructure failures.
    91    int32 failed_non_infra_runs = 4;
    92  
    93    // The number of failed test runs specifically due to infrastructure
    94    // failures.
    95    int32 failed_infra_runs = 5;
    96  
    97    // The total number of all runs, including failures due to infrastructure
    98    int32 total_runs_with_infra = 6;
    99  
   100    // Any other type of runs not included above.
   101    int32 other_runs = 7;
   102  
   103    // The flakiness of the test, measured out of 100
   104    float flakiness = 8;
   105  
   106    // The flakiness of the test from previous intervals
   107    repeated float previous_flakiness = 10;
   108  
   109    enum Trend {
   110      UNKNOWN = 0;
   111      NO_CHANGE = 1;
   112      UP = 2;
   113      DOWN = 3;
   114    }
   115  
   116    // The change of flakiness based on the last interval's flakiness
   117    // e.g. if last interval the flakiness was 50, and now it's 75, the
   118    // trend is UP. A trend of NO_CHANGE means last week and this week were
   119    // exactly the same. The interval is set by each tab's config, with
   120    // a default of 7 days.
   121    Trend change_from_last_interval = 9;
   122  
   123    // A map of infra failure name to the count of that failure for the interval.
   124    map<string, int32> infra_failures = 11;
   125  }
   126  
   127  // Summary of the flakiness and overall healthiness of a dashboard tab
   128  message HealthinessInfo {
   129  
   130    // The start of the time frame that the analysis was run for.
   131    // Represents the lower bound but does not guarantee that the earliest
   132    // test occurred at start
   133    google.protobuf.Timestamp start = 1;
   134  
   135    // The end of the time frame that the analysis was run for.
   136    // Same caveat as above but for upper bound.
   137    google.protobuf.Timestamp end = 2;
   138  
   139    // A list of test entries associated with this tab + timeframe.
   140    repeated TestInfo tests = 3;
   141  
   142    // The flakiness out of 100 (think percentage but drop the sign)
   143    float average_flakiness = 4;
   144  
   145    // The average flakiness for previous intervals
   146    repeated float previous_flakiness = 5;
   147  }
   148  
   149  // Information about alerts that have been sent
   150  message AlertingData {
   151    // Seconds since epoch at which an email was last sent
   152    google.protobuf.Timestamp last_email_time = 1;
   153  }
   154  
   155  // Summary of a dashboard tab.
   156  message DashboardTabSummary {
   157    // The name of the dashboard.
   158    string dashboard_name = 1;
   159  
   160    // The name of the dashboard tab.
   161    string dashboard_tab_name = 2;
   162  
   163    // Any top-level alert on this dashboard tab.
   164    string alert = 3;
   165  
   166    // List of failing test summary information.
   167    repeated FailingTestSummary failing_test_summaries = 4;
   168  
   169    // Seconds since epoch at which the test group was last updated.
   170    double last_update_timestamp = 5;
   171  
   172    // A summary of the status of this dashboard tab.
   173    string status = 6;
   174  
   175    enum TabStatus {
   176      NOT_SET = 0;
   177      UNKNOWN = 1;
   178      PASS = 2;
   179      FAIL = 3;
   180      FLAKY = 4;
   181      STALE = 5;
   182      BROKEN = 6;
   183      PENDING = 7;
   184      ACCEPTABLE = 8;
   185    }
   186  
   187    // The overall status for this dashboard tab.
   188    TabStatus overall_status = 7;
   189  
   190    // The ID for the latest passing build.
   191    string latest_green = 8;
   192  
   193    // Seconds since epoch at which tests last ran.
   194    double last_run_timestamp = 9;
   195  
   196    // String indicating the URL for linking to a bug.
   197    string bug_url = 10;
   198  
   199    reserved 11;
   200  
   201    // Metrics for the recent healthiness of a tab
   202    HealthinessInfo healthiness = 12;
   203  
   204    // All the issue IDs linked to this tab.
   205    repeated string linked_issues = 13;
   206  
   207    // Metrics about alerts sent with respect to this summary
   208    // Maintained by alerter; does not need to be populated by summarizer
   209    AlertingData alerting_data = 14;
   210  
   211    // DEPRECATED: now part of the TabStatus.
   212    bool acceptably_flaky = 15 [deprecated = true];
   213  
   214    // Additional metrics provided for the dashboard tab
   215    DashboardTabSummaryMetrics summary_metrics = 16;
   216  }
   217  
   218  // Most recent summary metrics for the tab calculated over columns (not individual tests)
   219  message DashboardTabSummaryMetrics {
   220    // Number of total columns analyzed by summarizer
   221    int32 completed_columns = 1;
   222  
   223    // Number of columns with all tests passing
   224    int32 passing_columns = 2;
   225  
   226    // Number of ignored columns
   227    int32 ignored_columns = 3;
   228  }
   229  
   230  // Summary state of a dashboard.
   231  message DashboardSummary {
   232    // Summary of a dashboard tab; see config.proto.
   233    repeated DashboardTabSummary tab_summaries = 1;
   234  }