|  |  | @ -461,20 +461,24 @@ func (h *Handler) reverseProxy(rw http.ResponseWriter, req *http.Request, di Dia | 
			
		
	
		
			
				
					|  |  |  | 	// point the request to this upstream
 | 
			
		
	
		
			
				
					|  |  |  | 	h.directRequest(req, di) | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 	// do the round-trip
 | 
			
		
	
		
			
				
					|  |  |  | 	// do the round-trip; emit debug log with values we know are
 | 
			
		
	
		
			
				
					|  |  |  | 	// safe, or if there is no error, emit fuller log entry
 | 
			
		
	
		
			
				
					|  |  |  | 	start := time.Now() | 
			
		
	
		
			
				
					|  |  |  | 	res, err := h.Transport.RoundTrip(req) | 
			
		
	
		
			
				
					|  |  |  | 	duration := time.Since(start) | 
			
		
	
		
			
				
					|  |  |  | 	h.logger.Debug("upstream roundtrip", | 
			
		
	
		
			
				
					|  |  |  | 	logger := h.logger.With( | 
			
		
	
		
			
				
					|  |  |  | 		zap.String("upstream", di.Upstream.String()), | 
			
		
	
		
			
				
					|  |  |  | 		zap.Object("request", caddyhttp.LoggableHTTPRequest{Request: req}), | 
			
		
	
		
			
				
					|  |  |  | 		zap.Object("headers", caddyhttp.LoggableHTTPHeader(res.Header)), | 
			
		
	
		
			
				
					|  |  |  | 		zap.Duration("duration", duration), | 
			
		
	
		
			
				
					|  |  |  | 		zap.Int("status", res.StatusCode), | 
			
		
	
		
			
				
					|  |  |  | 	) | 
			
		
	
		
			
				
					|  |  |  | 	if err != nil { | 
			
		
	
		
			
				
					|  |  |  | 		logger.Debug("upstream roundtrip", zap.Error(err)) | 
			
		
	
		
			
				
					|  |  |  | 		return err | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | 	logger.Debug("upstream roundtrip", | 
			
		
	
		
			
				
					|  |  |  | 		zap.Object("headers", caddyhttp.LoggableHTTPHeader(res.Header)), | 
			
		
	
		
			
				
					|  |  |  | 		zap.Int("status", res.StatusCode), | 
			
		
	
		
			
				
					|  |  |  | 	) | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 	// update circuit breaker on current conditions
 | 
			
		
	
		
			
				
					|  |  |  | 	if di.Upstream.cb != nil { | 
			
		
	
	
		
			
				
					|  |  | 
 |