MCPcopy Index your code
hub / github.com/cortexproject/cortex / NewDefaultMultiTenantManager

Function NewDefaultMultiTenantManager

pkg/ruler/manager.go:73–137  ·  view source on GitHub ↗
(cfg Config, limits RulesLimits, managerFactory ManagerFactory, evalMetrics *RuleEvalMetrics, reg prometheus.Registerer, logger log.Logger)

Source from the content-addressed store, hash-verified

71}
72
73func NewDefaultMultiTenantManager(cfg Config, limits RulesLimits, managerFactory ManagerFactory, evalMetrics *RuleEvalMetrics, reg prometheus.Registerer, logger log.Logger) (*DefaultMultiTenantManager, error) {
74 ncfg, err := buildNotifierConfig(&cfg)
75 if err != nil {
76 return nil, err
77 }
78
79 userManagerMetrics := NewManagerMetrics(cfg.DisableRuleGroupLabel)
80 if reg != nil {
81 reg.MustRegister(userManagerMetrics)
82 }
83
84 discoveryMetricRegister := reg
85 if discoveryMetricRegister == nil {
86 discoveryMetricRegister = prometheus.DefaultRegisterer
87 }
88
89 notifiersDiscoveryMetrics, err := discovery.CreateAndRegisterSDMetrics(discoveryMetricRegister)
90
91 if err != nil {
92 level.Error(logger).Log("msg", "failed to register service discovery metrics", "err", err)
93 os.Exit(1)
94 }
95
96 m := &DefaultMultiTenantManager{
97 cfg: cfg,
98 notifierCfg: ncfg,
99 managerFactory: managerFactory,
100 frontendPool: newFrontendPool(cfg, logger, reg),
101 ruleEvalMetrics: evalMetrics,
102 notifiers: map[string]*rulerNotifier{},
103 userExternalLabels: newUserExternalLabels(cfg.ExternalLabels, limits),
104 notifiersDiscoveryMetrics: notifiersDiscoveryMetrics,
105 mapper: newMapper(cfg.RulePath, logger),
106 userManagers: map[string]RulesManager{},
107 userManagerMetrics: userManagerMetrics,
108 ruleCache: map[string][]*promRules.Group{},
109 managersTotal: promauto.With(reg).NewGauge(prometheus.GaugeOpts{
110 Namespace: "cortex",
111 Name: "ruler_managers_total",
112 Help: "Total number of managers registered and running in the ruler",
113 }),
114 lastReloadSuccessful: promauto.With(reg).NewGaugeVec(prometheus.GaugeOpts{
115 Namespace: "cortex",
116 Name: "ruler_config_last_reload_successful",
117 Help: "Boolean set to 1 whenever the last configuration reload attempt was successful.",
118 }, []string{"user"}),
119 lastReloadSuccessfulTimestamp: promauto.With(reg).NewGaugeVec(prometheus.GaugeOpts{
120 Namespace: "cortex",
121 Name: "ruler_config_last_reload_successful_seconds",
122 Help: "Timestamp of the last successful configuration reload.",
123 }, []string{"user"}),
124 configUpdatesTotal: promauto.With(reg).NewCounterVec(prometheus.CounterOpts{
125 Namespace: "cortex",
126 Name: "ruler_config_updates_total",
127 Help: "Total number of config updates triggered by a user",
128 }, []string{"user"}),
129 registry: reg,
130 logger: logger,

Callers 9

initRulerMethod · 0.92
TestSyncRuleGroupsFunction · 0.85
TestBackupRulesFunction · 0.85
newManagerFunction · 0.85
buildRulerFunction · 0.85

Calls 9

buildNotifierConfigFunction · 0.85
NewManagerMetricsFunction · 0.85
newFrontendPoolFunction · 0.85
newUserExternalLabelsFunction · 0.85
newMapperFunction · 0.85
newRulesBackupManagerFunction · 0.85
RulesBackupEnabledMethod · 0.80
LogMethod · 0.45
ErrorMethod · 0.45

Tested by 7

TestSyncRuleGroupsFunction · 0.68
TestBackupRulesFunction · 0.68
newManagerFunction · 0.68
buildRulerFunction · 0.68