Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Core
  3. OpenTracing

OpenTracing

Apache-2.0C#0.12.1

A deprecated OpenTracing API implementation for C#/.NET applications to standardize distributed tracing instrumentation.

Visit WebsiteGitHubGitHub
515 stars71 forks0 contributors

What is OpenTracing?

OpenTracing API for .NET is a deprecated implementation of the OpenTracing specification for C# and .NET applications. It provides a standardized interface for adding distributed tracing instrumentation to applications, allowing developers to trace requests across service boundaries in microservices architectures. The library enables consistent span creation, context propagation, and tracer management regardless of the underlying tracing backend.

Target Audience

.NET developers building distributed systems or microservices who need to implement observability through distributed tracing. It's particularly relevant for teams using multiple tracing systems or planning to switch between them.

Value Proposition

Developers choose OpenTracing for .NET because it provides a vendor-neutral API that decouples instrumentation code from specific tracing implementations. This allows teams to instrument once and switch tracing backends without code changes, making it ideal for organizations with evolving observability strategies.

Overview

OpenTracing API for C# (.NET). 🛑 This library is DEPRECATED! https://github.com/opentracing/specification/issues/163

Use Cases

Best For

  • Instrumenting .NET microservices for distributed tracing
  • Standardizing tracing across multiple .NET services
  • Adding observability to legacy .NET applications
  • Creating tracing libraries or frameworks for .NET ecosystems
  • Migrating between different tracing systems without code changes
  • Implementing consistent tracing patterns across development teams

Not Ideal For

  • New projects prioritizing modern observability standards like OpenTelemetry
  • Applications requiring deep integration with a specific tracing vendor's proprietary features
  • Teams needing active maintenance and support for the latest .NET frameworks (e.g., .NET 8+)
  • Simple, single-service applications where the abstraction layer adds unnecessary complexity

Pros & Cons

Pros

Vendor-Neutral Abstraction

Provides a standardized API that allows switching between tracing backends like Jaeger or Zipkin without code changes, enabling flexibility in observability strategies as highlighted in the README.

Async-Friendly Span Management

Uses AsyncLocal in IScopeManager for automatic span propagation across async/await operations, simplifying instrumentation in asynchronous code, as demonstrated in the provided examples.

Flexible Tracer Access

Supports both dependency injection for clean architecture and GlobalTracer fallback for libraries, ensuring compatibility across various application types and frameworks.

Easy Error Tagging

Includes convenient methods like Tags.Error.Set() for marking errors on spans, streamlining debugging and monitoring in distributed systems.

Cons

Deprecated Status

The project is deprecated in favor of OpenTelemetry, meaning no new features, limited official support, and potential compatibility issues with newer .NET versions.

Implementation Overhead

Initialization is backend-specific and requires additional setup for each tracing system, adding complexity compared to directly using a vendor's SDK.

Shrinking Ecosystem

As a deprecated API, community contributions and integrations are dwindling, making it harder to find up-to-date documentation or third-party tools.

Frequently Asked Questions

Quick Stats

Stars515
Forks71
Contributors0
Open Issues14
Last commit6 years ago
CreatedSince 2016

Tags

#api#observability#csharp#opentracing#dotnet#distributed-tracing#instrumentation#microservices#diagnostics

Built With

.
.NET
C
C++

Links & Resources

Website

Included in

Core21.2k
Auto-fetched 19 hours ago

Related Projects

PollyPolly

Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner. From version 6.0.1, Polly targets .NET Standard 1.1 and 2.0+.

Stars14,212
Forks1,275
Last commit4 days ago
OcelotOcelot

.NET API Gateway

Stars8,714
Forks1,683
Last commit1 day ago
AspNetCore.Diagnostics.HealthChecksAspNetCore.Diagnostics.HealthChecks

Enterprise HealthChecks for ASP.NET Core Diagnostics Package

Stars4,369
Forks865
Last commit1 month ago
FoundatioFoundatio

Pluggable foundation blocks for building distributed apps.

Stars2,095
Forks251
Last commit22 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub