.. _envoy_v3_api_file_envoy/admin/v3/clusters.proto:

Clusters
========


.. _envoy_v3_api_msg_admin.v3.Clusters:

admin.v3.Clusters
-----------------

`[admin.v3.Clusters proto] <https://github.com/envoyproxy/envoy/blob/v1.13.0/api/envoy/admin/v3/clusters.proto#L19>`_

Admin endpoint uses this wrapper for `/clusters` to display cluster status information.
See :ref:`/clusters <operations_admin_interface_clusters>` for more information.

.. code-block:: json

  {
    "cluster_statuses": []
  }

.. _envoy_v3_api_field_admin.v3.Clusters.cluster_statuses:

cluster_statuses
  (:ref:`admin.v3.ClusterStatus <envoy_v3_api_msg_admin.v3.ClusterStatus>`) Mapping from cluster name to each cluster's status.
  
  


.. _envoy_v3_api_msg_admin.v3.ClusterStatus:

admin.v3.ClusterStatus
----------------------

`[admin.v3.ClusterStatus proto] <https://github.com/envoyproxy/envoy/blob/v1.13.0/api/envoy/admin/v3/clusters.proto#L28>`_

Details an individual cluster's current status.

.. code-block:: json

  {
    "name": "...",
    "added_via_api": "...",
    "success_rate_ejection_threshold": "{...}",
    "host_statuses": [],
    "local_origin_success_rate_ejection_threshold": "{...}"
  }

.. _envoy_v3_api_field_admin.v3.ClusterStatus.name:

name
  (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) Name of the cluster.
  
  
.. _envoy_v3_api_field_admin.v3.ClusterStatus.added_via_api:

added_via_api
  (`bool <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) Denotes whether this cluster was added via API or configured statically.
  
  
.. _envoy_v3_api_field_admin.v3.ClusterStatus.success_rate_ejection_threshold:

success_rate_ejection_threshold
  (:ref:`type.v3.Percent <envoy_v3_api_msg_type.v3.Percent>`) The success rate threshold used in the last interval.
  If
  :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
  is *false*, all errors: externally and locally generated were used to calculate the threshold.
  If
  :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
  is *true*, only externally generated errors were used to calculate the threshold.
  The threshold is used to eject hosts based on their success rate. See
  :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for details.
  
  Note: this field may be omitted in any of the three following cases:
  
  1. There were not enough hosts with enough request volume to proceed with success rate based
     outlier ejection.
  2. The threshold is computed to be < 0 because a negative value implies that there was no
     threshold for that interval.
  3. Outlier detection is not enabled for this cluster.
  
  
.. _envoy_v3_api_field_admin.v3.ClusterStatus.host_statuses:

host_statuses
  (:ref:`admin.v3.HostStatus <envoy_v3_api_msg_admin.v3.HostStatus>`) Mapping from host address to the host's current status.
  
  
.. _envoy_v3_api_field_admin.v3.ClusterStatus.local_origin_success_rate_ejection_threshold:

local_origin_success_rate_ejection_threshold
  (:ref:`type.v3.Percent <envoy_v3_api_msg_type.v3.Percent>`) The success rate threshold used in the last interval when only locally originated failures were
  taken into account and externally originated errors were treated as success.
  This field should be interpreted only when
  :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
  is *true*. The threshold is used to eject hosts based on their success rate.
  See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
  details.
  
  Note: this field may be omitted in any of the three following cases:
  
  1. There were not enough hosts with enough request volume to proceed with success rate based
     outlier ejection.
  2. The threshold is computed to be < 0 because a negative value implies that there was no
     threshold for that interval.
  3. Outlier detection is not enabled for this cluster.
  
  


.. _envoy_v3_api_msg_admin.v3.HostStatus:

admin.v3.HostStatus
-------------------

`[admin.v3.HostStatus proto] <https://github.com/envoyproxy/envoy/blob/v1.13.0/api/envoy/admin/v3/clusters.proto#L79>`_

Current state of a particular host.

.. code-block:: json

  {
    "address": "{...}",
    "stats": [],
    "health_status": "{...}",
    "success_rate": "{...}",
    "weight": "...",
    "hostname": "...",
    "priority": "...",
    "local_origin_success_rate": "{...}"
  }

.. _envoy_v3_api_field_admin.v3.HostStatus.address:

address
  (:ref:`config.core.v3.Address <envoy_v3_api_msg_config.core.v3.Address>`) Address of this host.
  
  
.. _envoy_v3_api_field_admin.v3.HostStatus.stats:

stats
  (:ref:`admin.v3.SimpleMetric <envoy_v3_api_msg_admin.v3.SimpleMetric>`) List of stats specific to this host.
  
  
.. _envoy_v3_api_field_admin.v3.HostStatus.health_status:

health_status
  (:ref:`admin.v3.HostHealthStatus <envoy_v3_api_msg_admin.v3.HostHealthStatus>`) The host's current health status.
  
  
.. _envoy_v3_api_field_admin.v3.HostStatus.success_rate:

success_rate
  (:ref:`type.v3.Percent <envoy_v3_api_msg_type.v3.Percent>`) Request success rate for this host over the last calculated interval.
  If
  :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
  is *false*, all errors: externally and locally generated were used in success rate
  calculation. If
  :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
  is *true*, only externally generated errors were used in success rate calculation.
  See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
  details.
  
  Note: the message will not be present if host did not have enough request volume to calculate
  success rate or the cluster did not have enough hosts to run through success rate outlier
  ejection.
  
  
.. _envoy_v3_api_field_admin.v3.HostStatus.weight:

weight
  (`uint32 <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The host's weight. If not configured, the value defaults to 1.
  
  
.. _envoy_v3_api_field_admin.v3.HostStatus.hostname:

hostname
  (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The hostname of the host, if applicable.
  
  
.. _envoy_v3_api_field_admin.v3.HostStatus.priority:

priority
  (`uint32 <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The host's priority. If not configured, the value defaults to 0 (highest priority).
  
  
.. _envoy_v3_api_field_admin.v3.HostStatus.local_origin_success_rate:

local_origin_success_rate
  (:ref:`type.v3.Percent <envoy_v3_api_msg_type.v3.Percent>`) Request success rate for this host over the last calculated
  interval when only locally originated errors are taken into account and externally originated
  errors were treated as success.
  This field should be interpreted only when
  :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
  is *true*.
  See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
  details.
  
  Note: the message will not be present if host did not have enough request volume to calculate
  success rate or the cluster did not have enough hosts to run through success rate outlier
  ejection.
  
  


.. _envoy_v3_api_msg_admin.v3.HostHealthStatus:

admin.v3.HostHealthStatus
-------------------------

`[admin.v3.HostHealthStatus proto] <https://github.com/envoyproxy/envoy/blob/v1.13.0/api/envoy/admin/v3/clusters.proto#L132>`_

Health status for a host.

.. code-block:: json

  {
    "failed_active_health_check": "...",
    "failed_outlier_check": "...",
    "failed_active_degraded_check": "...",
    "pending_dynamic_removal": "...",
    "pending_active_hc": "...",
    "eds_health_status": "..."
  }

.. _envoy_v3_api_field_admin.v3.HostHealthStatus.failed_active_health_check:

failed_active_health_check
  (`bool <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The host is currently failing active health checks.
  
  
.. _envoy_v3_api_field_admin.v3.HostHealthStatus.failed_outlier_check:

failed_outlier_check
  (`bool <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The host is currently considered an outlier and has been ejected.
  
  
.. _envoy_v3_api_field_admin.v3.HostHealthStatus.failed_active_degraded_check:

failed_active_degraded_check
  (`bool <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The host is currently being marked as degraded through active health checking.
  
  
.. _envoy_v3_api_field_admin.v3.HostHealthStatus.pending_dynamic_removal:

pending_dynamic_removal
  (`bool <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The host has been removed from service discovery, but is being stabilized due to active
  health checking.
  
  
.. _envoy_v3_api_field_admin.v3.HostHealthStatus.pending_active_hc:

pending_active_hc
  (`bool <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The host has not yet been health checked.
  
  
.. _envoy_v3_api_field_admin.v3.HostHealthStatus.eds_health_status:

eds_health_status
  (:ref:`config.core.v3.HealthStatus <envoy_v3_api_enum_config.core.v3.HealthStatus>`) Health status as reported by EDS. Note: only HEALTHY and UNHEALTHY are currently supported
  here.