@@ -166,16 +166,16 @@ func (r *DefaultMultiTenantManager) syncRulesToManager(ctx context.Context, user
166
166
// newManager creates a prometheus rule manager wrapped with a user id
167
167
// configured storage, appendable, notifier, and instrumentation
168
168
func (r * DefaultMultiTenantManager ) newManager (ctx context.Context , userID string ) (RulesManager , error ) {
169
- notifier , err := r .getOrCreateNotifier (userID )
170
- if err != nil {
171
- return nil , err
172
- }
173
-
174
169
// Create a new Prometheus registry and register it within
175
170
// our metrics struct for the provided user.
176
171
reg := prometheus .NewRegistry ()
177
172
r .userManagerMetrics .AddUserRegistry (userID , reg )
178
173
174
+ notifier , err := r .getOrCreateNotifier (userID , reg )
175
+ if err != nil {
176
+ return nil , err
177
+ }
178
+
179
179
return r .managerFactory (ctx , userID , notifier , r .logger , reg ), nil
180
180
}
181
181
@@ -191,7 +191,7 @@ func (r *DefaultMultiTenantManager) removeNotifier(userID string) *rulerNotifier
191
191
return n
192
192
}
193
193
194
- func (r * DefaultMultiTenantManager ) getOrCreateNotifier (userID string ) (* notifier.Manager , error ) {
194
+ func (r * DefaultMultiTenantManager ) getOrCreateNotifier (userID string , userManagerRegistry prometheus. Registerer ) (* notifier.Manager , error ) {
195
195
r .notifiersMtx .Lock ()
196
196
defer r .notifiersMtx .Unlock ()
197
197
@@ -200,7 +200,7 @@ func (r *DefaultMultiTenantManager) getOrCreateNotifier(userID string) (*notifie
200
200
return n .notifier , nil
201
201
}
202
202
203
- reg := prometheus .WrapRegistererWith (prometheus.Labels {"user" : userID }, r . registry )
203
+ reg := prometheus .WrapRegistererWith (prometheus.Labels {"user" : userID }, userManagerRegistry )
204
204
reg = prometheus .WrapRegistererWithPrefix ("cortex_" , reg )
205
205
n = newRulerNotifier (& notifier.Options {
206
206
QueueCapacity : r .cfg .NotificationQueueCapacity ,
0 commit comments