-
Notifications
You must be signed in to change notification settings - Fork 118
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
Beyla with OTEL instrumented applications. #1687
Comments
Hey @cxk314, thanks for your questions. I'm curious to hear if you couldn't answer these questions yourself looking Beyla was initially born to auto instrument Go applications. With time we evolved to support any programming language.
metrics and traces
Complementary. You can instrument your .NET apps with the SDK and use Beyla for Go or PHP apps (to name some).
Beyla has a flag (enabled by default) that detects that an app is already instrumented with OpenTelemetry. If that's the case, it won't instrument it.
I think already answered before |
Thank you @marctc. That is really helpful. Beyla documentation is good it was just not clear how different Beyla is compared to OTEL auto-instrumentation and when should one be used vs the other. The documentation states that Beyla provides OTEL telemetry and can auto-instrument .Net and other applications, but it wasn't clear how this will work with already instrumented applications and what we will get that OTEL doesn't give us. I was also trying to see what set of metrics Beyla can provide and whether they are different (we get more metrics or less) to what OTEL provides. It would be specifically helpful for teams who are looking at auto-instrumentation options and trying to understand which approach to use. Also, when reading it again, it is there that Beyla supports metrics and traces, but it could be more explicit that logs are not supported, so if we want trace to log correlation then we will not get it. Since it says Beyla provides OTEL telemetry the impression was it will give full set of OTEL (metrics, logs and traces). But it is much clearer now. Thank you. |
Beyla provides a way to generate logs from the captured traces using |
We are interested in consistent OTEL telemetry so that correlation between traces, logs and metrics can be easily visualized for troubleshooting. We are using self-hosted Grafana stack (Grafana, Loki, Mimir, Tempo) on AKS Kubernetes. This requirement is not specific to .Net. We are just following OTEL standard. .Net implements OTEL standard. We used OpenTelemetry Operator to inject SDKs and auto-instrument our applications. It works fine but it requires certain changes to the bootstrap code and the Nuget packages we include during the build that will make sure it does not conflict with the OpenTelemetry Operator injected SDKs. It also requires putting annotation in deployment.yaml. We were just looking if Beyla can do what OTEL does but without requiring us to keep our builds aware of the injected SDKs and without us making sure our Nuget configuration will not conflict with injected SDKs during runtime while it is fine during build time. |
Hi @cxk314, The main reason we are building Beyla is to ease these kinds of problems, and we hope this project will soon become mainstream OpenTelemetry project because of the same reasons, it's much easier to get started and it doesn't matter if you are already instrumenting/using other agents etc. We currently don't generate OTel logs, but it's not out of the realm of the possibility, we just haven't done it yet. Is it possible to have your logs converted to OTel logs in the collector? Or is it the lack of TraceID that's a blocker here if you are shipping the regular logs to Loki? |
We have OTEL auto-instrumented .NET applications (with OTEL operator) running on Kubernetes and sending telemetry to Alloy receiver. We are also looking at Beyla, but we are struggling to see the difference between OTEL and Beyla. Can someone provide more insight into following:
I would really appreciate some insights on the above.
The text was updated successfully, but these errors were encountered: