Skip to content

(fix): Sumo Logic scaler throws errors when upstream returns empty result#6906

Merged
wozniakjan merged 9 commits intokedacore:mainfrom
mittalvaibhav1:main
Jul 25, 2025
Merged

(fix): Sumo Logic scaler throws errors when upstream returns empty result#6906
wozniakjan merged 9 commits intokedacore:mainfrom
mittalvaibhav1:main

Conversation

@mittalvaibhav1
Copy link
Contributor

@mittalvaibhav1 mittalvaibhav1 commented Jul 14, 2025

Follows up on #6736

This PR fixes how we handle empty responses from the upstream API. Previously, an empty result was incorrectly treated as a non-aggregate query.

Changes -

  • ✅ If the API call returns raw messages but no records, it's considered a non-aggregate query. Updated logic to check both message count and record count (Previously, it was only checking record count).
  • ✅ If the API returns no messages and no records (i.e. truly no data), it now returns 0 instead of throwing an error.
  • ⚙️ To address the rate-limiting issues noticed by @rickbrouwer, this PR makes the pollingInterval for the log search job configurable. Note: this is distinct from KEDA’s existing polling interval. Since Sumo Logic Search Job APIs work asynchronously and require us to Poll for results, this allows control over how often we poll in a single execution.
  • Introduces exponential backOff rate-limit handling with configureable max retries.

Docs PR - kedacore/keda-docs#1599

Checklist

@rickbrouwer
Copy link
Member

rickbrouwer commented Jul 14, 2025

/run-e2e sumologic
Update: You can check the progress here

…ssages

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>
@mittalvaibhav1 mittalvaibhav1 changed the title (chore): don't complain if query results in zero messages (fix): Sumo Logic scaler throws errors when upstream returns empty result Jul 14, 2025
…onfigureable

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>
@rickbrouwer
Copy link
Member

rickbrouwer commented Jul 15, 2025

/run-e2e sumologic
Update: You can check the progress here

@rickbrouwer
Copy link
Member

I'm running the e2e, at least to see if there are any errors in the e2e test.
A proper review will definitely be necessary later on so this PR is out of draft.

@rickbrouwer
Copy link
Member

There is still an error:

***0***5-07-***5T***:***6:***0Z	ERROR	sumologic_scaler	error getting metrics from sumologic	***"type": "ScaledObject", "namespace": "sumologic-keda-test-ns", "name": "sumologic-keda-test-so", "error": "error response from server: DELETE https://api.sumologic.com/api/v***/search/jobs/0A***6F75***A0***D76*** ***\n  \"status\" : 4***9,\n  \"id\" : \"WECVO-9OUC***-UTI***V\",\n  \"code\" : \"rate.limit.exceeded\",\n  \"message\" : \"API rate limit for this user has been exceeded.\"\n*** 4***9 Too Many Requests"***

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>
@rickbrouwer
Copy link
Member

rickbrouwer commented Jul 15, 2025

/run-e2e sumologic
Update: You can check the progress here

@rickbrouwer
Copy link
Member

Great! I don't see any errors in the log anymore.

Given that a low pollingInterval may introduce rate limit errors, the only question is whether this is acceptable, or whether rate limit handling is necessary. I seem to recall that some scalers do implement this.
I'm curious how you look at that.

@mittalvaibhav1
Copy link
Contributor Author

It's certainly a good to have but I'm not sure if it's necessary. Generally, customers ingest metrics at 30/60 second scrape intervals. Lower pollingIntervals might not be useful to them. Given the backend also stores data in 1min rollups https://help.sumologic.com/docs/metrics/introduction/#how-does-sumo-store-metrics , the data is less likely to be updated within a few seconds. Open to whatever we deem best for Keda ecosystem.

@rickbrouwer
Copy link
Member

That's right, but customers can always be unpredictable with their settings ;)

I'm in two minds.
One, a simple mention in the documentation.
Or two, rate limit error handling
I think the github runner scaler also does something like that.

@mittalvaibhav1
Copy link
Contributor Author

I'll spend some time on this tomorrow. Thank you for the references!

Signed-off-by: mittalvaibhavs <mittalvaibhavandroid@gmail.com>
@mittalvaibhav1
Copy link
Contributor Author

How does 0635562 look like for rate-limit handling? @rickbrouwer

@rickbrouwer
Copy link
Member

rickbrouwer commented Jul 22, 2025

/run-e2e sumologic
Update: You can check the progress here

Signed-off-by: mittalvaibhavs <mittalvaibhavandroid@gmail.com>
Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>
@rickbrouwer
Copy link
Member

rickbrouwer commented Jul 24, 2025

/run-e2e sumologic
Update: You can check the progress here

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>
Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>
Co-authored-by: Rick Brouwer <rickbrouwer@gmail.com>
Signed-off-by: Vaibhav Mittal <53215737+mittalvaibhav1@users.noreply.github.com>
@rickbrouwer
Copy link
Member

rickbrouwer commented Jul 24, 2025

/run-e2e sumologic
Update: You can check the progress here

Copy link
Member

@rickbrouwer rickbrouwer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@rickbrouwer rickbrouwer added the ok-to-merge This PR can be merged label Jul 25, 2025
@rickbrouwer
Copy link
Member

