[.NET Core] OpenTelemetry 程式範例

在分散式微服務環境中,可以使用OpenTelemetry來進行分散式的鏈路追蹤。提供範例程式,給有興趣的朋友依序學習。

範例原碼:https://github.com/Clark159/CLK.NetCoreLab

範例專案:

  1. ObserverLab: .NET Core中提供IObservable<T>做為觀察者模式樣板。.NET Core內建的DiagnosticSource以IObservable<T>為核心發佈埋點訊息。

  2. DiagnosticSourceLab: .NET Core使用內建的DiagnosticSource提供逐條的埋點訊息。

  3. ActivitySourceLab: .NET Core使用內建的ActivitySource提供使用ParentId串聯起來的樹狀埋點訊息。

  4. OpenTelemetryLab: 開源的OpenTelemetry套件,提供將埋點訊息收集、彙整、導出至APM的功能。(以Uber Jaeger為範例)

  5. TraceContextLab: OpenTelemetry套件搭配W3C Trace Context進行分散式導出至APM的功能。(以Uber Jaeger為範例)

後記:這些範例盡量以純粹的.NET Core進行說明。

期許自己
能以更簡潔的文字與程式碼,傳達出程式設計背後的精神。
真正做到「以形寫神」的境界。