MCPcopy Create free account
hub / github.com/cortexproject/cortex / isUserOwned

Method isUserOwned

pkg/alertmanager/multitenant.go:831–849  ·  view source on GitHub ↗
(userID string)

Source from the content-addressed store, hash-verified

829}
830
831func (am *MultitenantAlertmanager) isUserOwned(userID string) (bool, error) {
832 if !am.allowedTenants.IsAllowed(userID) {
833 return false, nil
834 }
835
836 // If sharding is disabled, any alertmanager instance owns all users.
837 if !am.cfg.ShardingEnabled {
838 return true, nil
839 }
840
841 alertmanagers, err := am.ring.Get(users.ShardByUser(userID), getSyncRingOp(am.cfg.ShardingRing.DisableReplicaSetExtension), nil, nil, nil)
842 if err != nil {
843 am.ringCheckErrors.Inc()
844 level.Error(am.logger).Log("msg", "failed to load alertmanager configuration", "user", userID, "err", err)
845 return false, err
846 }
847
848 return alertmanagers.Includes(am.ringLifecycler.GetInstanceAddr()), nil
849}
850
851func (am *MultitenantAlertmanager) syncConfigs(cfgs map[string]alertspb.AlertConfigDesc) {
852 level.Debug(am.logger).Log("msg", "adding configurations", "num_configs", len(cfgs))

Calls 9

ShardByUserFunction · 0.92
getSyncRingOpFunction · 0.85
IsAllowedMethod · 0.80
IncludesMethod · 0.80
GetInstanceAddrMethod · 0.80
GetMethod · 0.65
IncMethod · 0.45
LogMethod · 0.45
ErrorMethod · 0.45

Tested by 1