| 33 | } |
| 34 | |
| 35 | func newBlocksStoreBalancedSet(serviceAddresses []string, clientConfig ClientConfig, logger log.Logger, reg prometheus.Registerer) *blocksStoreBalancedSet { |
| 36 | const dnsResolveInterval = 10 * time.Second |
| 37 | |
| 38 | dnsProviderReg := extprom.WrapRegistererWithPrefix("cortex_storegateway_client_", reg) |
| 39 | |
| 40 | s := &blocksStoreBalancedSet{ |
| 41 | serviceAddresses: serviceAddresses, |
| 42 | dnsProvider: dns.NewProvider(logger, dnsProviderReg, dns.GolangResolverType), |
| 43 | clientsPool: newStoreGatewayClientPool(nil, clientConfig, logger, reg), |
| 44 | logger: logger, |
| 45 | } |
| 46 | |
| 47 | s.Service = services.NewTimerService(dnsResolveInterval, s.starting, s.resolve, nil) |
| 48 | return s |
| 49 | } |
| 50 | |
| 51 | func (s *blocksStoreBalancedSet) starting(ctx context.Context) error { |
| 52 | // Initial DNS resolution. |