As described in the discussion of #16016
- instrumentation should only produce stable metrics by default, users should be able to opt-in for other metrics.
- JMX metrics are not formally defined nor have stability definition
- some of the target systems do have
experimental- prefix to indicate their definitions are not stable
- this creates breaking changes for users when metrics are promoted
- this prevent promoting metrics one by one, it's all or nothing
- users have to know the relevant values to use for
otel.jmx.target.system in order to get the metrics, whereas the presence of MBeans should be enough to know if a given system needs to be monitored.
In order to solve this, we need to have the following:
- a formal definition of JMX metrics that is consistent with upstream semantic conventions, it should be compatible with the "federated semconv" to be reusable/imported by end users
- having the ability to select JMX metrics on their stability level, rather than having to enumerate the "target system", in other words: "capture what is available in the JMX tree for a given maturity level".
- doing this automatic discovery is not strictly required here but allows to remove the need to define and maintain the values for
otel.jmx.target.system.
Once this is complete we should have:
otel.jmx.target.system configuration option is optional or deprecated
- added the ability to select JMX metrics on their stability level, the default should be
stable.
- a folder in this repository that contains reusable definitions of existing JMX metrics and can be used with a "federated semconv" strategy
- the ability to start formally promoting some of those JMX metrics as stable.
Relates to
Implementation steps
Follow-up step(s)
Optional but related step(s)
As described in the discussion of #16016
experimental-prefix to indicate their definitions are not stableotel.jmx.target.systemin order to get the metrics, whereas the presence of MBeans should be enough to know if a given system needs to be monitored.In order to solve this, we need to have the following:
otel.jmx.target.system.Once this is complete we should have:
otel.jmx.target.systemconfiguration option is optional or deprecatedstable.Relates to
Implementation steps
Follow-up step(s)
Optional but related step(s)