@@ -33,97 +33,152 @@ class ZeroTransportMetrics {
3333 }
3434
3535 void reset () {
36- snapshot_.connectAttempts = 0 ;
37- snapshot_.connectSuccesses = 0 ;
38- snapshot_.connectFailures = 0 ;
39- snapshot_.sendAttempts = 0 ;
40- snapshot_.sendSuccesses = 0 ;
41- snapshot_.sendFailures = 0 ;
42- snapshot_.loopCalls = 0 ;
43- snapshot_.queueDrops = 0 ;
44- snapshot_.backoffSchedules = 0 ;
45- snapshot_.consecutiveFailures = 0 ;
46- snapshot_.lastConnectLatencyMs = 0 ;
47- snapshot_.worstConnectLatencyMs = 0 ;
48- snapshot_.lastSendLatencyMs = 0 ;
49- snapshot_.worstSendLatencyMs = 0 ;
50- snapshot_.lastQueueDwellMs = 0 ;
51- snapshot_.worstQueueDwellMs = 0 ;
52- snapshot_.maxQueueDepth = 0 ;
36+ connectAttempts_ = 0 ;
37+ connectSuccesses_ = 0 ;
38+ connectFailures_ = 0 ;
39+ sendAttempts_ = 0 ;
40+ sendSuccesses_ = 0 ;
41+ sendFailures_ = 0 ;
42+ loopCalls_ = 0 ;
43+ queueDrops_ = 0 ;
44+ backoffSchedules_ = 0 ;
45+ consecutiveFailures_ = 0 ;
46+ maxQueueDepth_ = 0 ;
47+
48+ #if ZEROKERNEL_ENABLE_NET_EXTENDED_METRICS
49+ lastConnectLatencyMs_ = 0 ;
50+ worstConnectLatencyMs_ = 0 ;
51+ lastSendLatencyMs_ = 0 ;
52+ worstSendLatencyMs_ = 0 ;
53+ lastQueueDwellMs_ = 0 ;
54+ worstQueueDwellMs_ = 0 ;
55+ #endif
5356 }
5457
5558 void recordConnectAttempt () {
56- ++snapshot_. connectAttempts ;
59+ ++connectAttempts_ ;
5760 }
5861
5962 void recordConnectResult (bool success, unsigned long latencyMs) {
60- snapshot_.lastConnectLatencyMs = latencyMs;
61- if (latencyMs > snapshot_.worstConnectLatencyMs ) {
62- snapshot_.worstConnectLatencyMs = latencyMs;
63+ #if ZEROKERNEL_ENABLE_NET_EXTENDED_METRICS
64+ lastConnectLatencyMs_ = latencyMs;
65+ if (latencyMs > worstConnectLatencyMs_) {
66+ worstConnectLatencyMs_ = latencyMs;
6367 }
68+ #endif
6469
6570 if (success) {
66- ++snapshot_. connectSuccesses ;
67- snapshot_. consecutiveFailures = 0 ;
71+ ++connectSuccesses_ ;
72+ consecutiveFailures_ = 0 ;
6873 return ;
6974 }
7075
71- ++snapshot_. connectFailures ;
72- ++snapshot_. consecutiveFailures ;
76+ ++connectFailures_ ;
77+ ++consecutiveFailures_ ;
7378 }
7479
7580 void recordSendQueued (unsigned long queueDepth) {
76- if (queueDepth > snapshot_. maxQueueDepth ) {
77- snapshot_. maxQueueDepth = queueDepth;
81+ if (queueDepth > maxQueueDepth_ ) {
82+ maxQueueDepth_ = queueDepth;
7883 }
7984 }
8085
8186 void recordSendAttempt () {
82- ++snapshot_. sendAttempts ;
87+ ++sendAttempts_ ;
8388 }
8489
8590 void recordSendResult (bool success,
8691 unsigned long latencyMs,
8792 unsigned long queueDwellMs) {
88- snapshot_.lastSendLatencyMs = latencyMs;
89- snapshot_.lastQueueDwellMs = queueDwellMs;
93+ #if ZEROKERNEL_ENABLE_NET_EXTENDED_METRICS
94+ lastSendLatencyMs_ = latencyMs;
95+ lastQueueDwellMs_ = queueDwellMs;
9096
91- if (latencyMs > snapshot_. worstSendLatencyMs ) {
92- snapshot_. worstSendLatencyMs = latencyMs;
97+ if (latencyMs > worstSendLatencyMs_ ) {
98+ worstSendLatencyMs_ = latencyMs;
9399 }
94100
95- if (queueDwellMs > snapshot_. worstQueueDwellMs ) {
96- snapshot_. worstQueueDwellMs = queueDwellMs;
101+ if (queueDwellMs > worstQueueDwellMs_ ) {
102+ worstQueueDwellMs_ = queueDwellMs;
97103 }
104+ #endif
98105
99106 if (success) {
100- ++snapshot_. sendSuccesses ;
101- snapshot_. consecutiveFailures = 0 ;
107+ ++sendSuccesses_ ;
108+ consecutiveFailures_ = 0 ;
102109 return ;
103110 }
104111
105- ++snapshot_. sendFailures ;
106- ++snapshot_. consecutiveFailures ;
112+ ++sendFailures_ ;
113+ ++consecutiveFailures_ ;
107114 }
108115
109116 void recordLoopCall () {
110- ++snapshot_. loopCalls ;
117+ ++loopCalls_ ;
111118 }
112119
113120 void recordQueueDrop () {
114- ++snapshot_. queueDrops ;
121+ ++queueDrops_ ;
115122 }
116123
117124 void recordBackoffSchedule () {
118- ++snapshot_. backoffSchedules ;
125+ ++backoffSchedules_ ;
119126 }
120127
121- const Snapshot& snapshot () const {
122- return snapshot_;
128+ Snapshot snapshot () const {
129+ Snapshot snapshot;
130+ snapshot.connectAttempts = connectAttempts_;
131+ snapshot.connectSuccesses = connectSuccesses_;
132+ snapshot.connectFailures = connectFailures_;
133+ snapshot.sendAttempts = sendAttempts_;
134+ snapshot.sendSuccesses = sendSuccesses_;
135+ snapshot.sendFailures = sendFailures_;
136+ snapshot.loopCalls = loopCalls_;
137+ snapshot.queueDrops = queueDrops_;
138+ snapshot.backoffSchedules = backoffSchedules_;
139+ snapshot.consecutiveFailures = consecutiveFailures_;
140+ snapshot.maxQueueDepth = maxQueueDepth_;
141+
142+ #if ZEROKERNEL_ENABLE_NET_EXTENDED_METRICS
143+ snapshot.lastConnectLatencyMs = lastConnectLatencyMs_;
144+ snapshot.worstConnectLatencyMs = worstConnectLatencyMs_;
145+ snapshot.lastSendLatencyMs = lastSendLatencyMs_;
146+ snapshot.worstSendLatencyMs = worstSendLatencyMs_;
147+ snapshot.lastQueueDwellMs = lastQueueDwellMs_;
148+ snapshot.worstQueueDwellMs = worstQueueDwellMs_;
149+ #else
150+ snapshot.lastConnectLatencyMs = 0 ;
151+ snapshot.worstConnectLatencyMs = 0 ;
152+ snapshot.lastSendLatencyMs = 0 ;
153+ snapshot.worstSendLatencyMs = 0 ;
154+ snapshot.lastQueueDwellMs = 0 ;
155+ snapshot.worstQueueDwellMs = 0 ;
156+ #endif
157+
158+ return snapshot;
123159 }
124160
125161 private:
126- Snapshot snapshot_;
162+ unsigned long connectAttempts_;
163+ unsigned long connectSuccesses_;
164+ unsigned long connectFailures_;
165+ unsigned long sendAttempts_;
166+ unsigned long sendSuccesses_;
167+ unsigned long sendFailures_;
168+ unsigned long loopCalls_;
169+ unsigned long queueDrops_;
170+ unsigned long backoffSchedules_;
171+ unsigned long consecutiveFailures_;
172+ unsigned long maxQueueDepth_;
173+
174+ #if ZEROKERNEL_ENABLE_NET_EXTENDED_METRICS
175+ unsigned long lastConnectLatencyMs_;
176+ unsigned long worstConnectLatencyMs_;
177+ unsigned long lastSendLatencyMs_;
178+ unsigned long worstSendLatencyMs_;
179+ unsigned long lastQueueDwellMs_;
180+ unsigned long worstQueueDwellMs_;
181+ #endif
127182};
128183
129184} // namespace net
0 commit comments