@@ -213,6 +213,8 @@ func (rw *relayWriter) WriteHeader(code int) {
213213
214214var (
215215 relayHeader = "X-Relayed-From"
216+ encHeader = "Content-Encoding"
217+ typeHeader = "Content-Type"
216218 myHost string
217219)
218220
@@ -260,8 +262,12 @@ func (rp *relayProxy) relayPut(responseWriter http.ResponseWriter, r *http.Reque
260262 collect .Add ("additional.puts.error" , tags , 1 )
261263 continue
262264 }
263- req .Header .Set ("Content-Type" , "application/json" )
264- req .Header .Set ("Content-Encoding" , "gzip" )
265+ if contenttype := r .Header .Get (typeHeader ); contenttype != "" {
266+ req .Header .Set (typeHeader , contenttype )
267+ }
268+ if encoding := r .Header .Get (encHeader ); encoding != "" {
269+ req .Header .Set (encHeader , encoding )
270+ }
265271 req .Header .Add (relayHeader , myHost )
266272 resp , err := http .DefaultClient .Do (req )
267273 if err != nil {
@@ -320,8 +326,8 @@ func (rp *relayProxy) denormalize(body io.Reader) {
320326 verbose ("error posting denormalized data points: %v" , err )
321327 return
322328 }
323- req .Header .Set ("Content-Type" , "application/json" )
324- req .Header .Set ("Content-Encoding" , "gzip" )
329+ req .Header .Set (typeHeader , "application/json" )
330+ req .Header .Set (encHeader , "gzip" )
325331
326332 responseWriter := httptest .NewRecorder ()
327333 rp .relayPut (responseWriter , req , false )
@@ -354,7 +360,12 @@ func (rp *relayProxy) relayMetadata(responseWriter http.ResponseWriter, r *http.
354360 verbose ("metadata relayPutUrls error %v" , err )
355361 continue
356362 }
357- req .Header .Set ("Content-Type" , "application/json" )
363+ if contenttype := r .Header .Get (typeHeader ); contenttype != "" {
364+ req .Header .Set (typeHeader , contenttype )
365+ }
366+ if encoding := r .Header .Get (encHeader ); encoding != "" {
367+ req .Header .Set (encHeader , encoding )
368+ }
358369 req .Header .Add (relayHeader , myHost )
359370 resp , err := http .DefaultClient .Do (req )
360371 if err != nil {
0 commit comments