Skip to content

Commit eece3da

Browse files
committed
reload https
1 parent 47132e6 commit eece3da

File tree

1 file changed

+14
-11
lines changed
  • receiver/prometheusreceiver/targetallocator

1 file changed

+14
-11
lines changed

receiver/prometheusreceiver/targetallocator/manager.go

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ type Manager struct {
3636
scrapeManager *scrape.Manager
3737
discoveryManager *discovery.Manager
3838
enableNativeHistograms bool
39+
host component.Host
3940
}
4041

4142
func NewManager(set receiver.Settings, cfg *Config, promCfg *promconfig.Config, enableNativeHistograms bool) *Manager {
@@ -52,6 +53,8 @@ func NewManager(set receiver.Settings, cfg *Config, promCfg *promconfig.Config,
5253
func (m *Manager) Start(ctx context.Context, host component.Host, sm *scrape.Manager, dm *discovery.Manager) error {
5354
m.scrapeManager = sm
5455
m.discoveryManager = dm
56+
m.host = host
57+
5558
err := m.applyCfg()
5659
if err != nil {
5760
m.settings.Logger.Error("Failed to apply new scrape configuration", zap.Error(err))
@@ -61,14 +64,8 @@ func (m *Manager) Start(ctx context.Context, host component.Host, sm *scrape.Man
6164
// the target allocator is disabled
6265
return nil
6366
}
64-
httpClient, err := m.cfg.ClientConfig.ToClient(ctx, host, m.settings.TelemetrySettings)
65-
if err != nil {
66-
m.settings.Logger.Error("Failed to create http client", zap.Error(err))
67-
return err
68-
}
6967
m.settings.Logger.Info("Starting target allocator discovery")
70-
// immediately sync jobs, not waiting for the first tick
71-
savedHash, err := m.sync(uint64(0), httpClient)
68+
savedHash, err := m.sync(ctx, uint64(0))
7269
if err != nil {
7370
m.settings.Logger.Error("Failed to sync target allocator", zap.Error(err))
7471
}
@@ -77,7 +74,7 @@ func (m *Manager) Start(ctx context.Context, host component.Host, sm *scrape.Man
7774
for {
7875
select {
7976
case <-targetAllocatorIntervalTicker.C:
80-
hash, newErr := m.sync(savedHash, httpClient)
77+
hash, newErr := m.sync(ctx, savedHash)
8178
if newErr != nil {
8279
m.settings.Logger.Error(newErr.Error())
8380
continue
@@ -97,12 +94,18 @@ func (m *Manager) Shutdown() {
9794
close(m.shutdown)
9895
}
9996

100-
// sync request jobs from targetAllocator and update underlying receiver, if the response does not match the provided compareHash.
101-
// baseDiscoveryCfg can be used to provide additional ScrapeConfigs which will be added to the retrieved jobs.
102-
func (m *Manager) sync(compareHash uint64, httpClient *http.Client) (uint64, error) {
97+
// sync requests jobs from targetAllocator and updates the underlying receiver.
98+
// A fresh HTTP client is created on each sync so that any changes to certificate files are picked up.
99+
func (m *Manager) sync(ctx context.Context, compareHash uint64) (uint64, error) {
103100
m.settings.Logger.Debug("Syncing target allocator jobs")
104101
m.settings.Logger.Debug("endpoint", zap.String("endpoint", m.cfg.Endpoint))
105102

103+
httpClient, err := m.cfg.ClientConfig.ToClient(ctx, m.host, m.settings.TelemetrySettings)
104+
if err != nil {
105+
m.settings.Logger.Error("Failed to create http client", zap.Error(err))
106+
return 0, err
107+
}
108+
106109
scrapeConfigsResponse, err := getScrapeConfigsResponse(httpClient, m.cfg.Endpoint)
107110
if err != nil {
108111
m.settings.Logger.Error("Failed to retrieve job list", zap.Error(err))

0 commit comments

Comments
 (0)