-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Logging OpenTelemetry extension #38239
Conversation
/cc @brunobat (opentelemetry), @radcortez (opentelemetry) |
67e8bfa
to
fee7c47
Compare
This comment has been minimized.
This comment has been minimized.
fee7c47
to
a412d3e
Compare
Thanks for the PR @loicmathieu. |
@brunobat we can move all configuration properties to the main otel extension and consume this property inside the logs extension. Or we can do the opposite, move what is needed for logs here (by the way, some config has been removed so my extension didn't work anymore) and only check that otel is enabled globally or not. We need to settle this as we would do the same for other otel related extension when created (for ex for metrics). |
@loicmathieu Metrics will be a very different beast, as we don't plan to use its API inside Quarkus automatic instrumentation. We need a bridge from Micrometer -> OTel and I'm currently working on that. One thing is certain, there will be a single OTel SDK for all signals and all output will use the OTLP protocol from that SDK. This means all OTel related configurations must line in |
OK, there is not a log of code to support logs so it could easily be merged into the existing otel extension. |
Not really :) |
a412d3e
to
fc93f25
Compare
@loicmathieu do you mind if I do some commits on the PR? |
@brunobat of course you can add commits to my PR, be my guest ;) For now, this didn't work as the Log tracer uses OkHttp which is no longer in the classpath (it was in the classpath when I made the first implementation) so there is still works to do. |
Following the recent Keycloak blog post on the deprecation of GELF log outputs, it's evident that we need to transition to an alternative logging format, such as OTEL. Ideally, we aim to avoid reverting to manual log file analysis, which would be a significant step backward.
|
fc93f25
to
3e8976c
Compare
@loicmathieu is there any way that we can offer support in getting this PR merged? |
Once merged #39032, we should have a vert.x exporter that we can use with this PR. |
@loicmathieu The metrics commit got merged last night, so this would now be unblocked as far as I understand. Can you rebase your work? |
3e8976c
to
6755f1b
Compare
@loicmathieu now we can work on this PR. |
@brunobat I'll look at this soon. |
Hey @loicmathieu, is there an update on this? Is it realistic to get this in one of the upcoming Quarkus versions or should we look into other ways to get logs via OTEL? Thanks for your work on this! |
Hi, |
Since the next LTS release will be based on the 3.14 feature set, it would be quite important to get it merged in time for 3.14. I think it would be great, if we have complete OTel support in the next LTS. Do you think that would be realistic? Do you need help to get it ready for the 3.14 merge window? |
Feature freeze for 3.14 LTS will be on August 14th, is there any way we can help with getting this PR ready? |
Seems like the docs need some fix |
🙈 The PR is closed and the preview is expired. |
@geoand @radcortez can you please provide an independent review? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't look at all the nitty gritty details, but the basics look good
That's great; when merged, I will give it a try with the Langchain4J extension. And showing even though it is a Snapshot in Devoxx :) |
Merged :) |
WTF hahaha that was super fast hahahaha, thank you very much |
You were just lucky that this was ready anyway :) |
@lordofthejars please use it with https://quarkus.io/guides/observability-devservices-lgtm |
Hi, yes that's my idea, I have compiled locally, and I am going to use it with this to show to Devoxx attendees that devservices is not only about databases. |
@brunobat do you know if there will be a 3.16 CR release before Devoxx? |
Oh, it would be a good strategy (in my not-interested opinion :P) to have a CR before Devoxx, hahaha. Well, seriously, I think there will be a lot of sessions about Quarkus in Devoxx, so maybe it would be great to have a CR before that. But of course I understand that Quarkus has a schedule. |
Right, unfortunately changing the schedule will cause too many other proplems at this point. You can always use the snapshots that are built every night |
Are they published to Maven central? |
Okay, I found one issue that may be because I didn't use it correctly or because there is a bug it doesn't work from my understanding; I created the example in the documentation, and using the lgtm dev service, I started everything. Then, Prometheus metrics, traces, and logs are there, so data is stored, but when I go to the trace, select a trace (by span ID), click the logs icon, and execute the query to Loki with the service name and span ID, it finds no logs. So if I query logs by only the service name, all logs are there but it seems like the relationship with the span is not stored. As I said I might have done something wrong, or I might be missing something. |
@lordofthejars can you please create a bug? |
Performed work:
OpenTelemetryLogHandler
JULHandler
.Remaining work: