Skip to content

Commit

Permalink
Reuse meta-monitoring client
Browse files Browse the repository at this point in the history
Signed-off-by: Saswata Mukherjee <[email protected]>
  • Loading branch information
saswatamcode committed Jul 20, 2022
1 parent b647b54 commit 2238aee
Showing 1 changed file with 27 additions and 25 deletions.
52 changes: 27 additions & 25 deletions pkg/receive/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,12 +117,13 @@ type Handler struct {
options *Options
listener net.Listener

mtx sync.RWMutex
hashring Hashring
peers *peerGroup
expBackoff backoff.Backoff
peerStates map[string]*retryState
receiverMode ReceiverMode
mtx sync.RWMutex
hashring Hashring
peers *peerGroup
expBackoff backoff.Backoff
peerStates map[string]*retryState
receiverMode ReceiverMode
metaMonitoringClient *http.Client

forwardRequests *prometheus.CounterVec
replications *prometheus.CounterVec
Expand Down Expand Up @@ -227,6 +228,24 @@ func NewHandler(logger log.Logger, o *Options) *Handler {

h.configuredTenantLimit.Set(float64(o.MaxPerTenantLimit))

if h.options.MetaMonitoringUrl.Host != "" && (h.receiverMode == RouterOnly || h.receiverMode == RouterIngestor) {
// Use specified HTTPConfig to make requests to meta-monitoring.
httpConfContentYaml, err := h.options.MetaMonitoringHttpClient.Content()
if err != nil {
level.Error(h.logger).Log("msg", "getting http client config", "err", err.Error())
}

httpClientConfig, err := httpconfig.NewClientConfigFromYAML(httpConfContentYaml)
if err != nil {
level.Error(h.logger).Log("msg", "parsing http config YAML", "err", err.Error())
}

h.metaMonitoringClient, err = httpconfig.NewHTTPClient(*httpClientConfig, "thanos-receive")
if err != nil {
level.Error(h.logger).Log("msg", "improper http client config", "err", err.Error())
}
}

ins := extpromhttp.NewNopInstrumentationMiddleware()
if o.Registry != nil {
ins = extpromhttp.NewTenantInstrumentationMiddleware(
Expand Down Expand Up @@ -491,8 +510,7 @@ func (h *Handler) receiveHTTP(w http.ResponseWriter, r *http.Request) {
if h.receiverMode == RouterOnly || h.receiverMode == RouterIngestor {
under, err := h.isUnderLimit(ctx, tenant, tLogger)
if err != nil {
level.Info(tLogger).Log("msg", "error while limiting", "err", err.Error())

level.Error(tLogger).Log("msg", "error while limiting", "err", err.Error())
}

// Fail request fully if tenant has exceeded set limit.
Expand Down Expand Up @@ -536,23 +554,7 @@ func (h *Handler) isUnderLimit(ctx context.Context, tenant string, logger log.Lo
return true, nil
}

// Use specified HTTPConfig to make requests to meta-monitoring.
httpConfContentYaml, err := h.options.MetaMonitoringHttpClient.Content()
if err != nil {
return true, errors.Wrap(err, "getting http client config")
}

httpClientConfig, err := httpconfig.NewClientConfigFromYAML(httpConfContentYaml)
if err != nil {
return true, errors.Wrap(err, "parsing http config YAML")
}

httpClient, err := httpconfig.NewHTTPClient(*httpClientConfig, "thanos-receive")
if err != nil {
return true, errors.Wrap(err, "improper http client config")
}

c := promclient.NewWithTracingClient(logger, httpClient, httpconfig.ThanosUserAgent)
c := promclient.NewWithTracingClient(logger, h.metaMonitoringClient, httpconfig.ThanosUserAgent)

vectorRes, _, err := c.QueryInstant(ctx, h.options.MetaMonitoringUrl, h.options.MetaMonitoringLimitQuery, time.Now(), promclient.QueryOptions{})
if err != nil {
Expand Down

0 comments on commit 2238aee

Please sign in to comment.