@@ -170,11 +170,10 @@ func (p *processor) handle(ctx *fh.RequestCtx) {
170170 return
171171 }
172172
173- tenantPrefix := p .cfg .Tenant .Prefix
174-
175173 if p .cfg .Tenant .PrefixPreferSource {
176- if string (ctx .Request .Header .Peek ("X-Scope-OrgID" )) != "" {
177- tenantPrefix = string (ctx .Request .Header .Peek ("X-Scope-OrgID" )) + "-"
174+ sourceTenantPrefix := string (ctx .Request .Header .Peek (p .cfg .Tenant .Header ))
175+ if sourceTenantPrefix != "" {
176+ p .cfg .Tenant .Prefix = sourceTenantPrefix + "-"
178177 }
179178 }
180179
@@ -185,7 +184,7 @@ func (p *processor) handle(ctx *fh.RequestCtx) {
185184 // If there's metadata - just accept the request and drop it
186185 if len (wrReqIn .Metadata ) > 0 {
187186 if p .cfg .Metadata && p .cfg .Tenant .Default != "" {
188- r := p .send (clientIP , reqID , tenantPrefix , p .cfg .Tenant .Default , wrReqIn )
187+ r := p .send (clientIP , reqID , p .cfg .Tenant .Default , wrReqIn )
189188 if r .err != nil {
190189 ctx .Error (err .Error (), fh .StatusInternalServerError )
191190 p .Errorf ("src=%s req_id=%s: unable to proxy metadata: %s" , clientIP , reqID , r .err )
@@ -210,7 +209,7 @@ func (p *processor) handle(ctx *fh.RequestCtx) {
210209
211210 metricTenant := ""
212211 var errs * me.Error
213- results := p .dispatch (clientIP , reqID , tenantPrefix , m )
212+ results := p .dispatch (clientIP , reqID , m )
214213
215214 code , body := 0 , []byte ("Ok" )
216215
@@ -312,7 +311,7 @@ func (p *processor) marshal(wr *prompb.WriteRequest) (bufOut []byte, err error)
312311 return snappy .Encode (nil , b ), nil
313312}
314313
315- func (p * processor ) dispatch (clientIP net.Addr , reqID uuid.UUID , tenantPrefix string , m map [string ]* prompb.WriteRequest ) (res []result ) {
314+ func (p * processor ) dispatch (clientIP net.Addr , reqID uuid.UUID , m map [string ]* prompb.WriteRequest ) (res []result ) {
316315 var wg sync.WaitGroup
317316 res = make ([]result , len (m ))
318317
@@ -323,7 +322,7 @@ func (p *processor) dispatch(clientIP net.Addr, reqID uuid.UUID, tenantPrefix st
323322 go func (idx int , tenant string , wrReq * prompb.WriteRequest ) {
324323 defer wg .Done ()
325324
326- r := p .send (clientIP , reqID , tenantPrefix , tenant , wrReq )
325+ r := p .send (clientIP , reqID , tenant , wrReq )
327326 res [idx ] = r
328327 }(i , tenant , wrReq )
329328
@@ -368,7 +367,7 @@ func (p *processor) processTimeseries(ts *prompb.TimeSeries) (tenant string, err
368367 return
369368}
370369
371- func (p * processor ) send (clientIP net.Addr , reqID uuid.UUID , tenantPrefix string , tenant string , wr * prompb.WriteRequest ) (r result ) {
370+ func (p * processor ) send (clientIP net.Addr , reqID uuid.UUID , tenant string , wr * prompb.WriteRequest ) (r result ) {
372371 start := time .Now ()
373372 r .tenant = tenant
374373
@@ -386,7 +385,7 @@ func (p *processor) send(clientIP net.Addr, reqID uuid.UUID, tenantPrefix string
386385 return
387386 }
388387
389- p .fillRequestHeaders (clientIP , reqID , tenantPrefix , tenant , req )
388+ p .fillRequestHeaders (clientIP , reqID , tenant , req )
390389
391390 if p .auth .egressHeader != nil {
392391 req .Header .SetBytesV ("Authorization" , p .auth .egressHeader )
@@ -410,14 +409,14 @@ func (p *processor) send(clientIP net.Addr, reqID uuid.UUID, tenantPrefix string
410409}
411410
412411func (p * processor ) fillRequestHeaders (
413- clientIP net.Addr , reqID uuid.UUID , tenantPrefix string , tenant string , req * fh.Request ) {
412+ clientIP net.Addr , reqID uuid.UUID , tenant string , req * fh.Request ) {
414413 req .Header .Set ("Content-Encoding" , "snappy" )
415414 req .Header .Set ("Content-Type" , "application/x-protobuf" )
416415 req .Header .Set ("X-Prometheus-Remote-Write-Version" , "0.1.0" )
417416 req .Header .Set ("X-Cortex-Tenant-Client" , clientIP .String ())
418417 req .Header .Set ("X-Cortex-Tenant-ReqID" , reqID .String ())
419- if tenantPrefix != "" {
420- tenant = tenantPrefix + tenant
418+ if p . cfg . Tenant . Prefix != "" {
419+ tenant = p . cfg . Tenant . Prefix + tenant
421420 }
422421 req .Header .Set (p .cfg .Tenant .Header , tenant )
423422}
0 commit comments