Ruler evaluates rules. +---------------------------------------------------------------+ | | | Query +-------------+ | | +------------------> | | |
| 325 | // | | |
| 326 | // +---------------------------------------------------------------+ |
| 327 | type Ruler struct { |
| 328 | services.Service |
| 329 | |
| 330 | cfg Config |
| 331 | lifecycler *ring.BasicLifecycler |
| 332 | ring *ring.Ring |
| 333 | store rulestore.RuleStore |
| 334 | manager MultiTenantManager |
| 335 | limits RulesLimits |
| 336 | |
| 337 | subservices *services.Manager |
| 338 | subservicesWatcher *services.FailureWatcher |
| 339 | |
| 340 | // Pool of clients used to connect to other ruler replicas. |
| 341 | clientsPool ClientsPool |
| 342 | |
| 343 | ringCheckErrors prometheus.Counter |
| 344 | rulerSync *prometheus.CounterVec |
| 345 | ruleGroupStoreLoadDuration prometheus.Gauge |
| 346 | ruleGroupSyncDuration prometheus.Gauge |
| 347 | rulerGetRulesFailures *prometheus.CounterVec |
| 348 | ruleGroupMetrics *RuleGroupMetrics |
| 349 | |
| 350 | allowedTenants *users.AllowedTenants |
| 351 | |
| 352 | registry prometheus.Registerer |
| 353 | logger log.Logger |
| 354 | |
| 355 | userIndexUpdater *users.UserIndexUpdater |
| 356 | } |
| 357 | |
| 358 | // NewRuler creates a new ruler from a distributor and chunk store. |
| 359 | func NewRuler(cfg Config, manager MultiTenantManager, reg prometheus.Registerer, logger log.Logger, ruleStore rulestore.RuleStore, limits RulesLimits) (*Ruler, error) { |
nothing calls this directly
no outgoing calls
no test coverage detected