...

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

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

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

View as plain text