fix(ci): fix Splunk integration test flakiness and re-enable#25879
Conversation
thomasqueirozb
left a comment
There was a problem hiding this comment.
/ci-run-integration-splunk
thomasqueirozb
left a comment
There was a problem hiding this comment.
/ci-run-integration-splunk
thomasqueirozb
left a comment
There was a problem hiding this comment.
/ci-run-integration-splunk
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 56d2f9c4f7
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| - 8088:8088 | ||
| - 8089:8089 | ||
| healthcheck: | ||
| test: ["CMD", "curl", "-f", "http://localhost:8088/services/collector/health"] |
There was a problem hiding this comment.
Wait for Splunk health before re-enabling the job
In the inspected CI path, scripts/run-integration-test.sh runs vdev ... start and then immediately vdev ... test, while Compose::start invokes Docker Compose as up --detach without --wait. Docker documents --wait as “Wait for services to be running|healthy”, so this new healthcheck is never used to block test execution; when Splunk is still booting past the helper's 60s token retry, the re-enabled Splunk integration job can still fail against a starting container. Please make the runner wait on health, or poll this endpoint before launching the tests.
Useful? React with 👍 / 👎.
| - SPLUNK_HEC_TOKEN=abcd1234 | ||
| volumes: | ||
| - ../data/splunk/default.yml:/tmp/defaults/default.yml | ||
| - ../data/default.yml:/tmp/defaults/default.yml |
There was a problem hiding this comment.
Keep shared tests on the non-ack HEC token
With this corrected mount, data/default.yml is now applied and adds the ack-token input with useACK: true, but the shared log and metric test configs still call get_token() and take the first token returned by Splunk; this patch only pins the non-ack token in one test even though the new comment notes ACK_TOKEN can be returned first. When that happens, ordinary sink tests unexpectedly exercise indexer acknowledgements with the 10s default query interval, making the re-enabled Splunk suite slow or flaky. Pin the common test configs to DEFAULT_TOKEN or select the intended token by name.
Useful? React with 👍 / 👎.
Summary
Fixes #23474 - Splunk integration tests were timing out due to two issues:
Vector configuration
NA
How did you test this PR?
make check-clippy/ci-run-integration-splunkhttps://github.com/vectordotdev/vector/actions/runs/29761543841/job/88417689710?pr=25879
Change Type
Is this a breaking change?
Does this PR include user facing changes?
no-changeloglabel to this PR.References