-
Notifications
You must be signed in to change notification settings - Fork 205
Ensure the self-monitoring configuration knows the actual component runtime #11300
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
Ensure the self-monitoring configuration knows the actual component runtime #11300
Conversation
7e29478 to
aba6cc1
Compare
1dc723b to
0e8bc78
Compare
0e8bc78 to
c20cea5
Compare
|
Pinging @elastic/elastic-agent-control-plane (Team:Elastic-Agent-Control-Plane) |
💛 Build succeeded, but was flaky
Failed CI Steps
History
cc @swiatekm |
cmacknz
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested locally and works, a couple of very minor comments.
A lot of this is mechanical so we can probably backport after 9.2.2 is released, I don't think we need to rush this into 9.2.2 as long as we are confident there is no reason to with the work around that is already there.
…untime (#11300) * Move ComponentsModifies to the component package * Move Otel runtime determination to component modifier * Check supported outputs in monitoring config generation * Add changelog entry * Log warning about switching to process runtime for monitoring * Fix monitoring config types * fix TestBeatsReceiverProcessRuntimeFallback * Add logstash output to test cases (cherry picked from commit 2c4c615) # Conflicts: # internal/pkg/agent/application/monitoring/component/v1_monitor.go # internal/pkg/agent/install/componentvalidation/validation.go # internal/pkg/otel/translate/otelconfig.go # pkg/component/component.go # testing/integration/ess/beat_receivers_test.go
What does this PR do?
When we generate self-monitoring configuration, we do certain things differently depending on whether a component will run in a beat process or a beat receiver in an otel collector. This PR ensures this information is accurate. Up until now, this decision was based on which runtime the component was configured to use, rather than what it ultimately used. If the component cannot run in the otel runtime - for example because the output is not supported - it would fall back to the process runtime, but this would happen after the self-monitoring configuration was generated, leading to inconsistencies.
This is achieved by making the following changes:
Why is it important?
Checklist
[ ] I have made corresponding changes to the documentation[ ] I have made corresponding change to the default configuration files./changelog/fragmentsusing the changelog tool[ ] I have added an integration test or an E2E testHow to test this PR locally
Build agent locally and run using the following configuration:
Verify that all the components are running as beats processes via the status, and that the prometheus monitoring component is not present.
Related issues