Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
grpc::load_reporter::LoadReporter Class Reference

#include <load_reporter.h>

Classes

struct  LoadBalancingFeedbackRecord
 

Public Member Functions

CensusViewProvidercensus_view_provider ()
 
CpuStatsProvidercpu_stats_provider ()
 
void FetchAndSample ()
 
std::string GenerateLbId ()
 
grpc::lb::v1::LoadBalancingFeedback GenerateLoadBalancingFeedback ()
 
::google::protobuf::RepeatedPtrField< grpc::lb::v1::Load > GenerateLoads (const std::string &hostname, const std::string &lb_id)
 
 LoadReporter (uint32_t feedback_sample_window_seconds, std::unique_ptr< CensusViewProvider > census_view_provider, std::unique_ptr< CpuStatsProvider > cpu_stats_provider)
 
void ReportStreamClosed (const std::string &hostname, const std::string &lb_id)
 
void ReportStreamCreated (const std::string &hostname, const std::string &lb_id, const std::string &load_key)
 

Private Member Functions

void AppendNewFeedbackRecord (uint64_t rpcs, uint64_t errors)
 
void AttachOrphanLoadId (grpc::lb::v1::Load *load, const PerBalancerStore &per_balancer_store)
 
bool IsRecordInWindow (const LoadBalancingFeedbackRecord &record, std::chrono::system_clock::time_point now)
 
void ProcessViewDataCallEnd (const CensusViewProvider::ViewDataMap &view_data_map)
 
void ProcessViewDataCallStart (const CensusViewProvider::ViewDataMap &view_data_map)
 
void ProcessViewDataOtherCallMetrics (const CensusViewProvider::ViewDataMap &view_data_map)
 

Private Attributes

std::unique_ptr< CensusViewProvidercensus_view_provider_
 
std::unique_ptr< CpuStatsProvidercpu_stats_provider_
 
grpc_core::Mutex feedback_mu_
 
std::deque< LoadBalancingFeedbackRecordfeedback_records_
 
const std::chrono::seconds feedback_sample_window_seconds_
 
LoadDataStore load_data_store_
 
std::atomic< int64_tnext_lb_id_ {0}
 
grpc_core::Mutex store_mu_
 

Detailed Description

Definition at line 126 of file load_reporter.h.

Constructor & Destructor Documentation

◆ LoadReporter()

grpc::load_reporter::LoadReporter::LoadReporter ( uint32_t  feedback_sample_window_seconds,
std::unique_ptr< CensusViewProvider census_view_provider,
std::unique_ptr< CpuStatsProvider cpu_stats_provider 
)
inline

Definition at line 129 of file load_reporter.h.

Member Function Documentation

◆ AppendNewFeedbackRecord()

void grpc::load_reporter::LoadReporter::AppendNewFeedbackRecord ( uint64_t  rpcs,
uint64_t  errors 
)
private

Definition at line 376 of file load_reporter.cc.

◆ AttachOrphanLoadId()

void grpc::load_reporter::LoadReporter::AttachOrphanLoadId ( grpc::lb::v1::Load *  load,
const PerBalancerStore per_balancer_store 
)
private

Definition at line 362 of file load_reporter.cc.

◆ census_view_provider()

CensusViewProvider* grpc::load_reporter::LoadReporter::census_view_provider ( )
inline

Definition at line 176 of file load_reporter.h.

◆ cpu_stats_provider()

CpuStatsProvider* grpc::load_reporter::LoadReporter::cpu_stats_provider ( )
inline

Definition at line 179 of file load_reporter.h.

◆ FetchAndSample()

void grpc::load_reporter::LoadReporter::FetchAndSample ( )

Definition at line 506 of file load_reporter.cc.

◆ GenerateLbId()

std::string grpc::load_reporter::LoadReporter::GenerateLbId ( )

Definition at line 227 of file load_reporter.cc.

◆ GenerateLoadBalancingFeedback()

grpc::lb::v1::LoadBalancingFeedback grpc::load_reporter::LoadReporter::GenerateLoadBalancingFeedback ( )

Definition at line 251 of file load_reporter.cc.

◆ GenerateLoads()

google::protobuf::RepeatedPtrField< grpc::lb::v1::Load > grpc::load_reporter::LoadReporter::GenerateLoads ( const std::string &  hostname,
const std::string &  lb_id 
)

Definition at line 301 of file load_reporter.cc.

◆ IsRecordInWindow()

bool grpc::load_reporter::LoadReporter::IsRecordInWindow ( const LoadBalancingFeedbackRecord record,
std::chrono::system_clock::time_point  now 
)
inlineprivate

Definition at line 212 of file load_reporter.h.

◆ ProcessViewDataCallEnd()

void grpc::load_reporter::LoadReporter::ProcessViewDataCallEnd ( const CensusViewProvider::ViewDataMap view_data_map)
private

Definition at line 427 of file load_reporter.cc.

◆ ProcessViewDataCallStart()

void grpc::load_reporter::LoadReporter::ProcessViewDataCallStart ( const CensusViewProvider::ViewDataMap view_data_map)
private

Definition at line 407 of file load_reporter.cc.

◆ ProcessViewDataOtherCallMetrics()

void grpc::load_reporter::LoadReporter::ProcessViewDataOtherCallMetrics ( const CensusViewProvider::ViewDataMap view_data_map)
private

Definition at line 480 of file load_reporter.cc.

◆ ReportStreamClosed()

void grpc::load_reporter::LoadReporter::ReportStreamClosed ( const std::string &  hostname,
const std::string &  lb_id 
)

Definition at line 399 of file load_reporter.cc.

◆ ReportStreamCreated()

void grpc::load_reporter::LoadReporter::ReportStreamCreated ( const std::string &  hostname,
const std::string &  lb_id,
const std::string &  load_key 
)

Definition at line 389 of file load_reporter.cc.

Member Data Documentation

◆ census_view_provider_

std::unique_ptr<CensusViewProvider> grpc::load_reporter::LoadReporter::census_view_provider_
private

Definition at line 232 of file load_reporter.h.

◆ cpu_stats_provider_

std::unique_ptr<CpuStatsProvider> grpc::load_reporter::LoadReporter::cpu_stats_provider_
private

Definition at line 233 of file load_reporter.h.

◆ feedback_mu_

grpc_core::Mutex grpc::load_reporter::LoadReporter::feedback_mu_
private

Definition at line 226 of file load_reporter.h.

◆ feedback_records_

std::deque<LoadBalancingFeedbackRecord> grpc::load_reporter::LoadReporter::feedback_records_
private

Definition at line 227 of file load_reporter.h.

◆ feedback_sample_window_seconds_

const std::chrono::seconds grpc::load_reporter::LoadReporter::feedback_sample_window_seconds_
private

Definition at line 225 of file load_reporter.h.

◆ load_data_store_

LoadDataStore grpc::load_reporter::LoadReporter::load_data_store_
private

Definition at line 231 of file load_reporter.h.

◆ next_lb_id_

std::atomic<int64_t> grpc::load_reporter::LoadReporter::next_lb_id_ {0}
private

Definition at line 224 of file load_reporter.h.

◆ store_mu_

grpc_core::Mutex grpc::load_reporter::LoadReporter::store_mu_
private

Definition at line 230 of file load_reporter.h.


The documentation for this class was generated from the following files:


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