NewDistributor constructs a new Distributor
(cfg ClientConfig, maxRecvMsgSize int64, alertmanagersRing *ring.Ring, alertmanagerClientsPool ClientsPool, ringConfig RingConfig, logger log.Logger, reg prometheus.Registerer)
| 42 | |
| 43 | // NewDistributor constructs a new Distributor |
| 44 | func NewDistributor(cfg ClientConfig, maxRecvMsgSize int64, alertmanagersRing *ring.Ring, alertmanagerClientsPool ClientsPool, ringConfig RingConfig, logger log.Logger, reg prometheus.Registerer) (d *Distributor, err error) { |
| 45 | if alertmanagerClientsPool == nil { |
| 46 | alertmanagerClientsPool = newAlertmanagerClientsPool(client.NewRingServiceDiscovery(alertmanagersRing), cfg, logger, reg) |
| 47 | } |
| 48 | |
| 49 | d = &Distributor{ |
| 50 | cfg: cfg, |
| 51 | logger: logger, |
| 52 | maxRecvMsgSize: maxRecvMsgSize, |
| 53 | alertmanagerRing: alertmanagersRing, |
| 54 | alertmanagerClientsPool: alertmanagerClientsPool, |
| 55 | ringConfig: ringConfig, |
| 56 | } |
| 57 | |
| 58 | d.Service = services.NewBasicService(nil, d.running, nil) |
| 59 | return d, nil |
| 60 | } |
| 61 | |
| 62 | func (d *Distributor) running(ctx context.Context) error { |
| 63 | <-ctx.Done() |