Skip to content
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

Rethink OpAMP Client callbacks #77

Closed
tigrannajaryan opened this issue May 19, 2022 · 0 comments · Fixed by #87
Closed

Rethink OpAMP Client callbacks #77

tigrannajaryan opened this issue May 19, 2022 · 0 comments · Fixed by #87

Comments

@tigrannajaryan
Copy link
Member

We currently deliver the data received via one ServerToAgent message via multiple callbacks. This encourages piecemeal processing and can result in multiple state changes on the when only one would be sufficient.

For example, let's say we use the Supervisor model for OpenTelemetry Collector and we receive a message with a remote config and own telemetry connection settings. To process the remote config we may need to stop the Agent, update the config file and start the Agent. Then we process the connection settings and again we stop the Agent, update the config file (to include the own metric collection pipeline) and start the Agent again. We restart the Agent twice and it is unnecessary.

tigrannajaryan added a commit to tigrannajaryan/opamp-go that referenced this issue May 19, 2022
- The Supervisor can manage OpenTelemetry Collector.
- Demonstrates basic features: applying config, configuring Collector to collect its own metrics.

TODO:
- Find a way to fetch Collector version instead of hard-coding it.
- Set instance id in the Collector config file to make sure OpAMP and Collector
  metrics use the same instance id.
  (Related open issue open-telemetry/opentelemetry-collector#4272)
- Re-think callbacks to avoid unnecessary restarts
  (See open-telemetry#77)
- Add a way for Supervisor to understand why the Collector process exited unexpectedly.
tigrannajaryan added a commit to tigrannajaryan/opamp-go that referenced this issue May 19, 2022
- The Supervisor can manage OpenTelemetry Collector.
- Demonstrates basic features: applying config, configuring Collector to collect its own metrics.

TODO:
- Find a way to fetch Collector version instead of hard-coding it.
- Set instance id in the Collector config file to make sure OpAMP and Collector
  metrics use the same instance id.
  (Related open issue open-telemetry/opentelemetry-collector#5398)
- Re-think callbacks to avoid unnecessary restarts
  (See open-telemetry#77)
- Add a way for Supervisor to understand why the Collector process exited unexpectedly.
tigrannajaryan added a commit to tigrannajaryan/opamp-go that referenced this issue May 25, 2022
- The Supervisor can manage OpenTelemetry Collector.
- Demonstrates basic features: applying config, configuring Collector to collect its own metrics.

TODO:
- Find a way to fetch Collector version instead of hard-coding it.
- Set instance id in the Collector config file to make sure OpAMP and Collector
  metrics use the same instance id.
  (Related open issue open-telemetry/opentelemetry-collector#5398)
- Re-think callbacks to avoid unnecessary restarts
  (See open-telemetry#77)
- Add a way for Supervisor to understand why the Collector process exited unexpectedly.
tigrannajaryan added a commit to tigrannajaryan/opamp-go that referenced this issue May 25, 2022
- The Supervisor can manage OpenTelemetry Collector.
- Demonstrates basic features: applying config, configuring Collector to collect its own metrics.

TODO:
- Find a way to fetch Collector version instead of hard-coding it.
- Set instance id in the Collector config file to make sure OpAMP and Collector
  metrics use the same instance id.
  (Related open issue open-telemetry/opentelemetry-collector#5398)
- Re-think callbacks to avoid unnecessary restarts
  (See open-telemetry#77)
- Add a way for Supervisor to understand why the Collector process exited unexpectedly.
tigrannajaryan added a commit that referenced this issue May 25, 2022
- The Supervisor can manage OpenTelemetry Collector.
- Demonstrates basic features: applying config, configuring Collector to collect its own metrics.

TODO:
- Find a way to fetch Collector version instead of hard-coding it.
- Set instance id in the Collector config file to make sure OpAMP and Collector
  metrics use the same instance id.
  (Related open issue open-telemetry/opentelemetry-collector#5398)
- Re-think callbacks to avoid unnecessary restarts
  (See #77)
- Add a way for Supervisor to understand why the Collector process exited unexpectedly.
tigrannajaryan added a commit to tigrannajaryan/opamp-go that referenced this issue May 26, 2022
Resolves open-telemetry#77

We previously delivered the data received via one ServerToAgent message via
multiple callbacks. This encouraged piecemeal processing and resulted in
multiple state changes when only one would be sufficient.

The new callbacks deliver all the data at once which makes it possible
process it in one pass. In the Supervisor this will allow to restart
the Agent only once when applying changes that result in config file change.
tigrannajaryan added a commit to tigrannajaryan/opamp-go that referenced this issue May 26, 2022
Resolves open-telemetry#77

We previously delivered the data received via one ServerToAgent message via
multiple callbacks. This encouraged piecemeal processing and resulted in
multiple state changes when only one would be sufficient.

The new callbacks deliver all the data at once which makes it possible
process it in one pass. In the Supervisor this will allow to restart
the Agent only once when applying changes that result in config file change.
tigrannajaryan added a commit to tigrannajaryan/opamp-go that referenced this issue May 26, 2022
Resolves open-telemetry#77

We previously delivered the data received via one ServerToAgent message via
multiple callbacks. This encouraged piecemeal processing and resulted in
multiple state changes when only one would be sufficient.

The new callbacks deliver all the data at once which makes it possible
process it in one pass. In the Supervisor this will allow to restart
the Agent only once when applying changes that result in config file change.
tigrannajaryan added a commit to tigrannajaryan/opamp-go that referenced this issue May 26, 2022
Resolves open-telemetry#77

We previously delivered the data received via one ServerToAgent message via
multiple callbacks. This encouraged piecemeal processing and resulted in
multiple state changes when only one would be sufficient.

The new callbacks deliver all the data at once which makes it possible
process it in one pass. In the Supervisor this will allow to restart
the Agent only once when applying changes that result in config file change.
tigrannajaryan added a commit to tigrannajaryan/opamp-go that referenced this issue May 26, 2022
Resolves open-telemetry#77

We previously delivered the data received via one ServerToAgent message via
multiple callbacks. This encouraged piecemeal processing and resulted in
multiple state changes when only one would be sufficient.

The new callbacks deliver all the data at once which makes it possible
process it in one pass. In the Supervisor this will allow to restart
the Agent only once when applying changes that result in config file change.
tigrannajaryan added a commit to tigrannajaryan/opamp-go that referenced this issue May 26, 2022
Resolves open-telemetry#77

We previously delivered the data received via one ServerToAgent message via
multiple callbacks. This encouraged piecemeal processing and resulted in
multiple state changes when only one would be sufficient.

The new callbacks deliver all the data at once which makes it possible
process it in one pass. In the Supervisor this allows to restart the
Agent only once when applying changes that result in config file change.
tigrannajaryan added a commit to tigrannajaryan/opamp-go that referenced this issue May 26, 2022
Resolves open-telemetry#77

We previously delivered the data received via one ServerToAgent message via
multiple callbacks. This encouraged piecemeal processing and resulted in
multiple state changes when only one would be sufficient.

The new callbacks deliver all the data at once which makes it possible
process it in one pass. In the Supervisor this allows to restart the
Agent only once when applying changes that result in config file change.
tigrannajaryan added a commit to tigrannajaryan/opamp-go that referenced this issue May 26, 2022
Resolves open-telemetry#77

We previously delivered the data received in one ServerToAgent message using
multiple callbacks. This encouraged piecemeal processing and resulted in
multiple state changes when only one would be sufficient.

The new OnMessage callback delivers all data that can affect the state at once
which makes it possible process it in one pass. In the Supervisor this allows
to restart the Agent only once when applying changes that result in config
file change.
tigrannajaryan added a commit to tigrannajaryan/opamp-go that referenced this issue May 26, 2022
Resolves open-telemetry#77

We previously delivered the data received in one ServerToAgent message using
multiple callbacks. This encouraged piecemeal processing and resulted in
multiple state changes when only one would be sufficient.

The new OnMessage callback delivers all data that can affect the state at once
which makes it possible process it in one pass. In the Supervisor this allows
to restart the Agent only once when applying changes that result in config
file change.
tigrannajaryan added a commit to tigrannajaryan/opamp-go that referenced this issue Jun 7, 2022
Resolves open-telemetry#77

We previously delivered the data received in one ServerToAgent message using
multiple callbacks. This encouraged piecemeal processing and resulted in
multiple state changes when only one would be sufficient.

The new OnMessage callback delivers all data that can affect the state at once
which makes it possible process it in one pass. In the Supervisor this allows
to restart the Agent only once when applying changes that result in config
file change.
tigrannajaryan added a commit that referenced this issue Jun 7, 2022
Resolves #77

We previously delivered the data received in one ServerToAgent message using
multiple callbacks. This encouraged piecemeal processing and resulted in
multiple state changes when only one would be sufficient.

The new OnMessage callback delivers all data that can affect the state at once
which makes it possible process it in one pass. In the Supervisor this allows
to restart the Agent only once when applying changes that result in config
file change.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant