diff --git a/envoy/config/overload/v3/overload.proto b/envoy/config/overload/v3/overload.proto index 10cc3433..2f0148f7 100644 --- a/envoy/config/overload/v3/overload.proto +++ b/envoy/config/overload/v3/overload.proto @@ -134,14 +134,37 @@ message OverloadAction { string name = 1 [(validate.rules).string = {min_len: 1}]; // A set of triggers for this action. The state of the action is the maximum - // state of all triggers, which can be scaling between 0 and 1 or saturated. Listeners - // are notified when the overload action changes state. + // state of all triggers, which can be scalar values between 0 and 1 or + // saturated. Listeners are notified when the overload action changes state. + // An overload manager action can only have one trigger for a given resource + // e.g. :ref:`Trigger.name + // ` must be unique + // in this list. repeated Trigger triggers = 2 [(validate.rules).repeated = {min_items: 1}]; // Configuration for the action being instantiated. google.protobuf.Any typed_config = 3; } +// A point within the connection or request lifecycle that provides context on +// whether to shed load at that given stage for the current entity at the +// point. +message LoadShedPoint { + // This is just a well-known string for the LoadShedPoint. + // Deployment specific LoadShedPoints e.g. within a custom extension should + // be prefixed by the company / deployment name to avoid colliding with any + // open source LoadShedPoints. + string name = 1 [(validate.rules).string = {min_len: 1}]; + + // A set of triggers for this LoadShedPoint. The LoadShedPoint will use the + // the maximum state of all triggers, which can be scalar values between 0 and + // 1 or saturated. A LoadShedPoint can only have one trigger for a given + // resource e.g. :ref:`Trigger.name + // ` must be unique in + // this list. + repeated Trigger triggers = 2 [(validate.rules).repeated = {min_items: 1}]; +} + // Configuration for which accounts the WatermarkBuffer Factories should // track. message BufferFactoryConfig { @@ -162,6 +185,7 @@ message BufferFactoryConfig { uint32 minimum_account_to_track_power_of_two = 1 [(validate.rules).uint32 = {lte: 56 gte: 10}]; } +// [#next-free-field: 6] message OverloadManager { option (udpa.annotations.versioning).previous_message_type = "envoy.config.overload.v2alpha.OverloadManager"; @@ -175,6 +199,10 @@ message OverloadManager { // The set of overload actions. repeated OverloadAction actions = 3; + // [#not-implemented-hide:] + // The set of load shed points. + repeated LoadShedPoint loadshed_points = 5; + // Configuration for buffer factory. BufferFactoryConfig buffer_factory_config = 4; }