Browse Source

Merge pull request #10102 from prometheus/update-metrics-on-rw-fails

Update sent timestamp when write irrecoverably fails
pull/10126/head
Chris Marchbanks 3 years ago committed by GitHub
parent
commit
ba03f7fc23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      storage/remote/queue_manager.go

9
storage/remote/queue_manager.go

@ -15,6 +15,7 @@ package remote
import (
"context"
"errors"
"math"
"strconv"
"sync"
@ -1311,12 +1312,16 @@ func (s *shards) sendSamplesWithBackoff(ctx context.Context, samples []prompb.Ti
}
err = sendWriteRequestWithBackoff(ctx, s.qm.cfg, s.qm.logger, attemptStore, onRetry)
if err != nil {
if errors.Is(err, context.Canceled) {
// When there is resharding, we cancel the context for this queue, which means the data is not sent.
// So we exit early to not update the metrics.
return err
}
s.qm.metrics.sentBytesTotal.Add(float64(reqSize))
s.qm.metrics.highestSentTimestamp.Set(float64(highest / 1000))
return nil
return err
}
func sendWriteRequestWithBackoff(ctx context.Context, cfg config.QueueConfig, l log.Logger, attempt func(int) error, onRetry func()) error {

Loading…
Cancel
Save