quarkusio / quarkus

Quarkus: Supersonic Subatomic Java.
https://quarkus.io
Apache License 2.0
13.82k stars 2.69k forks source link

OpenTelemetry Collector for DevServices #26445

Closed radcortez closed 7 months ago

radcortez commented 2 years ago

Description

When the OpenTelemetry Extension is available, provide an OpenTelemetry collector as a DevService to collect Spans.

Implementation ideas

[Epic waiting for design]

quarkus-bot[bot] commented 2 years ago

/cc @stuartwdouglas

kdubb commented 2 years ago

+1000

Just yesterday I was wishing for the ability to see my telemetry in the Quarkus Dev UI

jtama commented 2 years ago

If a devservice is provided, then which receiver should be configured ? Otlp receiver only ? If micrometer-prometheus is also present, should the prometheus receiver be configured ?

stuartwdouglas commented 2 years ago

CC @ebullient

I am pretty sure we talked about this a while back and you had some concerns?

ebullient commented 2 years ago

Right now, we have some work to do to make sure the OTLP collector works well if both are enabled (there is an OTLP extension in quarkiverse, and that fights a bit with the OTel extension when both are present, IIRC). If we just have OTel + Micrometer/Prometheus, there are no arguments, and it is fine.

Are you suggesting embedding jaeger, kiali or some other visualization tool for the dev mode UI via testcontainers? or something else?

radcortez commented 2 years ago

My initial idea was to support the OTel Collector to collect the telemetry data (considering the Micrometer will also output the metrics in OTLP). Having a way to visualize the telemetry data was also on my mind, but Jaeger is probably not the right one, since it only should trace data and I think we want something that can show both tracing, metrics and in the future logging.

ebullient commented 2 years ago

I think the OTLP micrometer registry (which writes OTLP) conflicts with the presence of the OTel SDK: https://github.com/quarkiverse/quarkus-micrometer-registry/issues/203 .. so we have something to resolve first.

brunobat commented 2 years ago

My Idea here is that we should have OTel collector and be able to see traces in a devmode Graphana. This way, we could use the same UI if metrics is also available. This should work in an integrated way between Micrometer and Otel.

brunobat commented 2 years ago

But for starters, It would be nice just to have the collector logging whatever it receives for debug purposes.

geoand commented 1 year ago

This seems right a very nice addition!

Is this currently in progress? If not, are there are any blockers?

alesj commented 1 year ago

Is this currently in progress?

(Too) Slow progress unfortunately -- went in the wrong direction at first, then got stuck with some other work. I did make some better progress with porting my Prometheus / VictoriaMetrics clients, but still need to get the whole picture right when porting my poc from my sandbox project. Plus port some existing work with Jaeger tracing devservice.

If not, are there are any blockers?

Only time (and my pto :-)). Will resume at this full speed when back.

geoand commented 1 year ago

Thanks for the update!