open-telemetry / open-telemetry/opentelemetry-java-contrib
[opamp] This client needs extension points (SPIs)
@LikeTheSalad is already working on this.
Since May 12, 2026.
- Dominant language
- Java
- Stars
- 269
- Forks
- 196
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 38
Description
OpenTelemetry Java users or vendors who create their own distros are able to wire up this opamp client. This is very useful.
The challenge comes in because opamp is a pretty generic protocol. It doesn't have opinionated minutia about what config/file formats are supported, how servers and clients should behave, or what commands even do, etc. etc. As a result, we can build clients and connect them to the server, but the semantic actions resulting from the client operations are mostly up in the air.
I'd like to propose that we introduce some SPIs that allow common/generic extension points around specific OpAMP behaviors. I suspect there ought to be several more, but the first ones that come to mind for me are:
- Identity provider - maybe something that helps to provide or discriminate/filter what items should or should not be in the identifying/non-identifying attributes.
- Effective config provider - If the client is configured to report effective config, when the server asks for it, this SPI can allow component-specific configuration providers to yield their current settings.
- Command handlers - Yup, if the opamp server sends us a command, where should it go? This SPI would allow for extensible command handling based on some criteria...probably starting with the command name or whatever.
This should allow specific, custom, and yet still undetermined use cases to be satisfied.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.