Skip to content

Commit

Permalink
datadog_scaler: handle mising { on dd query (kedacore#2629)
Browse files Browse the repository at this point in the history
Signed-off-by: Ali Reza Yahya <[email protected]>
Co-authored-by: Zbynek Roubalik <[email protected]>
  • Loading branch information
alileza and zroubalik authored Feb 15, 2022
1 parent 5898347 commit 2b6c064
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@

- **Azure Queue:** Don't call Azure queue GetProperties API unnecessarily ([#2613](https://github.com/kedacore/keda/pull/2613))
- **Kafka Scaler** Make "disable" a valid value for tls auth parameter ([#2608](https://github.com/kedacore/keda/issues/2608))
- **Datadog Scaler:** Validate query to contain `{` to prevent panic on invalid query ([#2625](https://github.com/kedacore/keda/issues/2625))

### Breaking Changes

Expand Down
3 changes: 3 additions & 0 deletions pkg/scalers/datadog_scaler.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ func parseDatadogMetadata(config *ScalerConfig) (*datadogMetadata, error) {
} else {
return nil, fmt.Errorf("no query given")
}
if !strings.Contains(meta.query, "{") {
return nil, fmt.Errorf("expecting query to contain `{`, got %s", meta.query)
}

if val, ok := config.TriggerMetadata["queryValue"]; ok {
queryValue, err := strconv.Atoi(val)
Expand Down
2 changes: 2 additions & 0 deletions pkg/scalers/datadog_scaler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ var testDatadogMetadata = []datadogAuthMetadataTestData{
{map[string]string{"query": "sum:trace.redis.command.hits{env:none,service:redis}.as_count()", "queryValue": "7"}, map[string]string{"appKey": "appKey"}, true},
// missing appKey
{map[string]string{"query": "sum:trace.redis.command.hits{env:none,service:redis}.as_count()", "queryValue": "7"}, map[string]string{"apiKey": "apiKey"}, true},
// invalid query missing {
{map[string]string{"query": "sum:trace.redis.command.hits.as_count()", "queryValue": "7"}, map[string]string{}, true},
}

func TestDatadogScalerAuthParams(t *testing.T) {
Expand Down

0 comments on commit 2b6c064

Please sign in to comment.