5 #ifndef _ROOT_STATS_MANAGER_H_
6 #define _ROOT_STATS_MANAGER_H_
12 #include <vrouter_types.h>
30 #define DEFAULT_FUVE_REQUEST_QUEUE_SIZE (4*1024*1024)
39 void UpdateStats(uint64_t in_b, uint64_t in_p, uint64_t out_b,
42 void GetDiffStats(uint64_t *in_b, uint64_t *out_b)
const;
198 typedef std::map<const boost::uuids::uuid, FlowRuleMatchInfo>
FlowAceTree;
199 typedef std::pair<const boost::uuids::uuid, FlowRuleMatchInfo>
FlowAcePair;
216 void EnqueueEvent(
const boost::shared_ptr<FlowUveStatsRequest> &req);
220 VrouterFlowRate &flow_rate)
const;
222 AgentDropStats &ds)
const;
void VrfNotify(DBTablePartBase *partition, DBEntryBase *e)
vr_drop_stats_req drop_stats() const
DBTableBase::ListenerId vrf_listener_id_
std::pair< int, VrfStats > VrfStatsPair
void InterfaceNotify(DBTablePartBase *part, DBEntryBase *e)
std::map< const boost::uuids::uuid, FlowRuleMatchInfo > FlowAceTree
void AddFlow(const FlowUveStatsRequest *req)
InterfaceStats * GetInterfaceStats(const Interface *intf)
bool RequestHandler(boost::shared_ptr< FlowUveStatsRequest > req)
bool BuildFlowRate(AgentStats::FlowCounters &created, AgentStats::FlowCounters &aged, FlowRateComputeInfo &flow_info, VrouterFlowRate &flow_rate) const
std::pair< const Interface *, InterfaceStats > InterfaceStatsPair
friend class AgentStatsCollectorTest
void DelInterfaceStatsEntry(const Interface *intf)
VrfStats * GetVrfStats(int vrf_id)
void DeleteFlow(const FlowUveStatsRequest *req)
void AddUpdateVrfStatsEntry(const VrfEntry *intf)
WorkQueue< boost::shared_ptr< FlowUveStatsRequest > > request_queue_
DISALLOW_COPY_AND_ASSIGN(StatsManager)
std::map< const Interface *, InterfaceStats > InterfaceStatsTree
DBTableBase::ListenerId intf_listener_id_
std::string GetNamelessVrf()
void AddNamelessVrfStatsEntry()
void BuildDropStats(const vr_drop_stats_req &r, AgentDropStats &ds) const
std::map< int, VrfStats > VrfIdToVrfStatsTree
InterfaceStatsTree if_stats_tree_
vr_drop_stats_req drop_stats_
VrfIdToVrfStatsTree vrf_stats_tree_
void DelVrfStatsEntry(const VrfEntry *intf)
void set_drop_stats(const vr_drop_stats_req &req)
void AddInterfaceStatsEntry(const Interface *intf)
StatsManager(Agent *agent)
FlowAceTree flow_ace_tree_
std::pair< const boost::uuids::uuid, FlowRuleMatchInfo > FlowAcePair
void EnqueueEvent(const boost::shared_ptr< FlowUveStatsRequest > &req)
uint64_t prev_flow_created_
std::string remote_prefix_
FlowRuleMatchInfo(const std::string &itf, const std::string &sg_rule, const FlowUveFwPolicyInfo &fw_info, const FlowUveVnAcePolicyInfo &nw_ace_info)
bool IsFwPolicyInfoEqual(const FlowUveFwPolicyInfo &info) const
FlowUveFwPolicyInfo fw_policy_info
FlowUveVnAcePolicyInfo vn_ace_info
bool IsVnAceInfoEqual(const FlowUveVnAcePolicyInfo &info) const
void GetDiffStats(uint64_t *in_b, uint64_t *out_b) const
uint64_t prev_5min_in_bytes
AgentStats::FlowCounters added
AgentStats::FlowCounters deleted
uint64_t prev_5min_out_bytes
vr_drop_stats_req drop_stats
FlowRateComputeInfo flow_info
void UpdateStats(uint64_t in_b, uint64_t in_p, uint64_t out_b, uint64_t out_p)
uint64_t k_ecmp_composites
uint64_t prev_l2_mcast_composites
uint64_t arp_virtual_flood
uint64_t arp_virtual_proxy
uint64_t k_arp_physical_stitch
uint64_t k_gre_mpls_tunnels
uint64_t k_evpn_composites
uint64_t prev_evpn_composites
uint64_t k_l2_mcast_composites
uint64_t encap_composites
uint64_t prev_arp_physical_flood
uint64_t l2_mcast_composites
uint64_t prev_l2_receives
uint64_t prev_fabric_composites
uint64_t prev_gre_mpls_tunnels
uint64_t arp_physical_flood
uint64_t k_fabric_composites
uint64_t k_encap_composites
uint64_t prev_vrf_translates
uint64_t gre_mpls_tunnels
uint64_t k_arp_virtual_proxy
uint64_t prev_arp_physical_stitch
uint64_t prev_ecmp_composites
uint64_t k_vrf_translates
uint64_t udp_mpls_tunnels
uint64_t fabric_composites
uint64_t k_arp_virtual_flood
uint64_t prev_vxlan_tunnels
uint64_t prev_udp_tunnels
uint64_t prev_encap_composites
uint64_t k_arp_virtual_stitch
uint64_t prev_arp_virtual_flood
uint64_t prev_arp_tor_proxy
uint64_t prev_arp_virtual_proxy
uint64_t k_arp_physical_flood
uint64_t k_udp_mpls_tunnels
uint64_t arp_virtual_stitch
uint64_t arp_physical_stitch
uint64_t prev_arp_virtual_stitch
uint64_t prev_udp_mpls_tunnels
static uint64_t UTCTimestampUsec()