29#include <flow/util/stat/histo.hpp>
30#include <flow/util/stat/stat_set.hpp>
130template<
typename Visitor>
135 FLOW_UTIL_STAT_DECLARE(m_count, ACCUMULATOR);
136 FLOW_UTIL_STAT_DECLARE(m_histo_latency_usec, ACCUMULATOR);
137 FLOW_UTIL_STAT_DECLARE(m_timeouts, ACCUMULATOR);
138 FLOW_UTIL_STAT_DECLARE(m_late_responses, ACCUMULATOR);
141template<
typename Visitor>
150 src_stats ? &src_stats->
m_core :
nullptr,
151 target_stats ? &target_stats->
m_core :
nullptr,
158 declare_stats(flow::util::stat::Stat_name{name_prefix,
"sync_req."},
160 target_stats ? &target_stats->
m_sync_req :
nullptr,
Stats-related sub-namespace, for ADL segregation and general organization.
void declare_stats(const flow::util::stat::Stat_name &name_prefix, const Channel_sync_req_stats *src_stats, Channel_sync_req_stats *target_stats, Visitor &&visitor)
Declares the stats for Channel_sync_req_stats.
void declare_stats(const flow::util::stat::Stat_name &name_prefix, const Channel_stats *src_stats, Channel_stats *target_stats, Visitor &&visitor)
Declares the stats for Channel_stats.
Cumulative stats from a struc::Channel, composing the underlying sync_io::stat::Channel_stats with st...
sync_io::stat::Channel_stats m_core
Stats from the underlying sync_io::Channel.
Channel_sync_req_stats m_sync_req
Stats specific to Channel::sync_request().
Stats specific to Channel::sync_request() – the blocking synchronous request-response API available o...
flow::util::stat::Histogram_counter m_histo_latency_usec
Channel::sync_request() real-time latency histogram: time period from initiating non-blocking send to...
uint64_t m_timeouts
Channel::sync_request() invocations (counted in m_count) that returned transport::error::Code::S_TIME...
uint64_t m_count
Total valid Channel::sync_request() invocations.
uint64_t m_late_responses
Count of the event wherein response arrived after Channel::sync_request() had already timed out; the ...
static constexpr flow::util::stat::Histogram_counter::value_t S_HISTO_RTT_BUCKET_N_SZ_USEC
Last-bucket width for m_histo_one_off_request_rtt_usec (default config); values past it land in that ...
static const std::vector< flow::util::stat::Histogram_counter::value_t > S_HISTO_RTT_BUCKET_VAL0S_USEC
Bucket min-values for m_histo_one_off_request_rtt_usec (default config): a log-scale-ish 1-2-5 ladder...
Cumulative stats from a struc::sync_io::Channel, covering both send and receive directions as well as...