migrate libbeat monitoring tests from python to go#50177
Draft
leehinman wants to merge 1 commit intoelastic:mainfrom
Draft
migrate libbeat monitoring tests from python to go#50177leehinman wants to merge 1 commit intoelastic:mainfrom
leehinman wants to merge 1 commit intoelastic:mainfrom
Conversation
Contributor
🤖 GitHub commentsJust comment with:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed commit message
Converts
test_monitoring.pysystem tests to Go integration tests using the existinglibbeat/tests/integrationframework, continuing the effort to replace Python-based system tests with Go integration tests.libbeat/tests/integration/monitoring_test.gowith three testslibbeat/tests/system/test_monitoring.pyThe three tests cover:
TestMonitoringClusterUUIDtest_cluster_uuid_settingTestMonitoringClusterUUIDMonitoringDisabledtest_cluster_uuid_setting_monitoring_disabledTestMonitoringDirectToClustertest_direct_to_monitoring_clusterNotable implementation details
Dynamic HTTP port allocation — The Python tests hardcoded
localhost:5066for the beat's HTTP/stateendpoint. The Go tests usefreePort()to allocate a random available port and configure it in the beat's YAML config. This prevents port conflicts when a test process is left alive after a timeout.Selective skipping for the monitoring cluster —
TestMonitoringDirectToClustercallsEnsureESIsRunning(fatal if the main cluster is absent, consistent with all other ES integration tests) andensureMonitoringESIsRunning(skip if the dedicated monitoring cluster atES_MONITORING_HOST:ES_MONITORING_PORTis absent). This matches the original Python behaviour where that test was only run whenINTEGRATION_TESTSwas set and the monitoring cluster was available.Original class was
@unittest.skip— The entire Python class was marked permanently skipped due to flakiness (#16247). The two cluster UUID tests translate cleanly into reliable Go tests that need no external services.TestMonitoringDirectToClusteris a proper integration test gated on the full monitoring infrastructure.Checklist
stresstest.shscript to run them under stress conditions and race detector to verify their stability../changelog/fragmentsusing the changelog tool.Disruptive User Impact
None. Test code.
How to test this PR locally
Related issues
Use cases
Screenshots
Logs