-
Notifications
You must be signed in to change notification settings - Fork 5k
[fix:filebeat/input/redis/slowlog] Correctly parse Redis role values in connection receive #42222
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[fix:filebeat/input/redis/slowlog] Correctly parse Redis role values in connection receive #42222
Conversation
|
This pull request does not have a backport label.
To fixup this pull request, you need to add the backport labels for the needed
|
|
|
36c54f2 to
521bc6d
Compare
521bc6d to
e3e2332
Compare
|
@jdheyburn could you add a test to show that this fix works? There is already an integration test on this package ( |
|
Thanks @belimawr, I am unsure if the integration test is doing much besides seeing if it can establish a connection to Redis. Would it make more sense to enhance the below instead to verify that it is a string being returned?
|
That does make sense, however, we are trying to move away from those python tests and migrate them to Go. Currently we're doing our bests not to write new python tests (or add functionalities to them). If you could add this validation to the Go test |
|
@belimawr I appreciate the path going forward is to use the Go integration tests, but I believe this increases the scope of the PR which is a bug fix. For this iteration could we continue to use the Python test and any net new functionality gets added as a Go integration test? |
I see your point, but if we keeping adding functionalities to python tests we might never get rid of them. Also looking at the Go integration test, I believe it will be simple to add an extra check here: beats/filebeat/input/redis/redis_integration_test.go Lines 140 to 143 in 7fd2d46
|
|
@belimawr I'm trying to pick this up again. There seems to be little to no documentation on how I can run these integration tests. I am trying to validate that the below is what is required for the test? select {
case event := <-eventsCh:
val, err := event.GetValue("message")
require.NoError(t, err)
require.Equal(t, message, val)
val, err = event.GetValue("redis.slowlog.role")
require.NoError(t, err)
require.Equal(t, "master", val)
case <-time.After(30 * time.Second):
t.Fatal("Timeout waiting for event")
}I would appreciate any pointers you have for me to be able to add the desired test. |
|
Pinging @elastic/elastic-agent-data-plane (Team:Elastic-Agent-Data-Plane) |
You need to start the docker container dependencies, then run the tests with the integration build flag: Once you're done, you can bring down the containers with: If you need to debug the tests, you can use: |
e7e0286 to
cd5bf04
Compare
|
Thanks @belimawr, I was able to get an integration test working, and adjust the fix in the process! I'd love a review when you're able to. |
|
@belimawr Is it possible to get this PR merged assuming it has all the necessary approvals? Thanks! |
|
Hi @jdheyburn, I'll take care of getting CI running and merging it. Sorry about the delay. |
|
buildkite test this |
1 similar comment
|
buildkite test this |
|
/test |
…in connection receive (#42222) --------- Co-authored-by: Tiago Queiroz <[email protected]> (cherry picked from commit 19a724d)
…in connection receive (#42222) (#43361) --------- Co-authored-by: Tiago Queiroz <[email protected]> (cherry picked from commit 19a724d) Co-authored-by: Joseph Heyburn <[email protected]>
Redis replication role was added in below PR:
However it did not correctly deserialize the response, this PR fixes that.
Proposed commit message
Correctly parse Redis role values in connection receive
Checklist
CHANGELOG.next.asciidocorCHANGELOG-developer.next.asciidoc.Disruptive User Impact
N/A
Author's Checklist
How to test this PR locally
Related issues
Use cases
Screenshots
Logs