@@ -201,6 +201,8 @@ func (p *websocketPump) pumpMessages(
201201 return
202202
203203 case m := <- messages :
204+ loggedFields := make ([]zap.Field , 0 , 6 )
205+
204206 if p .cfg .proxy .Chaos .Enabled { // inject chaos
205207 dropMessage := rand .Float64 () < p .cfg .proxy .Chaos .DroppedMessageProbability / 100
206208 injectInvalidFlashblockPayload := rand .Float64 () < p .cfg .proxy .Chaos .InjectedInvalidFlashblockPayloadProbability / 100
@@ -215,9 +217,9 @@ func (p *websocketPump) pumpMessages(
215217
216218 if injectInvalidFlashblockPayload { // inject invalid flashblock payload
217219 if err := m .chaosMangle (); err == nil {
218- l . Info ( "Injected invalid flashblock payload" , p . prepareLogFields ( m ,
220+ loggedFields = append ( loggedFields ,
219221 zap .Bool ("chaos_injected_invalid_flashblock_payload" , true ),
220- )... )
222+ )
221223 } else {
222224 l .Warn ("Failed to generate invalid flashblock payload" ,
223225 zap .Error (err ),
@@ -226,20 +228,21 @@ func (p *websocketPump) pumpMessages(
226228 }
227229
228230 if injectMalformedJsonMessage { // inject malformed json
229- m .bytes = m .bytes [1 : len (m .bytes )- 1 ]
230- l .Info ("Injected malformed JSON message" , p .prepareLogFields (m ,
231+ loggedFields = append (loggedFields ,
231232 zap .Bool ("chaos_injected_malformed_json_message" , true ),
232- )... )
233+ )
234+ m .bytes = m .bytes [1 : len (m .bytes )- 1 ]
233235 }
234236
235- if p .cfg .proxy .Chaos .MinInjectedLatency > 0 || p .cfg .proxy .Chaos .MaxInjectedLatency > 0 { // chaos-inject latency
236- latency := time .Duration (rand .Int64N (int64 (p .cfg .proxy .Chaos .MaxInjectedLatency ) + 1 ))
237- latency = max (latency , p .cfg .proxy .Chaos .MinInjectedLatency )
238- time .Sleep (latency - time .Since (m .ts ))
239- l .Info ("Injected latency" , p .prepareLogFields (m ,
240- zap .Bool ("chaos_injected_latency" , true ),
241- zap .Duration ("chaos_latency" , latency ),
242- )... )
237+ { // chaos-inject latency
238+ if p .cfg .proxy .Chaos .MinInjectedLatency > 0 || p .cfg .proxy .Chaos .MaxInjectedLatency > 0 {
239+ loggedFields = append (loggedFields ,
240+ zap .Bool ("chaos_injected_latency" , true ),
241+ )
242+ latency := time .Duration (rand .Int64N (int64 (p .cfg .proxy .Chaos .MaxInjectedLatency ) + 1 ))
243+ latency = max (latency , p .cfg .proxy .Chaos .MinInjectedLatency )
244+ time .Sleep (latency - time .Since (m .ts ))
245+ }
243246 }
244247 }
245248
@@ -259,7 +262,7 @@ func (p *websocketPump) pumpMessages(
259262 attribute.KeyValue {Key : "direction" , Value : attribute .StringValue (direction )},
260263 ))
261264
262- l .Debug ("Proxied message" , p .prepareLogFields (m )... )
265+ l .Debug ("Proxied message" , p .prepareLogFields (m , loggedFields ... )... )
263266 }
264267 }
265268 }
0 commit comments