Hello from the Packaging SIG!
We are working on providing an automatic instrumentation experience based on the OpenTelemetry Injector for instrumenting applications written in various programming languages. We want to build the experience around the Declarative Configuration format, where there would be declarative configuration files (one per language at the moment, more on this later) used by the SDKs that the injector injects. In this first phase, we are POC-ing with Java, Node.js and .NET, but we know from experience that Python and Ruby are also doable with limited work, with the biggest gap being the support for the declarative configurations.
OpAMP in the scope of system packages
We would like OpAMP to be a first-class citizen of the system packages, but there are gaps in the story we currently cannot reconcile. We see two possibilities:
- We assume that eventually all SDKs will have OpAMP built in, and we need to devise a way for the system packages to make it simple to configure OpAMP across all languages.
- We introduce an OpAMP supervisor as a system package, and that is responsible to manage configurations.
We are assuming that the better direction is (1), but it feels like the state of the art of the implementations of OpAMP in the SDKs in not advanced enough for this to be in the foreseeable future. In the system packages SIG we don't have the bandwidth to implement (2).
What is your take on the matter of OpAMP support in the system packages? What is missing from this picture?
What about the collector?
The collector DEB and RPM files are not part of the system packages atm, but we do foresee "bringing them into the fold" and making them feel like a cohesive part of the rest of the story. Since the collector already has OpAMP support, that aspect seems to be covered.
Why one configuration file per language?
Because currently we need language-specific overrides, e.g. in terms of which instrumentations to turn on, but that part of the declarative configuration spec is not marked as stable and not yet implemented in enough SDKs. The moment it is stable and well supported, we will likely consider to move to one single configuration file across all languages by default (maybe still allowing language-specific configuration files as opt-in) to reduce the amount of configuration to be done.
Hello from the Packaging SIG!
We are working on providing an automatic instrumentation experience based on the OpenTelemetry Injector for instrumenting applications written in various programming languages. We want to build the experience around the Declarative Configuration format, where there would be declarative configuration files (one per language at the moment, more on this later) used by the SDKs that the injector injects. In this first phase, we are POC-ing with Java, Node.js and .NET, but we know from experience that Python and Ruby are also doable with limited work, with the biggest gap being the support for the declarative configurations.
OpAMP in the scope of system packages
We would like OpAMP to be a first-class citizen of the system packages, but there are gaps in the story we currently cannot reconcile. We see two possibilities:
We are assuming that the better direction is (1), but it feels like the state of the art of the implementations of OpAMP in the SDKs in not advanced enough for this to be in the foreseeable future. In the system packages SIG we don't have the bandwidth to implement (2).
What is your take on the matter of OpAMP support in the system packages? What is missing from this picture?
What about the collector?
The collector DEB and RPM files are not part of the system packages atm, but we do foresee "bringing them into the fold" and making them feel like a cohesive part of the rest of the story. Since the collector already has OpAMP support, that aspect seems to be covered.
Why one configuration file per language?
Because currently we need language-specific overrides, e.g. in terms of which instrumentations to turn on, but that part of the declarative configuration spec is not marked as stable and not yet implemented in enough SDKs. The moment it is stable and well supported, we will likely consider to move to one single configuration file across all languages by default (maybe still allowing language-specific configuration files as opt-in) to reduce the amount of configuration to be done.