@@ -170,11 +170,10 @@ func (p *processor) handle(ctx *fh.RequestCtx) {
170
170
return
171
171
}
172
172
173
- tenantPrefix := p .cfg .Tenant .Prefix
174
-
175
173
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 + "-"
178
177
}
179
178
}
180
179
@@ -185,7 +184,7 @@ func (p *processor) handle(ctx *fh.RequestCtx) {
185
184
// If there's metadata - just accept the request and drop it
186
185
if len (wrReqIn .Metadata ) > 0 {
187
186
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 )
189
188
if r .err != nil {
190
189
ctx .Error (err .Error (), fh .StatusInternalServerError )
191
190
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) {
210
209
211
210
metricTenant := ""
212
211
var errs * me.Error
213
- results := p .dispatch (clientIP , reqID , tenantPrefix , m )
212
+ results := p .dispatch (clientIP , reqID , m )
214
213
215
214
code , body := 0 , []byte ("Ok" )
216
215
@@ -312,7 +311,7 @@ func (p *processor) marshal(wr *prompb.WriteRequest) (bufOut []byte, err error)
312
311
return snappy .Encode (nil , b ), nil
313
312
}
314
313
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 ) {
316
315
var wg sync.WaitGroup
317
316
res = make ([]result , len (m ))
318
317
@@ -323,7 +322,7 @@ func (p *processor) dispatch(clientIP net.Addr, reqID uuid.UUID, tenantPrefix st
323
322
go func (idx int , tenant string , wrReq * prompb.WriteRequest ) {
324
323
defer wg .Done ()
325
324
326
- r := p .send (clientIP , reqID , tenantPrefix , tenant , wrReq )
325
+ r := p .send (clientIP , reqID , tenant , wrReq )
327
326
res [idx ] = r
328
327
}(i , tenant , wrReq )
329
328
@@ -368,7 +367,7 @@ func (p *processor) processTimeseries(ts *prompb.TimeSeries) (tenant string, err
368
367
return
369
368
}
370
369
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 ) {
372
371
start := time .Now ()
373
372
r .tenant = tenant
374
373
@@ -386,7 +385,7 @@ func (p *processor) send(clientIP net.Addr, reqID uuid.UUID, tenantPrefix string
386
385
return
387
386
}
388
387
389
- p .fillRequestHeaders (clientIP , reqID , tenantPrefix , tenant , req )
388
+ p .fillRequestHeaders (clientIP , reqID , tenant , req )
390
389
391
390
if p .auth .egressHeader != nil {
392
391
req .Header .SetBytesV ("Authorization" , p .auth .egressHeader )
@@ -410,14 +409,14 @@ func (p *processor) send(clientIP net.Addr, reqID uuid.UUID, tenantPrefix string
410
409
}
411
410
412
411
func (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 ) {
414
413
req .Header .Set ("Content-Encoding" , "snappy" )
415
414
req .Header .Set ("Content-Type" , "application/x-protobuf" )
416
415
req .Header .Set ("X-Prometheus-Remote-Write-Version" , "0.1.0" )
417
416
req .Header .Set ("X-Cortex-Tenant-Client" , clientIP .String ())
418
417
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
421
420
}
422
421
req .Header .Set (p .cfg .Tenant .Header , tenant )
423
422
}
0 commit comments