.. _envoy_v3_api_file_envoy/data/cluster/v3/outlier_detection_event.proto:

Outlier detection logging events (proto)
========================================


:ref:`Outlier detection logging <arch_overview_outlier_detection_logging>`.




.. _envoy_v3_api_msg_data.cluster.v3.OutlierDetectionEvent:

data.cluster.v3.OutlierDetectionEvent
-------------------------------------


:repo:`[data.cluster.v3.OutlierDetectionEvent proto] <api/envoy/data/cluster/v3/outlier_detection_event.proto#L77>`




.. code-block:: json
  :force:

  {
    "type": ...,
    "timestamp": {...},
    "secs_since_last_action": {...},
    "cluster_name": ...,
    "upstream_url": ...,
    "action": ...,
    "num_ejections": ...,
    "enforced": ...,
    "eject_success_rate_event": {...},
    "eject_consecutive_event": {...},
    "eject_failure_percentage_event": {...}
  }

.. _envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.type:


type
  (:ref:`data.cluster.v3.OutlierEjectionType <envoy_v3_api_enum_data.cluster.v3.OutlierEjectionType>`) In case of eject represents type of ejection that took place.


.. _envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.timestamp:


timestamp
  (`Timestamp <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#timestamp>`_) Timestamp for event.


.. _envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.secs_since_last_action:


secs_since_last_action
  (`UInt64Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#uint64value>`_) The time in seconds since the last action (either an ejection or unejection) took place.


.. _envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.cluster_name:


cluster_name
  (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) The :ref:`cluster <envoy_v3_api_msg_config.cluster.v3.Cluster>` that owns the ejected host.


.. _envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.upstream_url:


upstream_url
  (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) The URL of the ejected host. E.g., ``tcp://1.2.3.4:80``.


.. _envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.action:


action
  (:ref:`data.cluster.v3.Action <envoy_v3_api_enum_data.cluster.v3.Action>`) The action that took place.


.. _envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.num_ejections:


num_ejections
  (`uint32 <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) If ``action`` is ``eject``, specifies the number of times the host has been ejected (local to
  that Envoy and gets reset if the host gets removed from the upstream cluster for any reason and
  then re-added).


.. _envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.enforced:


enforced
  (`bool <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) If ``action`` is ``eject``, specifies if the ejection was enforced. ``true`` means the host was
  ejected. ``false`` means the event was logged but the host was not actually ejected.


.. _envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.eject_success_rate_event:


eject_success_rate_event
  (:ref:`data.cluster.v3.OutlierEjectSuccessRate <envoy_v3_api_msg_data.cluster.v3.OutlierEjectSuccessRate>`) 
  

  Precisely one of :ref:`eject_success_rate_event <envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.eject_success_rate_event>`, :ref:`eject_consecutive_event <envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.eject_consecutive_event>`, :ref:`eject_failure_percentage_event <envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.eject_failure_percentage_event>` must be set.

.. _envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.eject_consecutive_event:


eject_consecutive_event
  (:ref:`data.cluster.v3.OutlierEjectConsecutive <envoy_v3_api_msg_data.cluster.v3.OutlierEjectConsecutive>`) 
  

  Precisely one of :ref:`eject_success_rate_event <envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.eject_success_rate_event>`, :ref:`eject_consecutive_event <envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.eject_consecutive_event>`, :ref:`eject_failure_percentage_event <envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.eject_failure_percentage_event>` must be set.

.. _envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.eject_failure_percentage_event:


eject_failure_percentage_event
  (:ref:`data.cluster.v3.OutlierEjectFailurePercentage <envoy_v3_api_msg_data.cluster.v3.OutlierEjectFailurePercentage>`) 
  

  Precisely one of :ref:`eject_success_rate_event <envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.eject_success_rate_event>`, :ref:`eject_consecutive_event <envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.eject_consecutive_event>`, :ref:`eject_failure_percentage_event <envoy_v3_api_field_data.cluster.v3.OutlierDetectionEvent.eject_failure_percentage_event>` must be set.


.. _envoy_v3_api_msg_data.cluster.v3.OutlierEjectSuccessRate:

data.cluster.v3.OutlierEjectSuccessRate
---------------------------------------


:repo:`[data.cluster.v3.OutlierEjectSuccessRate proto] <api/envoy/data/cluster/v3/outlier_detection_event.proto#L119>`




.. code-block:: json
  :force:

  {
    "host_success_rate": ...,
    "cluster_average_success_rate": ...,
    "cluster_success_rate_ejection_threshold": ...
  }

.. _envoy_v3_api_field_data.cluster.v3.OutlierEjectSuccessRate.host_success_rate:


host_success_rate
  (`uint32 <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) Host’s success rate at the time of the ejection event on a 0-100 range.


.. _envoy_v3_api_field_data.cluster.v3.OutlierEjectSuccessRate.cluster_average_success_rate:


cluster_average_success_rate
  (`uint32 <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) Average success rate of the hosts in the cluster at the time of the ejection event on a 0-100
  range.


