Namespaces | Functions | Variables
outlier_detection.cc File Reference
#include <grpc/support/port_platform.h>
#include "src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h"
#include <stddef.h>
#include <algorithm>
#include <atomic>
#include <cmath>
#include <cstdint>
#include <map>
#include <memory>
#include <set>
#include <string>
#include <utility>
#include <vector>
#include "absl/memory/memory.h"
#include "absl/random/random.h"
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/strings/string_view.h"
#include "absl/types/variant.h"
#include <grpc/impl/codegen/connectivity_state.h>
#include <grpc/impl/codegen/grpc_types.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include "src/core/ext/filters/client_channel/lb_policy.h"
#include "src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h"
#include "src/core/ext/filters/client_channel/lb_policy_factory.h"
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
#include "src/core/ext/filters/client_channel/subchannel_interface.h"
#include "src/core/lib/address_utils/sockaddr_utils.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/gpr/env.h"
#include "src/core/lib/gpr/string.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/iomgr/iomgr_fwd.h"
#include "src/core/lib/iomgr/pollset_set.h"
#include "src/core/lib/iomgr/timer.h"
#include "src/core/lib/iomgr/work_serializer.h"
#include "src/core/lib/json/json.h"
#include "src/core/lib/json/json_util.h"
#include "src/core/lib/resolver/server_address.h"
#include "src/core/lib/transport/connectivity_state.h"
Include dependency graph for outlier_detection.cc:

Go to the source code of this file.

Namespaces

 grpc_core
 

Functions

void grpc_lb_policy_outlier_detection_init ()
 
void grpc_lb_policy_outlier_detection_shutdown ()
 
bool grpc_core::XdsOutlierDetectionEnabled ()
 

Variables

TraceFlag grpc_core::grpc_outlier_detection_lb_trace (false, "outlier_detection_lb")
 

Function Documentation

◆ grpc_lb_policy_outlier_detection_init()

void grpc_lb_policy_outlier_detection_init ( )

Definition at line 1028 of file outlier_detection.cc.

◆ grpc_lb_policy_outlier_detection_shutdown()

void grpc_lb_policy_outlier_detection_shutdown ( )

Definition at line 1036 of file outlier_detection.cc.

Variable Documentation

◆ active_bucket_

std::atomic<Bucket*> active_bucket_ {current_bucket_.get()}
private

Definition at line 309 of file outlier_detection.cc.

◆ backup_bucket_

std::unique_ptr<Bucket> backup_bucket_ = absl::make_unique<Bucket>()
private

Definition at line 306 of file outlier_detection.cc.

◆ bit_gen_

absl::BitGen bit_gen_
private

Definition at line 380 of file outlier_detection.cc.

◆ child_policy_

OrphanablePtr<LoadBalancingPolicy> child_policy_
private

Definition at line 117 of file outlier_detection.cc.

◆ config_

RefCountedPtr<OutlierDetectionLbConfig> config_
private

Definition at line 395 of file outlier_detection.cc.

◆ counting_enabled_

bool counting_enabled_
private

Definition at line 337 of file outlier_detection.cc.

◆ current_bucket_

std::unique_ptr<Bucket> current_bucket_ = absl::make_unique<Bucket>()
private

Definition at line 305 of file outlier_detection.cc.

◆ ejected_

bool ejected_ = false
private

Definition at line 219 of file outlier_detection.cc.

◆ ejection_time_

absl::optional<Timestamp> ejection_time_
private

Definition at line 311 of file outlier_detection.cc.

◆ ejection_timer_

OrphanablePtr<EjectionTimer> ejection_timer_
private

Definition at line 407 of file outlier_detection.cc.

◆ failures

std::atomic<uint64_t> failures

Definition at line 233 of file outlier_detection.cc.

◆ last_seen_state_

absl::optional<grpc_connectivity_state> last_seen_state_
private

Definition at line 217 of file outlier_detection.cc.

◆ last_seen_status_

absl::Status last_seen_status_
private

Definition at line 218 of file outlier_detection.cc.

◆ multiplier_

uint32_t multiplier_ = 0
private

Definition at line 310 of file outlier_detection.cc.

◆ on_timer_

grpc_closure on_timer_
private

Definition at line 377 of file outlier_detection.cc.

◆ original_subchannel_call_tracker_

std::unique_ptr<LoadBalancingPolicy::SubchannelCallTrackerInterface> original_subchannel_call_tracker_
private

Definition at line 490 of file outlier_detection.cc.

◆ outlier_detection_config_

OutlierDetectionConfig outlier_detection_config_
private

Definition at line 116 of file outlier_detection.cc.

◆ outlier_detection_policy_

RefCountedPtr<OutlierDetectionLb> outlier_detection_policy_
private

Definition at line 359 of file outlier_detection.cc.

◆ parent_

RefCountedPtr<OutlierDetectionLb> parent_
private

Definition at line 375 of file outlier_detection.cc.

◆ picker_

RefCountedPtr<RefCountedPicker> picker_
private

Definition at line 323 of file outlier_detection.cc.

◆ shutting_down_

bool shutting_down_ = false
private

Definition at line 398 of file outlier_detection.cc.

◆ start_time_

Timestamp start_time_
private

Definition at line 379 of file outlier_detection.cc.

◆ state_

Definition at line 403 of file outlier_detection.cc.

◆ status_

absl::Status status_
private

Definition at line 404 of file outlier_detection.cc.

◆ subchannel_state_

RefCountedPtr<SubchannelState> subchannel_state_
private

Definition at line 222 of file outlier_detection.cc.

◆ subchannel_state_map_

std::map<std::string, RefCountedPtr<SubchannelState> > subchannel_state_map_
private

Definition at line 406 of file outlier_detection.cc.

◆ subchannels_

std::set<SubchannelWrapper*> subchannels_
private

Definition at line 312 of file outlier_detection.cc.

◆ successes

std::atomic<uint64_t> successes

Definition at line 232 of file outlier_detection.cc.

◆ timer_

grpc_timer timer_
private

Definition at line 376 of file outlier_detection.cc.

◆ timer_pending_

bool timer_pending_ = true
private

Definition at line 378 of file outlier_detection.cc.

◆ watcher_

std::unique_ptr<SubchannelInterface::ConnectivityStateWatcherInterface> watcher_
private

Definition at line 216 of file outlier_detection.cc.

◆ watchers_

std::map<SubchannelInterface::ConnectivityStateWatcherInterface*, WatcherWrapper*> watchers_
private

Definition at line 226 of file outlier_detection.cc.



grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:25