Skip to content

Instantly share code, notes, and snippets.

View vanwx's full-sized avatar
😑
┻━┻︵ \(°□°)/ ︵ ┻━┻

Van Nguyen vanwx

😑
┻━┻︵ \(°□°)/ ︵ ┻━┻
  • Woolworths
  • 407 Elizabeth Street, Surry Hill
  • 01:45 (UTC +11:00)
View GitHub Profile
@lmolkova
lmolkova / 0_Tracing_API.md
Last active April 3, 2024 07:08
OpenTelemetry Tracing APIs vs .NET Activity/DiagnosticSource

Tracing API Comparison

A distributed trace is a set of events, triggered as a result of a single logical operation, consolidated across various components of an application. A distributed trace contains events that cross process, network and security boundaries. A distributed trace may be initiated when someone presses a button to start an action on a website - in this example, the trace will represent calls made between the downstream services that handled the chain of requests initiated by this button being pressed.

Contract difference

OpenTelemetry Tracing API is a very strict contract that enables tracing signal (not debugging or profiling). This contract is the same for all kinds of libraries and tracing backends and includes several related concepts:

  • span creation, required and optional properties
  • sampling
  • exporting
  • noop behavior in absence of tracing implementaiton
  • extra information certain types spans should include (e.g. spans for http calls).