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

     1  // Copyright 2022 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.config;
    18  
    19  option go_package = "go.chromium.org/luci/analysis/proto/config;configpb";
    20  
    21  // Config is the service-wide configuration data for LUCI Analysis.
    22  message Config {
    23    // The endpoint for Monorail APIs.
    24    string monorail_hostname = 1;
    25  
    26    // The GCS bucket that chunk contents should be archived to.
    27    string chunk_gcs_bucket = 2;
    28  
    29    // The number of workers to use when re-clustering. Maximum value is 1000,
    30    // which is the default max_concurrent_requests on the reclustering queue:
    31    // https://cloud.google.com/appengine/docs/standard/go111/config/queueref.
    32    //
    33    // If this is unset or zero, re-clustering is disabled.
    34    int64 reclustering_workers = 3;
    35  
    36    // Deprecated November 2022. Setting this has no effect. Field retained
    37    // to maintain backwards compatibility with old configuration files.
    38    int64 reclustering_interval_minutes = 4;
    39  
    40    // Controls whether LUCI Analysis will interact with bug-filing systems.
    41    // Can be used to stop LUCI Analysis auto-bug filing and updates in
    42    // response to a problem.
    43    bool bug_updates_enabled = 5;
    44  
    45    // Config related to test variant analysis.
    46    TestVariantAnalysis test_variant_analysis = 6;
    47  
    48    // Config related to ingestion.
    49    Ingestion ingestion = 7;
    50  
    51    // Config to control the test verdict export.
    52    TestVerdictExport test_verdict_export = 8;
    53  
    54    // Configuration related to failure clustering.
    55    ClusteringSystem clustering = 9;
    56  
    57    // Configuration related to automatic bug management.
    58    BugManagementSystem bug_management = 10;
    59  }
    60  
    61  // TestVariantAnalysis controls how LUCI Analysis run test variant
    62  // analysis.
    63  // It can be used to turn on or off test variant analysis if a problem occurs.
    64  message TestVariantAnalysis {
    65    // Controls whether we should run test variant analysis during ingestion.
    66    // It should be only enabled on dev at the beginning, before we are confident
    67    // enough to turn it on for prod.
    68    bool enabled = 1;
    69    // Controls whether we should export test variant analysis result to
    70    // BigQuery. To turn this on, the "enabled" flag should also be turned on.
    71    bool bigquery_export_enabled = 2;
    72  }
    73  
    74  // ClusteringSystem controls system-level settings related to LUCI Analysis
    75  // clustering. For project-level clustering settings, see the
    76  // `Clustering` message instead.
    77  message ClusteringSystem {
    78    // Controls whether test variant analysis may be queried when clustering
    79    // failures. If set, the test_variant_branch column will be populated
    80    // for clustered_failures rows in BigQuery, if the failures have source
    81    // position data.
    82    bool query_test_variant_analysis_enabled = 1;
    83  }
    84  
    85  // Settings to control ingestion.
    86  message Ingestion {
    87    // Whether ingestion should be limited to allowlisted projects only.
    88    // By default, allowlisting is not enabled and all projects are ingested.
    89    bool project_allowlist_enabled = 1;
    90  
    91    // The list of allowlisted LUCI projects, e.g. "chromium", "chromeos".
    92    // Only used if project_allowlist_enabled is set.
    93    repeated string project_allowlist = 2;
    94  }
    95  
    96  // TestVerdictExport contains settings to control the test verdict export.
    97  message TestVerdictExport {
    98    // Controls whether test verdicts are exported. Can be used to
    99    // contain damage during production incidents.
   100    bool enabled = 1;
   101  }
   102  
   103  // BugManagementSystem controls system-level settings related to
   104  // automatic bug management. For project-level clustering settings, see
   105  // the `BugManagement` message instead.
   106  message BugManagementSystem {
   107    // Deprecated. No longer has any effect. Retained for textproto
   108    // compatibility only. Policy-based bug filing is now always enabled.
   109    bool policy_based_management_enabled = 1;
   110  }