MCPcopy
hub / github.com/grafana/tempo / watchOverrides

Method watchOverrides

modules/generator/storage/instance.go:158–186  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

156}
157
158func (s *storageImpl) watchOverrides() {
159 t := time.NewTicker(30 * time.Second)
160 defer t.Stop()
161
162 for {
163 select {
164 case <-t.C:
165 newHeaders := s.overrides.MetricsGeneratorRemoteWriteHeaders(s.tenantID)
166 newGenerateNativeHistograms := s.overrides.MetricsGeneratorGenerateNativeHistograms(s.tenantID)
167 newSendNativeHistograms := overrides.HasNativeHistograms(newGenerateNativeHistograms)
168
169 if !headersEqual(s.currentHeaders, newHeaders) || s.sendNativeHistograms != newSendNativeHistograms {
170 s.logger.Info("updating remote write configuration")
171 err := s.remote.ApplyConfig(&prometheus_config.Config{
172 RemoteWriteConfigs: generateTenantRemoteWriteConfigs(s.cfg.RemoteWrite, s.tenantID, newHeaders, s.cfg.RemoteWriteAddOrgIDHeader, s.logger, newSendNativeHistograms),
173 })
174 if err != nil {
175 metricStorageRemoteWriteUpdateFailed.WithLabelValues(s.tenantID).Inc()
176 s.logger.Warn("Failed to update remote write configuration. Remote write will continue with previous configuration", "err", err.Error())
177 continue
178 }
179 s.currentHeaders = newHeaders
180 s.sendNativeHistograms = newSendNativeHistograms
181 }
182 case <-s.closeCh:
183 return
184 }
185 }
186}
187
188func headersEqual(a, b map[string]string) bool {
189 if len(a) != len(b) {

Callers 1

NewFunction · 0.95

Calls 8

HasNativeHistogramsFunction · 0.92
headersEqualFunction · 0.85
StopMethod · 0.65
IncMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected