This component can be used to provide extra information about the application (or certain components inside of it) and the environment (framework, runtime, process, os, host, deployment, infrastructure, etc).
For example:
JvmKeyValuesProvider can provide information about the JVM (vendor, version, etc.)
SpringBootKeyValuesProvider can provide the application name, the Boot version, the effective profiles used, etc.
CloudKeyValuesProvider: cloud provider, account id, region, etc.
KubernetesKeyValuesProvider: namespace, podname, cluster, etc.
KeyValuesProvider should be integrated with the Observation and Metrics API so that the KeyValues can be attached to Observations and Meters too. Further integration can be added with MeterBinders so that Meters can be created using this metadata (see JvmInfoMetrics).
It would be desirable to be able to surface this data on http endpoint for example like Spring Boot Actuator's info endpoint (i.e.: integrate it with InfoContributor).
KeyValuesProvider
is a component that could be used to provide (probably static) metadata, a collection ofKeyValue
instances, something like this:This component can be used to provide extra information about the application (or certain components inside of it) and the environment (framework, runtime, process, os, host, deployment, infrastructure, etc). For example:
JvmKeyValuesProvider
can provide information about the JVM (vendor, version, etc.)SpringBootKeyValuesProvider
can provide the application name, the Boot version, the effective profiles used, etc.CloudKeyValuesProvider
: cloud provider, account id, region, etc.KubernetesKeyValuesProvider
: namespace, podname, cluster, etc.KeyValuesProvider
should be integrated with the Observation and Metrics API so that theKeyValues
can be attached to Observations and Meters too. Further integration can be added withMeterBinders
so thatMeter
s can be created using this metadata (seeJvmInfoMetrics
).It would be desirable to be able to surface this data on http endpoint for example like Spring Boot Actuator's info endpoint (i.e.: integrate it with
InfoContributor
).