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

Observability abstraction layer. #29911

Open
brunobat opened this issue Dec 16, 2022 · 12 comments
Open

Observability abstraction layer. #29911

brunobat opened this issue Dec 16, 2022 · 12 comments
Assignees

Comments

@brunobat
Copy link
Contributor

brunobat commented Dec 16, 2022

Description

We have instrumentation comming from many places: OTel Tracing, Micrometer metrics, MP Metrics...
In the future this is likely to grow, meaning we need to create an abstraction that will help to wire many diferent observability related libraries into the main Quarkus libraries.

This might be implemented using an existing framework or coming up with our own.

Dependent on this issue:
#30712

Implementation ideas

No response

@musufyian
Copy link

@brunobat how can I contribute to this initiative ?

@brunobat
Copy link
Contributor Author

Hi @musufyian Are you familiar with OpenTelemetry or Micrometer?

@t1
Copy link

t1 commented Jun 16, 2023

I have the impression that currently everything moves towards OTel... and that's already a pretty generic standard. Do you have more detailed ideas as to how another level of abstraction ontop of this would look like?

@brunobat
Copy link
Contributor Author

Yes @t1. I'm seriously considering this: https://micrometer.io/docs/observation

@t1
Copy link

t1 commented Jun 16, 2023

Isn't Micrometer Observation on a too high level of abstraction? I.e., it doesn't support the concept of Traces, etc. I'm not sure if that would actually be a step backwards.

@t1
Copy link

t1 commented Jun 16, 2023

Hmmm... I assume you would use Micrometer Tracing for Tracing, but this is only about Observability. I guess that I got it, now 😁

@brunobat
Copy link
Contributor Author

brunobat commented Jun 16, 2023

No, The observation API allows generic instrumentation with multiple libraries and is totally independent from the actual Micrometer metrics and tracing. That's why it's interesting

@brunobat brunobat self-assigned this Jul 5, 2023
@brunobat brunobat moved this from Todo to In Progress in Quarkus Roadmap/Planning Aug 1, 2023
@mederel
Copy link
Contributor

mederel commented Sep 18, 2023

Hi, I have the impression the OpenTelemetry API (its metrics part if we are talking about that) could be directly the good candidate to fill the position of the abstraction layer. If one wants to continue using micrometer as a "backend" for metrics there is the https://github.com/open-telemetry/opentelemetry-java-contrib/tree/main/micrometer-meter-provider. It would allow to keep both during a transition phase.

EDIT: I guess after seeing a comment here that the point is that for metrics the OpenTelemetry API is lacking some of the feature of micrometer.

@brunobat
Copy link
Contributor Author

brunobat commented Sep 18, 2023

Thanks @mederel. The idea here is to instrument libraries in one place and be able to then plug different metrics and tracing implementations... Currently we have to instrument everything with OTel and Micrometer because users can chose to use both or each one of them.

@kerkhofsd
Copy link

Any update on this topic?

In the Quarkus documentation for OpenTelmetry, the following is mentioned:

In the future, we plan to bridge current Micrometer metrics to OpenTelemetry and maintain compatibility when possible.

Can this "bridge" be considered part of this scope?

@brunobat
Copy link
Contributor Author

Can this "bridge" be considered part of this scope?

Yes @kerkhofsd and I plan to work on this until the end of the year.

@kerkhofsd
Copy link

Great, thanks for the feedback @brunobat !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

No branches or pull requests

5 participants