opentracing-contrib / csharp-netcore

OpenTracing instrumentation for .NET Core 3.1 & .NET 6+ apps

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Should I being using this project or opentelemetry-dotnet packages?

jchannon opened this issue · comments

As the title suggests. I may have this wrong but there seems to be a dual effort in providing libraries to expose tracing data. I'm currently using this package and Jaeger and all works nicely but I also see there are efforts from Microsoft as part of the https://github.com/open-telemetry/opentelemetry-dotnet repo so just wondering which path should I be on?

Thanks

OpenTelemetry is a successor of OpenTracing. It is a merger of OpenTracing and OpenCensus.

Use OpenTelemetry if it already fits your requirements.

https://cloudblogs.microsoft.com/opensource/2019/05/23/announcing-opentelemetry-cncf-merged-opencensus-opentracing/

OK - I just wouldn't invest too much time in this library. If you run into issues/things you don't like with this, I'd try to switch to OpenTelemetry. There's not much going on here anymore.

fyi: @jbogard wrote a great blog series about OpenTelemetry integration with .NET as well: https://jimmybogard.com/building-end-to-end-diagnostics-and-tracing-a-primer/ - it also has great information about .NET's built-in "Activity*"-types which you should use if you want to instrument your own .NET library.

OK - I just wouldn't invest too much time in this library. If you run into issues/things you don't like with this, I'd try to switch to OpenTelemetry. There's not much going on here anymore.

What does this actually mean for the Jaeger C Sharp client? The only reason I'm using OpenTracing is because that's what the Jaeger C Sharp client uses. I assume at some point that Jaeger and that library will be updated to also use OpenTelemetry. Do you have any insight into that happening?

What does this actually mean for the Jaeger C Sharp client? The only reason I'm using OpenTracing is because that's what the Jaeger C Sharp client uses. I assume at some point that Jaeger and that library will be updated to also use OpenTelemetry. Do you have any insight into that happening?

The OpenTelemetry-dotnet repository has a built-in "exporter" for Jaeger, so you won't need the existing "Jaeger" NuGet-package anymore:

Ah, thank you for that info! Does the OpenTelemetry-dotnet library have the ability to bypass the Jaeger Agent and push directly to the Collector (via gRPC for example)?

I don't know that, sorry.

@js8080 No, it does not:
open-telemetry/opentelemetry-dotnet#2054

If you're currently using OpenTracing/Jaeger -> Jaeger Collector then you have three options to migrate to OpenTelemetry (all involving standing up new infrastructure):

  1. Install Jaeger Agent in all of your infrastructure and have that forward to the Jaeger Collector
  2. Install OpenTelemetry Collector infrastructure and then have that forward to the Jaeger Collector
  3. Install a backend other than Jaeger that is supported by OpenTelemetry