...

Text file src/github.com/datawire/ambassador/v2/api/envoy/admin/v4alpha/clusters.proto

Documentation: github.com/datawire/ambassador/v2/api/envoy/admin/v4alpha

     1syntax = "proto3";
     2
     3package envoy.admin.v4alpha;
     4
     5import "envoy/admin/v4alpha/metrics.proto";
     6import "envoy/config/cluster/v4alpha/circuit_breaker.proto";
     7import "envoy/config/core/v4alpha/address.proto";
     8import "envoy/config/core/v4alpha/base.proto";
     9import "envoy/config/core/v4alpha/health_check.proto";
    10import "envoy/type/v3/percent.proto";
    11
    12import "udpa/annotations/status.proto";
    13import "udpa/annotations/versioning.proto";
    14
    15option java_package = "io.envoyproxy.envoy.admin.v4alpha";
    16option java_outer_classname = "ClustersProto";
    17option java_multiple_files = true;
    18option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE;
    19
    20// [#protodoc-title: Clusters]
    21
    22// Admin endpoint uses this wrapper for `/clusters` to display cluster status information.
    23// See :ref:`/clusters <operations_admin_interface_clusters>` for more information.
    24message Clusters {
    25  option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.Clusters";
    26
    27  // Mapping from cluster name to each cluster's status.
    28  repeated ClusterStatus cluster_statuses = 1;
    29}
    30
    31// Details an individual cluster's current status.
    32// [#next-free-field: 7]
    33message ClusterStatus {
    34  option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.ClusterStatus";
    35
    36  // Name of the cluster.
    37  string name = 1;
    38
    39  // Denotes whether this cluster was added via API or configured statically.
    40  bool added_via_api = 2;
    41
    42  // The success rate threshold used in the last interval.
    43  // If
    44  // :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
    45  // is *false*, all errors: externally and locally generated were used to calculate the threshold.
    46  // If
    47  // :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
    48  // is *true*, only externally generated errors were used to calculate the threshold.
    49  // The threshold is used to eject hosts based on their success rate. See
    50  // :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for details.
    51  //
    52  // Note: this field may be omitted in any of the three following cases:
    53  //
    54  // 1. There were not enough hosts with enough request volume to proceed with success rate based
    55  //    outlier ejection.
    56  // 2. The threshold is computed to be < 0 because a negative value implies that there was no
    57  //    threshold for that interval.
    58  // 3. Outlier detection is not enabled for this cluster.
    59  type.v3.Percent success_rate_ejection_threshold = 3;
    60
    61  // Mapping from host address to the host's current status.
    62  repeated HostStatus host_statuses = 4;
    63
    64  // The success rate threshold used in the last interval when only locally originated failures were
    65  // taken into account and externally originated errors were treated as success.
    66  // This field should be interpreted only when
    67  // :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
    68  // is *true*. The threshold is used to eject hosts based on their success rate.
    69  // See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
    70  // details.
    71  //
    72  // Note: this field may be omitted in any of the three following cases:
    73  //
    74  // 1. There were not enough hosts with enough request volume to proceed with success rate based
    75  //    outlier ejection.
    76  // 2. The threshold is computed to be < 0 because a negative value implies that there was no
    77  //    threshold for that interval.
    78  // 3. Outlier detection is not enabled for this cluster.
    79  type.v3.Percent local_origin_success_rate_ejection_threshold = 5;
    80
    81  // :ref:`Circuit breaking <arch_overview_circuit_break>` settings of the cluster.
    82  config.cluster.v4alpha.CircuitBreakers circuit_breakers = 6;
    83}
    84
    85// Current state of a particular host.
    86// [#next-free-field: 10]
    87message HostStatus {
    88  option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.HostStatus";
    89
    90  // Address of this host.
    91  config.core.v4alpha.Address address = 1;
    92
    93  // List of stats specific to this host.
    94  repeated SimpleMetric stats = 2;
    95
    96  // The host's current health status.
    97  HostHealthStatus health_status = 3;
    98
    99  // Request success rate for this host over the last calculated interval.
   100  // If
   101  // :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
   102  // is *false*, all errors: externally and locally generated were used in success rate
   103  // calculation. If
   104  // :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
   105  // is *true*, only externally generated errors were used in success rate calculation.
   106  // See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
   107  // details.
   108  //
   109  // Note: the message will not be present if host did not have enough request volume to calculate
   110  // success rate or the cluster did not have enough hosts to run through success rate outlier
   111  // ejection.
   112  type.v3.Percent success_rate = 4;
   113
   114  // The host's weight. If not configured, the value defaults to 1.
   115  uint32 weight = 5;
   116
   117  // The hostname of the host, if applicable.
   118  string hostname = 6;
   119
   120  // The host's priority. If not configured, the value defaults to 0 (highest priority).
   121  uint32 priority = 7;
   122
   123  // Request success rate for this host over the last calculated
   124  // interval when only locally originated errors are taken into account and externally originated
   125  // errors were treated as success.
   126  // This field should be interpreted only when
   127  // :ref:`outlier_detection.split_external_local_origin_errors<envoy_api_field_config.cluster.v4alpha.OutlierDetection.split_external_local_origin_errors>`
   128  // is *true*.
   129  // See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
   130  // details.
   131  //
   132  // Note: the message will not be present if host did not have enough request volume to calculate
   133  // success rate or the cluster did not have enough hosts to run through success rate outlier
   134  // ejection.
   135  type.v3.Percent local_origin_success_rate = 8;
   136
   137  // locality of the host.
   138  config.core.v4alpha.Locality locality = 9;
   139}
   140
   141// Health status for a host.
   142// [#next-free-field: 7]
   143message HostHealthStatus {
   144  option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.HostHealthStatus";
   145
   146  // The host is currently failing active health checks.
   147  bool failed_active_health_check = 1;
   148
   149  // The host is currently considered an outlier and has been ejected.
   150  bool failed_outlier_check = 2;
   151
   152  // The host is currently being marked as degraded through active health checking.
   153  bool failed_active_degraded_check = 4;
   154
   155  // The host has been removed from service discovery, but is being stabilized due to active
   156  // health checking.
   157  bool pending_dynamic_removal = 5;
   158
   159  // The host has not yet been health checked.
   160  bool pending_active_hc = 6;
   161
   162  // Health status as reported by EDS. Note: only HEALTHY and UNHEALTHY are currently supported
   163  // here.
   164  // [#comment:TODO(mrice32): pipe through remaining EDS health status possibilities.]
   165  config.core.v4alpha.HealthStatus eds_health_status = 3;
   166}

View as plain text