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

Add KeyValuesProvider #5112

Open
jonatan-ivanov opened this issue May 17, 2024 · 1 comment
Open

Add KeyValuesProvider #5112

jonatan-ivanov opened this issue May 17, 2024 · 1 comment
Labels
enhancement A general enhancement
Milestone

Comments

@jonatan-ivanov
Copy link
Member

KeyValuesProvider is a component that could be used to provide (probably static) metadata, a collection of KeyValue instances, something like this:

interface KeyValuesProvider {
    KeyValues getKeyValues();
}

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).

@jonatan-ivanov jonatan-ivanov added the enhancement A general enhancement label May 17, 2024
@jonatan-ivanov jonatan-ivanov added this to the 1.x milestone May 17, 2024
@vasantteja
Copy link

Hey @jonatan-ivanov This sounds interesting. I can work on this if you are fine with it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement A general enhancement
Projects
None yet
Development

No branches or pull requests

2 participants