NewRuleStore returns a rule store backend client based on the provided cfg.
(ctx context.Context, cfg rulestore.Config, cfgProvider bucket.TenantConfigProvider, loader promRules.GroupLoader, logger log.Logger, reg prometheus.Registerer, nameValidationScheme model.ValidationScheme)
| 18 | |
| 19 | // NewRuleStore returns a rule store backend client based on the provided cfg. |
| 20 | func NewRuleStore(ctx context.Context, cfg rulestore.Config, cfgProvider bucket.TenantConfigProvider, loader promRules.GroupLoader, logger log.Logger, reg prometheus.Registerer, nameValidationScheme model.ValidationScheme) (rulestore.RuleStore, error) { |
| 21 | if cfg.Backend == configdb.Name { |
| 22 | c, err := client.New(cfg.ConfigDB) |
| 23 | |
| 24 | if err != nil { |
| 25 | return nil, err |
| 26 | } |
| 27 | |
| 28 | return configdb.NewConfigRuleStore(c, nameValidationScheme), nil |
| 29 | } |
| 30 | |
| 31 | if cfg.Backend == local.Name { |
| 32 | return local.NewLocalRulesClient(cfg.Local, loader, nameValidationScheme) |
| 33 | } |
| 34 | |
| 35 | bucketClient, err := bucket.NewClient(ctx, cfg.Config, nil, "ruler-storage", logger, reg) |
| 36 | if err != nil { |
| 37 | return nil, err |
| 38 | } |
| 39 | |
| 40 | return bucketclient.NewBucketRuleStore(bucketClient, cfg.UsersScanner, cfgProvider, logger, reg) |
| 41 | } |
no test coverage detected