-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
[cmd/opampsupervisor] config not updated in opampSupervisor/opampExtension when processor pipeline already exists #36405
Comments
Pinging code owners:
See Adding Labels via Comments if you do not have permissions to add labels yourself. |
I also could reproduce that behaviour using the instructions provided in the issue description. I believe the reason this is happening is because of the merging behavior of opentelemetry-collector-contrib/cmd/opampsupervisor/supervisor/supervisor.go Lines 1411 to 1430 in 97659b5
QQ to the code owners (@evan-bradley @atoulme @tigrannajaryan) - should this logic also be applied to the traces/metrics/logs pipelines, i.e. the receivers, processors and exporters lists? |
I think we could probably extend the merging logic to pipeline components, but there are a few things we need to consider if we do so:
I think that we should document whatever choice we take in the Supervisor readme. @keisukesakasai You could work around this by doing something like the following: extraconfig.yaml: service:
pipelines:
traces/in:
receivers: [otlp]
processors: [filter]
exporters: [forward]
traces/out:
receivers: [forward]
# extra processors go here
exporters: [debug, otlp] remote config: service:
pipelines:
traces/out:
processors: [transform] This allows us to simply merge maps instead of having to figure out how to merge lists. Additional traces pipelines could be used to put the processors in more specific locations, for example before or in the middle of processing done in the extra config pipelines. Something similar could be done with receivers or exporters. |
Component(s)
cmd/opampsupervisor
What happened?
Description
I am using the OpenTelemetry Collector Contrib cmd/opampsupervisor to run the Supervisor and the OTel Collector.
https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/cmd/opampsupervisor
To add additional configurations to the OTel Collector, I set the following in extraconfig.yaml:
With this configuration, I send the following config via OpAMP from the OpAMP Backend:
This works perfectly.
Next, I update the extraconfig.yaml to include the batch processor in the trace pipeline beforehand:
However, when I send the same config from the OpAMP Backend, the config (effective.yaml) is not updated.
Is this behavior as intended?
Steps to Reproduce
Experimenting with the supervisor
https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/cmd/opampsupervisor#experimenting-with-the-supervisor
Expected Result
In both cases, the config is updated.
Actual Result
In the following case, the config is not updated, and the OTel Collector is not restarted.
Collector version
v0.113.0
Environment information
Environment
OpenTelemetry Collector configuration
No response
Log output
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: