There appeared to be wide array of library and framework support across various stacks, but I can only attest personally to the quality of the above setup (Java, Boot, etc).
> It's one of those nice things that Just Works™
did it Just Work™ or did you have to do work to make it Just Work™?
Would say .NET isn't too far behind. Especially since there are built-in observability primitives and Microsoft is big on OTel. ASP.NET Core and other first party libraries already emit OTel compliant metrics and traces out of the box. Instrumenting an application is pretty straightforward.
I have less experience with the other languages. Can say there is plenty of opportunity to contribute upstream in a meaningful way. The OpenTelemetry SIGs are very welcoming and all the meetings are open.
Full disclosure: work at Grafana Labs on OpenTelemetry instrumentation
I like how OpenTelemetry decouples the signal sink from the context, compared to other structured logging libs where you wrap your sink in layers. The main thing that I dislike is the auto-instrumentation of third-party libraries: it works great most of the time, but when it doesn't it's hard to debug. Maintainers of the different OpenTelemetry repos are fairly active and respond quickly.
It's still relatively recent, but I would recommend OpenTelemetry if you're looking for an observability framework.
I just shared that I enjoyed using and contributing to OpenTelemetry. I never used an LLM. Do I really need to prove that I'm human?
- a couple PRs I posted to the Rust impl: https://github.com/open-telemetry/opentelemetry-rust/pulls?q... I also participate to issue discussions in this repo and others.
- OpenTelemetry tracer config in the web game platform I'm working on: https://gitlab.com/eternaltwin/eternaltwin/-/blob/main/crate...
- A somewhat cool thing: an OpenTelemetry proxy impl handling authentication of traces: https://gitlab.com/eternaltwin/eternaltwin/-/blob/main/crate...
- Node usage: https://gitlab.com/eternaltwin/labrute/labrute-react/-/blob/...
- Java usage: https://gitlab.com/eternaltwin/dinoparc/dinoparc/-/merge_req...
- PHP usage: https://gitlab.com/eternaltwin/mush/mush/-/merge_requests/20...
This is all 100% handcrafted, as all my messages ever.
Now that I proved that I actually used and contributed to OpenTelemetry, may I express that I like it overall but regret that the auto-instrumentation is brittle and hard to debug? I can expand on the particular issues I've hit or why I feel that it's still not mature enough.
PS: And devs (Lightspeed?) seem to really like "Open" prefix: OpenTracing + OpenCensus = OpenTelemetry.
- otel collector?
- kafka (or other mq)?
- cribl?
- vector?
- other?
Otel collector is very useful for gathering multiple different sources, eg I am at a big corporation and we both have department level Grafana stack (Prometheus Loki etc) and we need to also send the data to Dynatrace. With otel collector these things are a minor configuration away.
For Kafka if you mean tracing through Kafka messages previously we did it by propagating it in message headers. Done at a shared team level library the effort was minimal.
OTEL is great, I just wish the CNCF had better alternatives to Grafana labs.
Less mature than Grafana but recently accepted by the CNCF as a sandbox project, hopefully a positive leading indicator of success.