| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 syntax = "proto3"; | 5 syntax = "proto3"; |
| 6 | 6 |
| 7 package svcconfig; | 7 package svcconfig; |
| 8 | 8 |
| 9 import "transport.proto"; | 9 import "transport.proto"; |
| 10 import "storage.proto"; | 10 import "storage.proto"; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 string project = 1; | 32 string project = 1; |
| 33 | 33 |
| 34 // The name of the authentication group for administrators. | 34 // The name of the authentication group for administrators. |
| 35 string admin_auth_group = 10; | 35 string admin_auth_group = 10; |
| 36 // The name of the authentication group for backend services. | 36 // The name of the authentication group for backend services. |
| 37 string service_auth_group = 11; | 37 string service_auth_group = 11; |
| 38 | 38 |
| 39 // A list of origin URLs that are allowed to perform CORS RPC calls. | 39 // A list of origin URLs that are allowed to perform CORS RPC calls. |
| 40 repeated string rpc_allow_origins = 20; | 40 repeated string rpc_allow_origins = 20; |
| 41 | 41 |
| 42 // The name of the archive task queue. | 42 // The full path of the archival Pub/Sub topic. |
| 43 string archive_task_queue = 30; | |
| 44 // The amount of time after a log has been terminated before it is candidate | |
| 45 // for archival. | |
| 46 // | 43 // |
| 47 // Archival triggered by this delay will NOT succeed if any log entries are | 44 // The Coordinator must have permission to publish to this topic. |
| 48 // missing from intermediate storage. | 45 string archive_topic = 30; |
| 46 |
| 47 // The amount of time after an archive request has been dispatched before it |
| 48 // should be executed. |
| 49 // | 49 // |
| 50 // This should be based on a period of time where it's reasonable to expect | 50 // Since terminal messages can arrive out of order, the archival request may |
| 51 // that all log messages in the transport have arrived for a given log stream. | 51 // be kicked off before all of the log stream data has been loaded into |
| 52 // Since the transport doesn't have to guarantee in-order delivery, this | 52 // intermediate storage. If this happens, the Archivist will retry archival |
| 53 // should allow for the case where the terminal log entry arrives before some | 53 // later autometically. |
| 54 // of the intermediate log entries. This will help avoid triggering | 54 // |
| 55 // archive attempts that are doomed to fail because of standard transport lag. | 55 // This parameter is an optimization to stop the archivist from wasting its |
| 56 google.protobuf.Duration archive_delay = 31; | 56 // time until the log stream has a reasonable expectation of being available. |
| 57 google.protobuf.Duration archive_settle_delay = 31; |
| 58 |
| 57 // The amount of time before a log stream is candidate for archival regardless | 59 // The amount of time before a log stream is candidate for archival regardless |
| 58 // of whether or not it's been terminated or complete. | 60 // of whether or not it's been terminated or complete. |
| 59 // | 61 // |
| 60 // This endpoint is a failsafe designed to ensure that log streams with | 62 // This is a failsafe designed to ensure that log streams with missing records |
| 61 // missing records or no terminal record (e.g., Butler crashed) are eventually | 63 // or no terminal record (e.g., Butler crashed) are eventually archived. |
| 62 // moved out of intermediate storage. | |
| 63 // | 64 // |
| 64 // This must be >= `archive_delay`, and should be fairly large (days) to allow | 65 // This should be fairly large (days) to avoid prematurely archiving |
| 65 // for the log stream to complete and for all available log entries to be | 66 // long-running streams, but should be considerably smaller than the |
| 66 // added to intermediate storage. | 67 // intermediate storage data retention period. |
| 67 google.protobuf.Duration archive_delay_max = 32; | 68 google.protobuf.Duration archive_delay_max = 32; |
| 68 } | 69 } |
| 69 | 70 |
| 70 // Collector is the set of configuration parameters for Collector instances. | 71 // Collector is the set of configuration parameters for Collector instances. |
| 71 message Collector { | 72 message Collector { |
| 72 // The maximum number of concurrent transport messages to process. If <= 0, | 73 // The maximum number of concurrent transport messages to process. If <= 0, |
| 73 // a default will be chosen based on the transport. | 74 // a default will be chosen based on the transport. |
| 74 int32 max_concurrent_messages = 1; | 75 int32 max_concurrent_messages = 1; |
| 75 | 76 |
| 76 // The maximum number of concurrent workers to process each ingested message. | 77 // The maximum number of concurrent workers to process each ingested message. |
| 77 // If <= 0, collector.DefaultMaxMessageWorkers will be used. | 78 // If <= 0, collector.DefaultMaxMessageWorkers will be used. |
| 78 int32 max_message_workers = 2; | 79 int32 max_message_workers = 2; |
| 79 | 80 |
| 80 // The maximum number of log stream states to cache locally. If <= 0, a | 81 // The maximum number of log stream states to cache locally. If <= 0, a |
| 81 // default will be used. | 82 // default will be used. |
| 82 int32 state_cache_size = 3; | 83 int32 state_cache_size = 3; |
| 83 | 84 |
| 84 // The maximum amount of time that cached stream state is valid. If <= 0, a | 85 // The maximum amount of time that cached stream state is valid. If <= 0, a |
| 85 // default will be used. | 86 // default will be used. |
| 86 google.protobuf.Duration state_cache_expiration = 4; | 87 google.protobuf.Duration state_cache_expiration = 4; |
| 87 } | 88 } |
| 88 | 89 |
| 89 // Configuration for the Archivist microservice. | 90 // Configuration for the Archivist microservice. |
| 90 message Archivist { | 91 message Archivist { |
| 92 // The name of the archival Pub/Sub subscription. |
| 93 // |
| 94 // This should be connected to "archive_topic", and the Archivist must have |
| 95 // permission to consume from this subscription. |
| 96 string subscription = 1; |
| 97 |
| 91 // The number of tasks to run at a time. If blank, the archivist will choose a | 98 // The number of tasks to run at a time. If blank, the archivist will choose a |
| 92 // default value. | 99 // default value. |
| 93 int32 tasks = 1; | 100 int32 tasks = 2; |
| 94 | 101 |
| 95 // The name of the Google Storage bucket and optional base path to archive | 102 // The name of the Google Storage bucket and optional base path to archive |
| 96 // into. For example: gs://foo/bar | 103 // into. For example: gs://foo/bar |
| 97 // | 104 // |
| 98 // The bucket name must be included (e.g., "gs://foo"). The remainder of the | 105 // The bucket name must be included (e.g., "gs://foo"). The remainder of the |
| 99 // base path is optional based on desired archive location. | 106 // base path is optional based on desired archive location. |
| 100 string gs_base = 10; | 107 string gs_base = 3; |
| 108 // The name of the staging storage bucket. Uses same notation as "gs_base". |
| 109 string gs_staging_base = 4; |
| 110 |
| 101 // If not zero, the maximum number of stream indices between index entries. | 111 // If not zero, the maximum number of stream indices between index entries. |
| 102 int32 stream_index_range = 11; | 112 int32 stream_index_range = 10; |
| 103 // If not zero, the maximum number of prefix indices between index entries. | 113 // If not zero, the maximum number of prefix indices between index entries. |
| 104 int32 prefix_index_range = 12; | 114 int32 prefix_index_range = 11; |
| 105 // If not zero, the maximum number of log data bytes between index entries. | 115 // If not zero, the maximum number of log data bytes between index entries. |
| 106 int32 byte_range = 13; | 116 int32 byte_range = 12; |
| 107 } | 117 } |
| OLD | NEW |