Skip to content

Commit 4e5ed79

Browse files
Update log when 429 retry
1 parent e01365a commit 4e5ed79

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

metrics_azurerm_costs.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ const (
2727
CostsQueryEnvVarPrefix = "COSTS_QUERY_"
2828
)
2929

30+
var (
31+
retryAfter int
32+
)
33+
3034
type (
3135
MetricsCollectorAzureRmCosts struct {
3236
collector.Processor
@@ -120,11 +124,11 @@ func (m *MetricsCollectorAzureRmCosts) Collect(callback chan<- func()) {
120124
exportType = armcostmanagement.ExportTypeAmortizedCost
121125
}
122126

123-
m.collectRunCostQuery(&query, exportType, callback)
127+
m.collectRunCostQuery(&query, exportType)
124128
}
125129
}
126130

127-
func (m *MetricsCollectorAzureRmCosts) collectRunCostQuery(query *config.CollectorCostsQuery, exportType armcostmanagement.ExportType, callback chan<- func()) {
131+
func (m *MetricsCollectorAzureRmCosts) collectRunCostQuery(query *config.CollectorCostsQuery, exportType armcostmanagement.ExportType) {
128132
queryLogger := logger.With(zap.String("query", query.Name))
129133
for _, timeframe := range query.TimeFrames {
130134
timeframeLogger := queryLogger.With(zap.String("timeframe", timeframe))
@@ -452,7 +456,7 @@ func (m *MetricsCollectorAzureRmCosts) sendCostQuery(ctx context.Context, logger
452456
logger.Errorf("Unable to parse retry-after header: %v", retryAfterHeader)
453457
return fmt.Errorf("unable to parse retry-after header: %v", retryAfterHeader)
454458
}
455-
logger.Errorf("Received 429 Too Many Requests. Retrying after %d seconds. Headers: %v", retryAfter, resp.Header)
459+
logger.Warnf("Received 429 Too Many Requests. Retrying after %d seconds.", retryAfter)
456460
time.Sleep(time.Duration(retryAfter) * time.Second)
457461
return fmt.Errorf("received 429 Too Many Requests, retrying after %d seconds", retryAfter)
458462
}
@@ -474,6 +478,7 @@ func (m *MetricsCollectorAzureRmCosts) sendCostQuery(ctx context.Context, logger
474478
if err != nil {
475479
// If we encounter a rate limit error, retry after the specified delay.
476480
if strings.Contains(err.Error(), "received 429 Too Many Requests") {
481+
logger.Infoln("Encountered rate limit error. Retrying after the specified delay of %d seconds.", retryAfter)
477482
continue
478483
}
479484
return result, err

0 commit comments

Comments
 (0)