csharp-netcore icon indicating copy to clipboard operation
csharp-netcore copied to clipboard

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

Open jchannon opened this issue 4 years ago • 9 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

jchannon avatar Jan 28 '21 10:01 jchannon

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/

cwe1ss avatar Jan 28 '21 11:01 cwe1ss

Actually OpenTracing fits my requirements currently :)

https://github.com/jchannon/widgetario/blob/main/src/products-api/dotnet/Widgetario.ProductApi/Widgetario.ProductApi.csproj

jchannon avatar Jan 28 '21 11:01 jchannon

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.

cwe1ss avatar Jan 28 '21 12:01 cwe1ss

Thanks!

On Thu, 28 Jan 2021 at 12:01, Christian Weiss [email protected] wrote:

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 https://github.com/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.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/opentracing-contrib/csharp-netcore/issues/88#issuecomment-769007025, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAZVJWK7F6HW6BAUY6KLD3S4FG2DANCNFSM4WWZDVPQ .

jchannon avatar Jan 28 '21 12:01 jchannon

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?

js8080 avatar Jan 28 '21 14:01 js8080

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:

  • https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Exporter.Jaeger/README.md
  • https://www.nuget.org/packages/OpenTelemetry.Exporter.Jaeger

cwe1ss avatar Jan 28 '21 14:01 cwe1ss

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)?

js8080 avatar Jan 28 '21 14:01 js8080

I don't know that, sorry.

cwe1ss avatar Jan 28 '21 14:01 cwe1ss

@js8080 No, it does not: https://github.com/open-telemetry/opentelemetry-dotnet/issues/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

rwkarg avatar Feb 11 '22 23:02 rwkarg