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 support for Micrometer's Observation API #4611

Open
1 of 2 tasks
jonatan-ivanov opened this issue Oct 18, 2023 · 3 comments
Open
1 of 2 tasks

Add support for Micrometer's Observation API #4611

jonatan-ivanov opened this issue Oct 18, 2023 · 3 comments
Labels
feature-request A feature should be added or improved. p2 This is a standard priority issue

Comments

@jonatan-ivanov
Copy link

Describe the feature

With Micrometer 1.10.0 (I'm a maintainer), a new API was released called the Observation API. It lets users instrument their components once and then get multiple benefits out of it e.g.: metrics, distributed tracing, (audit) logs, publishing arbitrary events, etc.

We also released Micrometer Tracing (it's a new project) which is not a must but plays nicely with the Observation API and it can bridge calls to OpenTelemetry or OpenZipkin's Brave.

What do you think about instrumenting the AWS SDK using Micrometer (probably in a separate module) so that users can get observability support when they use the SDK.

Use Case

The use cases are quite wide, the goal of the Observation API is to be able to cover a lot of the Observability needs of the users, for example:

  • Users want metrics in their apps (they can use micrometer metrics or other libraries, e.g.: dropwizard-metrics)
  • Users want distributed tracing in their apps (they can use Micrometer Tracing with Brave/OTel or other libraries)
  • Users want both metrics and distributed tracing in their apps
  • Users want to listen to and publish custom events in their applications and emit logs, write an audit DB, etc.

Proposed Solution

No response

Other Information

It seems that there is a user demand for this, see:

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

AWS Java SDK version used

irrelevant

JDK version used

irrelevant

Operating System and version

irrelevant

@jonatan-ivanov jonatan-ivanov added feature-request A feature should be added or improved. needs-triage This issue or PR still needs to be triaged. labels Oct 18, 2023
@debora-ito debora-ito added needs-review This issue or PR needs review from the team. and removed needs-triage This issue or PR still needs to be triaged. labels Oct 20, 2023
@debora-ito debora-ito added p2 This is a standard priority issue and removed needs-review This issue or PR needs review from the team. labels Oct 28, 2023
@debora-ito
Copy link
Member

@jonatan-ivanov thank you for reaching out.

Yes, we are interested in adding support for observability tools in the SDK. The way we envision this is with some kind of interface or abstraction layer in the SDK clients where you can simply provide the tool you want to use, with no implementation of a separate SDK module needed.

It's something we have in our roadmap, but we don't have concrete design plans yet, and no, we don't have a timeline to share. Let's use this Github issue to keep track of the feature.

Note to the community: add a 👍 to the description if you are interested in this. Also feel free to comment about the features you'd like to have around observability in the Java SDK.

@jonatan-ivanov
Copy link
Author

Isn't ExecutionInterceptor such an interface?

What do you mean by this:

where you can simply provide the tool you want to use, with no implementation of a separate SDK module needed.

What do you mean by "tool"? A library that can be used to instrument the SDK, like Micrometer?
By "separate SDK module", do you mean the AWS SDK?

@debora-ito
Copy link
Member

debora-ito commented Oct 31, 2023

We are thinking more like first-class support for observability tools, not through ExecutionInterceptor but as a setting at the client level, via a pluggable interface. But again, we have no concrete designs yet, it's just the idea.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request A feature should be added or improved. p2 This is a standard priority issue
Projects
None yet
Development

No branches or pull requests

2 participants