* This function returns the success rate of a host over a window of time if the request volume is
void incTotalReqCounter() { success_rate_accumulator_bucket_.load()->total_request_counter_++; }
envoy::data::cluster::v3::OutlierEjectionType getEjectionType() const { return ejection_type_; }
const absl::optional<MonotonicTime>& lastEjectionTime() override { return last_ejection_time_; }
const absl::optional<MonotonicTime>& lastDegradedTime() const { return last_degraded_time_; }
const absl::optional<MonotonicTime>& lastUndegradedTime() const { return last_undegraded_time_; }
constexpr absl::string_view MaxEjectionPercentRuntime = "outlier_detection.max_ejection_percent";
constexpr absl::string_view BaseEjectionTimeMsRuntime = "outlier_detection.base_ejection_time_ms";
constexpr absl::string_view MaxEjectionTimeMsRuntime = "outlier_detection.max_ejection_time_ms";
uint64_t failurePercentageMinimumHosts() const { return failure_percentage_minimum_hosts_; }
uint64_t failurePercentageRequestVolume() const { return failure_percentage_request_volume_; }
uint64_t consecutiveLocalOriginFailure() const { return consecutive_local_origin_failure_; }
uint64_t enforcingLocalOriginSuccessRate() const { return enforcing_local_origin_success_rate_; }
* An implementation of an outlier detector. In the future we may support multiple outlier detection
successRateAverage(DetectorHostMonitor::SuccessRateMonitorType monitor_type) const override {
* contains the average success rate of all valid hosts in the cluster and the ejection threshold.
DetectorImpl(const Cluster& cluster, const envoy::config::cluster::v3::OutlierDetection& config,
void checkHostForUneject(HostSharedPtr host, DetectorHostMonitorImpl* monitor, MonotonicTime now);
const EjectionPair& getSRNums(DetectorHostMonitor::SuccessRateMonitorType monitor_type) const {