rickbrouwer commented Jul 25, 2025

/run-e2e sumologic
Update: You can check the progress here

@wozniakjan wozniakjan merged commit 246dd2a into kedacore:main Jul 25, 2025
28 checks passed
dpochopsky pushed a commit to dpochopsky/keda that referenced this pull request Sep 12, 2025
…sult (kedacore#6906)

* (fix): `sumologic scaler`: don't complain if query results in zero messages

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): `sumologic scaler`: Update tests and making polling interval configureable

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): Increase sumologic scaler e2e pollingInterval

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): Add rate-limiting handling

Signed-off-by: mittalvaibhavs <mittalvaibhavandroid@gmail.com>

* (fix): tuning e2e

Signed-off-by: mittalvaibhavs <mittalvaibhavandroid@gmail.com>

* (fix): semgrep happy

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): update changelog

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* PR comments - removing changelog entry

Co-authored-by: Rick Brouwer <rickbrouwer@gmail.com>
Signed-off-by: Vaibhav Mittal <53215737+mittalvaibhav1@users.noreply.github.com>

---------

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>
Signed-off-by: mittalvaibhavs <mittalvaibhavandroid@gmail.com>
Signed-off-by: Vaibhav Mittal <53215737+mittalvaibhav1@users.noreply.github.com>
Co-authored-by: Rick Brouwer <rickbrouwer@gmail.com>
Signed-off-by: David Pochopsky <david.pochopsky@united.com>
alt-dima pushed a commit to alt-dima/keda that referenced this pull request Dec 13, 2025
…sult (kedacore#6906)

* (fix): `sumologic scaler`: don't complain if query results in zero messages

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): `sumologic scaler`: Update tests and making polling interval configureable

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): Increase sumologic scaler e2e pollingInterval

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): Add rate-limiting handling

Signed-off-by: mittalvaibhavs <mittalvaibhavandroid@gmail.com>

* (fix): tuning e2e

Signed-off-by: mittalvaibhavs <mittalvaibhavandroid@gmail.com>

* (fix): semgrep happy

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): update changelog

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* PR comments - removing changelog entry

Co-authored-by: Rick Brouwer <rickbrouwer@gmail.com>
Signed-off-by: Vaibhav Mittal <53215737+mittalvaibhav1@users.noreply.github.com>

---------

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>
Signed-off-by: mittalvaibhavs <mittalvaibhavandroid@gmail.com>
Signed-off-by: Vaibhav Mittal <53215737+mittalvaibhav1@users.noreply.github.com>
Co-authored-by: Rick Brouwer <rickbrouwer@gmail.com>
Signed-off-by: Dmitriy Altuhov <altuhovd@gmail.com>
tangobango5 pushed a commit to tangobango5/keda that referenced this pull request Dec 22, 2025
…sult (kedacore#6906)

* (fix): `sumologic scaler`: don't complain if query results in zero messages

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): `sumologic scaler`: Update tests and making polling interval configureable

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): Increase sumologic scaler e2e pollingInterval

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): Add rate-limiting handling

Signed-off-by: mittalvaibhavs <mittalvaibhavandroid@gmail.com>

* (fix): tuning e2e

Signed-off-by: mittalvaibhavs <mittalvaibhavandroid@gmail.com>

* (fix): semgrep happy

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): update changelog

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* PR comments - removing changelog entry

Co-authored-by: Rick Brouwer <rickbrouwer@gmail.com>
Signed-off-by: Vaibhav Mittal <53215737+mittalvaibhav1@users.noreply.github.com>

---------

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>
Signed-off-by: mittalvaibhavs <mittalvaibhavandroid@gmail.com>
Signed-off-by: Vaibhav Mittal <53215737+mittalvaibhav1@users.noreply.github.com>
Co-authored-by: Rick Brouwer <rickbrouwer@gmail.com>
tangobango5 pushed a commit to tangobango5/keda that referenced this pull request Feb 13, 2026
…sult (kedacore#6906)

* (fix): `sumologic scaler`: don't complain if query results in zero messages

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): `sumologic scaler`: Update tests and making polling interval configureable

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): Increase sumologic scaler e2e pollingInterval

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): Add rate-limiting handling

Signed-off-by: mittalvaibhavs <mittalvaibhavandroid@gmail.com>

* (fix): tuning e2e

Signed-off-by: mittalvaibhavs <mittalvaibhavandroid@gmail.com>

* (fix): semgrep happy

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* (fix): update changelog

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>

* PR comments - removing changelog entry

Co-authored-by: Rick Brouwer <rickbrouwer@gmail.com>
Signed-off-by: Vaibhav Mittal <53215737+mittalvaibhav1@users.noreply.github.com>

---------

Signed-off-by: mittalvaibhav1 <mittalvaibhavandroid@gmail.com>
Signed-off-by: mittalvaibhavs <mittalvaibhavandroid@gmail.com>
Signed-off-by: Vaibhav Mittal <53215737+mittalvaibhav1@users.noreply.github.com>
Co-authored-by: Rick Brouwer <rickbrouwer@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ok-to-merge This PR can be merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants