Enable partial config reload for the otel collector#15381
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
ee5a519 to
e72f3ff
Compare
This comment has been minimized.
This comment has been minimized.
e72f3ff to
9e2ca9a
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
| go.opentelemetry.io/collector/otelcol => github.com/swiatekm/opentelemetry-collector/otelcol v0.0.0-20260706150950-9242922d607f | ||
| go.opentelemetry.io/collector/service => github.com/swiatekm/opentelemetry-collector/service v0.0.0-20260706150950-9242922d607f |
There was a problem hiding this comment.
Instead of using your personal fork, could we update https://github.com/elastic/opentelemetry-collector and use that instead?
There was a problem hiding this comment.
The plan is to do that before release if we still need the patch. There's some ownership and admin bureaucracy involved in that fork right now that's being resolved.
| // off by default) and the receiver-phase gate (service.partialReloadReceivers, | ||
| // Beta). Both are listed explicitly so the intent holds regardless of the | ||
| // gates' default stages. | ||
| OtelReceiverPartialReloadFeatures = "service.partialReload,service.partialReloadReceivers" |
There was a problem hiding this comment.
Since the partial reload feature upstream is marked as alpha, should we provide a feature flag for Elastic Agent users to opt out of it (default = opt in). We don't need to document it necessarily; but it might be a useful escape hatch in case we get SDHs around this feature.
There was a problem hiding this comment.
That's a good idea, I can add a switch in agent.internal. It'll be possible to shoot yourself in the foot by disabling it without care, but that's true about a lot of internal settings already.
This comment has been minimized.
This comment has been minimized.
c8054d8 to
7c45cf5
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
TL;DR
Remediation
Investigation detailsRoot CauseThe failed workflow is The PR only changes - Stack: &define.Stack{},Because this workflow runs golangci-lint with Evidence
Validation
Follow-up
What is this? | From workflow: PR Actions Detective Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Use a more explicit syntax which survives a marshal/unmarshal cycle better.
This reverts commit 7c45cf5.
ef1d38a to
4148486
Compare
⏳ Build in-progress, with failures
Failed CI Steps
History
cc @swiatekm |
TL;DRThe Linux endpoint-security failure is a reproducible partial-reload shutdown symptom: after Elastic Defend is removed, Remediation
Investigation detailsRoot CauseThe Linux test successfully installed and enrolled the agent, then failed only while removing Elastic Defend. The status poll repeatedly reported the This is the same failure shape documented in flaky-test issue #14049: the component was left in The Windows test failed during initial health convergence: enrollment succeeded, but status polling saw Fleet Evidence
The Linux teardown also reported GitHub authentication failure while destroying the ephemeral ESS cluster. That occurred after the integration test failure and is secondary infrastructure noise; the cluster is reported as ephemeral and will auto-expire. VerificationNot run locally: these tests require the Buildkite Windows/Linux Fleet and ESS environments, and Docker-in-Docker is unavailable here. What is this? | From workflow: PR Buildkite Detective Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not. |
What does this PR do?
Enabled partial config reload for the otel collector. This includes two patched collector core packages with open-telemetry/opentelemetry-collector#15397 included as a single commit. The intent is to move this to the elastic official fork if it's not merged in time for 9.5.0.
Why is it important?
We depends on this feature to be able to use the otel runtime for dynamic inputs. Filestream in Kubernetes is the primary example.
Checklist
[ ] I have made corresponding change to the default configuration files[ ] I have added an entry in./changelog/fragmentsusing the changelog tool[ ] I have added an integration test or an E2E testDisruptive User Impact
Should be invisible to users and quietly improve performance in most cases on config changes.
How to test this PR locally
Related issues