blob: 7dcae94a53da293c3a03cd40f93d3fddf670f895 [file] [log] [blame]
// Copyright 2016 The Fuchsia Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package cobalt.shuffler;
option go_package = "shuffler";
////////////////////////////////////////////////////////////////////////////
// Messages that describe the shuffler configuration. A global configuration
// is provided that is applicable to all metrics.
////////////////////////////////////////////////////////////////////////////
message Policy {
// Specifies Shuffler's dispatch frequency in hours. For example, if
// |frequency_in_hours| is 48 then every two days the Shuffler will send
// Observations to the Analyzer.
uint32 frequency_in_hours = 1;
// Specifies the probability of dropping random incoming observations from
// Encoder clients before being persisted on Shuffler. For example, if
// p=0.25 then each observation would have a 25% chance of being dropped.
// It should be a value in the range [0.0, 1.0]. A dropped observation will
// not count towards the threshold.
float p_observation_drop = 2;
// The minimum number of Observations that must be present in a batch
// before the Shuffler will dispatch that batch to the Analyzer.
//
// A batch consists of a collection of Observations that all have the
// same |ObservationMetadata| i.e., (metric_id, day_index). The Shuffler
// dispatches Observations to the Analyzer on a per-batch basis.
// For each batch if the size of that batch is at least |threshold| then
// the Observations in that batch will be dispatched to the Analyzer and
// deleted from the Shuffler.
//
// For each batch whose contents are not dispatched to the Analyzer
// because the batch size is too small, the Shuffler will delete those
// Observations from the batch whose age is at least |disposal_age_days|.
uint32 threshold = 3;
// The URL of the Analyzer.
string analyzer_url = 4;
// An Observation that has not been dispatched to the Analyzer will be
// discarded after it has been present on the Shuffler for this many
// days.
uint32 disposal_age_days = 5;
}
// Provides configuration parameters for Shuffler. An instance of
// ShufflerConfig is deserialized from a text file.
message ShufflerConfig {
Policy global_config = 1;
}