MCPcopy Create free account
hub / github.com/cortexproject/cortex / NewPool

Function NewPool

pkg/ring/client/pool.go:60–75  ·  view source on GitHub ↗

NewPool creates a new Pool.

(clientName string, cfg PoolConfig, discovery PoolServiceDiscovery, factory PoolFactory, clientsMetric prometheus.Gauge, logger log.Logger)

Source from the content-addressed store, hash-verified

58
59// NewPool creates a new Pool.
60func NewPool(clientName string, cfg PoolConfig, discovery PoolServiceDiscovery, factory PoolFactory, clientsMetric prometheus.Gauge, logger log.Logger) *Pool {
61 p := &Pool{
62 cfg: cfg,
63 discovery: discovery,
64 factory: factory,
65 logger: logger,
66 clientName: clientName,
67 clients: map[string]PoolClient{},
68 clientsMetric: clientsMetric,
69 }
70
71 p.Service = services.
72 NewTimerService(cfg.CheckInterval, nil, p.iteration, nil).
73 WithName(fmt.Sprintf("%s client pool", p.clientName))
74 return p
75}
76
77func (p *Pool) iteration(ctx context.Context) error {
78 p.removeStaleClients()

Callers 6

newSchedulerProcessorFunction · 0.92
newFrontendPoolFunction · 0.92
newRulerClientPoolFunction · 0.92
TestPoolCacheFunction · 0.70

Calls 2

NewTimerServiceFunction · 0.92
WithNameMethod · 0.80

Tested by 1

TestPoolCacheFunction · 0.56