github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/ruler/ruler.go (about)

     1  package ruler
     2  
     3  import (
     4  	"github.com/go-kit/log"
     5  	"github.com/prometheus/client_golang/prometheus"
     6  
     7  	"github.com/grafana/loki/pkg/logql"
     8  	ruler "github.com/grafana/loki/pkg/ruler/base"
     9  	"github.com/grafana/loki/pkg/ruler/rulestore"
    10  )
    11  
    12  func NewRuler(cfg Config, engine *logql.Engine, reg prometheus.Registerer, logger log.Logger, ruleStore rulestore.RuleStore, limits RulesLimits) (*ruler.Ruler, error) {
    13  	mgr, err := ruler.NewDefaultMultiTenantManager(
    14  		cfg.Config,
    15  		MultiTenantRuleManager(cfg, engine, limits, logger, reg),
    16  		reg,
    17  		logger,
    18  	)
    19  	if err != nil {
    20  		return nil, err
    21  	}
    22  	return ruler.NewRuler(
    23  		cfg.Config,
    24  		MultiTenantManagerAdapter(mgr),
    25  		reg,
    26  		logger,
    27  		ruleStore,
    28  		limits,
    29  	)
    30  }