Skip to content

Commit

Permalink
Check for response object before returning the generic error
Browse files Browse the repository at this point in the history
Signed-off-by: Ara Pulido <ara.pulido@datadoghq.com>
  • Loading branch information
arapulido committed Feb 21, 2023
1 parent 9b33bad commit bca8e12
Showing 1 changed file with 16 additions and 9 deletions.
25 changes: 16 additions & 9 deletions pkg/scalers/datadog_scaler.go
Original file line number Diff line number Diff line change
Expand Up @@ -286,19 +286,26 @@ func (s *datadogScaler) getQueryResult(ctx context.Context) (float64, error) {
timeWindowTo := time.Now().Unix() - int64(s.metadata.timeWindowOffset)
timeWindowFrom := timeWindowTo - int64(s.metadata.age)
resp, r, err := s.apiClient.MetricsApi.QueryMetrics(ctx, timeWindowFrom, timeWindowTo, s.metadata.query) //nolint:bodyclose
if err != nil {
return -1, fmt.Errorf("error when retrieving Datadog metrics: %w", err)
}

if r.StatusCode == 429 {
rateLimit := r.Header.Get("X-Ratelimit-Limit")
rateLimitReset := r.Header.Get("X-Ratelimit-Reset")
if r != nil {
if r.StatusCode == 429 {
rateLimit := r.Header.Get("X-Ratelimit-Limit")
rateLimitReset := r.Header.Get("X-Ratelimit-Reset")
rateLimitPeriod := r.Header.Get("X-Ratelimit-Period")

return -1, fmt.Errorf("your Datadog account reached the %s queries per %s seconds rate limit, next limit reset will happen in %s seconds", rateLimit, rateLimitPeriod, rateLimitReset)
}

return -1, fmt.Errorf("your Datadog account reached the %s queries per hour rate limit, next limit reset will happen in %s seconds", rateLimit, rateLimitReset)
if r.StatusCode != 200 {
if err != nil {
return -1, fmt.Errorf("error when retrieving Datadog metrics: %w", err)
}
return -1, fmt.Errorf("error when retrieving Datadog metrics")
}
}

if r.StatusCode != 200 {
return -1, fmt.Errorf("error when retrieving Datadog metrics")
if err != nil {
return -1, fmt.Errorf("error when retrieving Datadog metrics: %w", err)
}

if resp.GetStatus() == "error" {
Expand Down

0 comments on commit bca8e12

Please # to comment.