@@ -144,6 +144,7 @@ func runSidecar(
144144 maxt : math .MaxInt64 ,
145145
146146 limitMinTime : limitMinTime ,
147+ client : promclient .NewWithTracingClient (logger , "thanos-sidecar" ),
147148 }
148149
149150 confContentYaml , err := objStoreConfig .Content ()
@@ -198,15 +199,15 @@ func runSidecar(
198199 // Only check Prometheus's flags when upload is enabled.
199200 if uploads {
200201 // Check prometheus's flags to ensure sane sidecar flags.
201- if err := validatePrometheus (ctx , logger , ignoreBlockSize , m ); err != nil {
202+ if err := validatePrometheus (ctx , m . client , logger , ignoreBlockSize , m ); err != nil {
202203 return errors .Wrap (err , "validate Prometheus flags" )
203204 }
204205 }
205206
206207 // Blocking query of external labels before joining as a Source Peer into gossip.
207208 // We retry infinitely until we reach and fetch labels from our Prometheus.
208209 err := runutil .Retry (2 * time .Second , ctx .Done (), func () error {
209- if err := m .UpdateLabels (ctx , logger ); err != nil {
210+ if err := m .UpdateLabels (ctx ); err != nil {
210211 level .Warn (logger ).Log (
211212 "msg" , "failed to fetch initial external labels. Is Prometheus running? Retrying" ,
212213 "err" , err ,
@@ -239,7 +240,7 @@ func runSidecar(
239240 iterCtx , iterCancel := context .WithTimeout (context .Background (), 5 * time .Second )
240241 defer iterCancel ()
241242
242- if err := m .UpdateLabels (iterCtx , logger ); err != nil {
243+ if err := m .UpdateLabels (iterCtx ); err != nil {
243244 level .Warn (logger ).Log ("msg" , "heartbeat failed" , "err" , err )
244245 promUp .Set (0 )
245246 } else {
@@ -278,7 +279,7 @@ func runSidecar(
278279 return errors .Wrap (err , "setup gRPC server" )
279280 }
280281
281- s := grpcserver .New (logger , reg , tracer , comp , grpcProbe , promStore ,
282+ s := grpcserver .New (logger , reg , tracer , comp , grpcProbe , promStore , promStore ,
282283 grpcserver .WithListen (grpcBindAddr ),
283284 grpcserver .WithGracePeriod (grpcGracePeriod ),
284285 grpcserver .WithTLSConfig (tlsCfg ),
@@ -356,14 +357,14 @@ func runSidecar(
356357 return nil
357358}
358359
359- func validatePrometheus (ctx context.Context , logger log.Logger , ignoreBlockSize bool , m * promMetadata ) error {
360+ func validatePrometheus (ctx context.Context , client * promclient. Client , logger log.Logger , ignoreBlockSize bool , m * promMetadata ) error {
360361 var (
361362 flagErr error
362363 flags promclient.Flags
363364 )
364365
365366 if err := runutil .Retry (2 * time .Second , ctx .Done (), func () error {
366- if flags , flagErr = promclient .ConfiguredFlags (ctx , logger , m .promURL ); flagErr != nil && flagErr != promclient .ErrFlagEndpointNotFound {
367+ if flags , flagErr = client .ConfiguredFlags (ctx , m .promURL ); flagErr != nil && flagErr != promclient .ErrFlagEndpointNotFound {
367368 level .Warn (logger ).Log ("msg" , "failed to get Prometheus flags. Is Prometheus running? Retrying" , "err" , flagErr )
368369 return errors .Wrapf (flagErr , "fetch Prometheus flags" )
369370 }
@@ -402,10 +403,12 @@ type promMetadata struct {
402403 labels labels.Labels
403404
404405 limitMinTime thanosmodel.TimeOrDurationValue
406+
407+ client * promclient.Client
405408}
406409
407- func (s * promMetadata ) UpdateLabels (ctx context.Context , logger log. Logger ) error {
408- elset , err := promclient . ExternalLabels (ctx , logger , s .promURL )
410+ func (s * promMetadata ) UpdateLabels (ctx context.Context ) error {
411+ elset , err := s . client . ExternalLabels (ctx , s .promURL )
409412 if err != nil {
410413 return err
411414 }
0 commit comments