.. _envoy_v3_api_field_data.cluster.v3.OutlierEjectSuccessRate.cluster_success_rate_ejection_threshold:


cluster_success_rate_ejection_threshold
  (`uint32 <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) Success rate ejection threshold at the time of the ejection event.



.. _envoy_v3_api_msg_data.cluster.v3.OutlierEjectConsecutive:

data.cluster.v3.OutlierEjectConsecutive
---------------------------------------


:repo:`[data.cluster.v3.OutlierEjectConsecutive proto] <api/envoy/data/cluster/v3/outlier_detection_event.proto#L134>`






.. _envoy_v3_api_msg_data.cluster.v3.OutlierEjectFailurePercentage:

data.cluster.v3.OutlierEjectFailurePercentage
---------------------------------------------


:repo:`[data.cluster.v3.OutlierEjectFailurePercentage proto] <api/envoy/data/cluster/v3/outlier_detection_event.proto#L139>`




.. code-block:: json
  :force:

  {
    "host_success_rate": ...
  }

.. _envoy_v3_api_field_data.cluster.v3.OutlierEjectFailurePercentage.host_success_rate:


host_success_rate
  (`uint32 <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) Host's success rate at the time of the ejection event on a 0-100 range.



.. _envoy_v3_api_enum_data.cluster.v3.OutlierEjectionType:

Enum data.cluster.v3.OutlierEjectionType
----------------------------------------


:repo:`[data.cluster.v3.OutlierEjectionType proto] <api/envoy/data/cluster/v3/outlier_detection_event.proto#L21>`

Type of ejection that took place



.. _envoy_v3_api_enum_value_data.cluster.v3.OutlierEjectionType.CONSECUTIVE_5XX:


CONSECUTIVE_5XX
  *(DEFAULT)* ⁣In case upstream host returns certain number of consecutive 5xx.
  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 type of errors are treated as HTTP 5xx errors.
  See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for
  details.


.. _envoy_v3_api_enum_value_data.cluster.v3.OutlierEjectionType.CONSECUTIVE_GATEWAY_FAILURE:


CONSECUTIVE_GATEWAY_FAILURE
  ⁣In case upstream host returns certain number of consecutive gateway errors


.. _envoy_v3_api_enum_value_data.cluster.v3.OutlierEjectionType.SUCCESS_RATE:


SUCCESS_RATE
  ⁣Runs over aggregated success rate statistics from every host in cluster
  and selects hosts for which ratio of successful replies deviates from other hosts
  in the cluster.
  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) are used to calculate success rate
  statistics. See :ref:`Cluster outlier detection <arch_overview_outlier_detection>`
  documentation for details.


.. _envoy_v3_api_enum_value_data.cluster.v3.OutlierEjectionType.CONSECUTIVE_LOCAL_ORIGIN_FAILURE:


CONSECUTIVE_LOCAL_ORIGIN_FAILURE
  ⁣Consecutive local origin failures: Connection failures, resets, timeouts, etc
  This type of ejection happens only when
  :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
  is set to ``true``.
  See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for


.. _envoy_v3_api_enum_value_data.cluster.v3.OutlierEjectionType.SUCCESS_RATE_LOCAL_ORIGIN:


SUCCESS_RATE_LOCAL_ORIGIN
  ⁣Runs over aggregated success rate statistics for local origin failures
  for all hosts in the cluster and selects hosts for which success rate deviates from other
  hosts in the cluster. This type of ejection happens only when
  :ref:`outlier_detection.split_external_local_origin_errors<envoy_v3_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
  is set to ``true``.
  See :ref:`Cluster outlier detection <arch_overview_outlier_detection>` documentation for


.. _envoy_v3_api_enum_value_data.cluster.v3.OutlierEjectionType.FAILURE_PERCENTAGE:


FAILURE_PERCENTAGE
  ⁣Runs over aggregated success rate statistics from every host in cluster and selects hosts for
  which ratio of failed replies is above configured value.


.. _envoy_v3_api_enum_value_data.cluster.v3.OutlierEjectionType.FAILURE_PERCENTAGE_LOCAL_ORIGIN:


FAILURE_PERCENTAGE_LOCAL_ORIGIN
  ⁣Runs over aggregated success rate statistics for local origin failures from every host in
  cluster and selects hosts for which ratio of failed replies is above configured value.



.. _envoy_v3_api_enum_data.cluster.v3.Action:

Enum data.cluster.v3.Action
---------------------------


:repo:`[data.cluster.v3.Action proto] <api/envoy/data/cluster/v3/outlier_detection_event.proto#L68>`

Represents possible action applied to upstream host



.. _envoy_v3_api_enum_value_data.cluster.v3.Action.EJECT:


EJECT
  *(DEFAULT)* ⁣In case host was excluded from service


.. _envoy_v3_api_enum_value_data.cluster.v3.Action.UNEJECT:


UNEJECT
  ⁣In case host was brought back into service