@@ -28,6 +28,7 @@ const (
2828 LogFieldCFRay = "cfRay"
2929 LogFieldRule = "ingressRule"
3030 LogFieldOriginService = "originService"
31+ LogFieldFlowID = "flowID"
3132)
3233
3334// Proxy represents a means to Proxy between cloudflared and the origin services.
@@ -96,7 +97,7 @@ func (p *Proxy) ProxyHTTP(
9697 logFields ,
9798 ); err != nil {
9899 rule , srv := ruleField (p .ingressRules , ruleNum )
99- p .logRequestError (err , cfRay , rule , srv )
100+ p .logRequestError (err , cfRay , "" , rule , srv )
100101 return err
101102 }
102103 return nil
@@ -109,7 +110,7 @@ func (p *Proxy) ProxyHTTP(
109110 rws := connection .NewHTTPResponseReadWriterAcker (w , req )
110111 if err := p .proxyStream (req .Context (), rws , dest , originProxy , logFields ); err != nil {
111112 rule , srv := ruleField (p .ingressRules , ruleNum )
112- p .logRequestError (err , cfRay , rule , srv )
113+ p .logRequestError (err , cfRay , "" , rule , srv )
113114 return err
114115 }
115116 return nil
@@ -140,13 +141,17 @@ func (p *Proxy) ProxyTCP(
140141 cfRay : req .CFRay ,
141142 lbProbe : req .LBProbe ,
142143 rule : ingress .ServiceWarpRouting ,
144+ flowID : req .FlowID ,
143145 }
144146
147+ p .log .Debug ().Str (LogFieldFlowID , req .FlowID ).Msg ("tcp proxy stream started" )
145148 if err := p .proxyStream (serveCtx , rwa , req .Dest , p .warpRouting .Proxy , logFields ); err != nil {
146- p .logRequestError (err , req .CFRay , "" , ingress .ServiceWarpRouting )
149+ p .logRequestError (err , req .CFRay , req . FlowID , "" , ingress .ServiceWarpRouting )
147150 return err
148151 }
149152
153+ p .log .Debug ().Str (LogFieldFlowID , req .FlowID ).Msg ("tcp proxy stream finished successfully" )
154+
150155 return nil
151156}
152157
@@ -317,6 +322,7 @@ type logFields struct {
317322 cfRay string
318323 lbProbe bool
319324 rule interface {}
325+ flowID string
320326}
321327
322328func (p * Proxy ) logRequest (r * http.Request , fields logFields ) {
@@ -360,12 +366,15 @@ func (p *Proxy) logOriginResponse(resp *http.Response, fields logFields) {
360366 }
361367}
362368
363- func (p * Proxy ) logRequestError (err error , cfRay string , rule , service string ) {
369+ func (p * Proxy ) logRequestError (err error , cfRay string , flowID string , rule , service string ) {
364370 requestErrors .Inc ()
365371 log := p .log .Error ().Err (err )
366372 if cfRay != "" {
367373 log = log .Str (LogFieldCFRay , cfRay )
368374 }
375+ if flowID != "" {
376+ log = log .Str (LogFieldFlowID , flowID )
377+ }
369378 if rule != "" {
370379 log = log .Str (LogFieldRule , rule )
371380 }
0 commit comments