@@ -120,6 +120,7 @@ func (prx *ReceiverProxy) ValidateSigner(ctx context.Context, req *ParsedRequest
120120}
121121
122122func (prx * ReceiverProxy ) EthSendBundle (ctx context.Context , ethSendBundle rpctypes.EthSendBundleArgs , systemEndpoint bool ) error {
123+ startAt := time .Now ()
123124 parsedRequest := ParsedRequest {
124125 systemEndpoint : systemEndpoint ,
125126 ethSendBundle : & ethSendBundle ,
@@ -141,6 +142,9 @@ func (prx *ReceiverProxy) EthSendBundle(ctx context.Context, ethSendBundle rpcty
141142 return err
142143 }
143144
145+ incRequestDurationStep (time .Since (startAt ), parsedRequest .method , "" , "validation" )
146+ startAt = time .Now ()
147+
144148 // For direct orderflow we extract signing address from header
145149 // We also default to v2 bundle version if it's not set
146150 if ! systemEndpoint {
@@ -169,6 +173,8 @@ func (prx *ReceiverProxy) EthSendBundle(ctx context.Context, ethSendBundle rpcty
169173 uniqueKey := ethSendBundle .UniqueKey ()
170174 parsedRequest .requestArgUniqueKey = & uniqueKey
171175
176+ incRequestDurationStep (time .Since (startAt ), parsedRequest .method , "" , "add_fields" )
177+
172178 return prx .HandleParsedRequest (ctx , parsedRequest )
173179}
174180
@@ -181,6 +187,7 @@ func (prx *ReceiverProxy) EthSendBundleUser(ctx context.Context, ethSendBundle r
181187}
182188
183189func (prx * ReceiverProxy ) MevSendBundle (ctx context.Context , mevSendBundle rpctypes.MevSendBundleArgs , systemEndpoint bool ) error {
190+ startAt := time .Now ()
184191 parsedRequest := ParsedRequest {
185192 systemEndpoint : systemEndpoint ,
186193 mevSendBundle : & mevSendBundle ,
@@ -197,6 +204,9 @@ func (prx *ReceiverProxy) MevSendBundle(ctx context.Context, mevSendBundle rpcty
197204 return err
198205 }
199206
207+ incRequestDurationStep (time .Since (startAt ), parsedRequest .method , "" , "validation" )
208+ startAt = time .Now ()
209+
200210 if ! systemEndpoint {
201211 mevSendBundle .Metadata = & rpctypes.MevBundleMetadata {
202212 Signer : & parsedRequest .signer ,
@@ -231,6 +241,8 @@ func (prx *ReceiverProxy) MevSendBundle(ctx context.Context, mevSendBundle rpcty
231241 uniqueKey := mevSendBundle .UniqueKey ()
232242 parsedRequest .requestArgUniqueKey = & uniqueKey
233243
244+ incRequestDurationStep (time .Since (startAt ), parsedRequest .method , "" , "add_fields" )
245+
234246 return prx .HandleParsedRequest (ctx , parsedRequest )
235247}
236248
@@ -347,6 +359,7 @@ type ParsedRequest struct {
347359}
348360
349361func (prx * ReceiverProxy ) HandleParsedRequest (ctx context.Context , parsedRequest ParsedRequest ) error {
362+ startAt := time .Now ()
350363 ctx , cancel := context .WithTimeout (ctx , handleParsedRequestTimeout )
351364 defer cancel ()
352365
@@ -362,25 +375,39 @@ func (prx *ReceiverProxy) HandleParsedRequest(ctx context.Context, parsedRequest
362375 }
363376 prx .requestUniqueKeysRLU .Add (* parsedRequest .requestArgUniqueKey , struct {}{})
364377 }
378+
379+ incRequestDurationStep (time .Since (startAt ), parsedRequest .method , "" , "validation" )
380+ startAt = time .Now ()
381+
365382 if ! parsedRequest .systemEndpoint {
366383 err := prx .userAPIRateLimiter .Wait (ctx )
367384 if err != nil {
368385 incAPIUserRateLimits ()
369386 return errors .Join (errRateLimiting , err )
370387 }
371388 }
389+
390+ incRequestDurationStep (time .Since (startAt ), parsedRequest .method , "" , "rate_limiting" )
391+ startAt = time .Now ()
392+
372393 select {
373394 case <- ctx .Done ():
374395 prx .Log .Error ("Shared queue is stalling" )
375396 case prx .shareQueue <- & parsedRequest :
376397 }
398+
399+ incRequestDurationStep (time .Since (startAt ), parsedRequest .method , "" , "share_queue" )
400+ startAt = time .Now ()
401+
377402 if ! parsedRequest .systemEndpoint {
378403 select {
379404 case <- ctx .Done ():
380405 prx .Log .Error ("Archive queue is stalling" )
381406 case prx .archiveQueue <- & parsedRequest :
382407 }
383408 }
409+
410+ incRequestDurationStep (time .Since (startAt ), parsedRequest .method , "" , "archive_queue" )
384411 return nil
385412}
386413
0 commit comments