Lybecker / DistributedTracing-AspNetCore

Comparison of Serilog, OpenTracing and native Application Insights - all sending data to App Insights

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Comparison of options for flowing traces, requests etc to Azure Application Insights

Each test bench has two services - ServiceOne and ServiceTwo. Each of them are an API with a REST endpoint. ServiceOne calls ServiceTwo which must show up in the Application Insigths Application Map like

Application Map

And be able to show distributed traces like a span

End-to-end transaction

The path compared are:

  1. Direct to Applicaiton Insights via native SDK (baseline)
  2. Open Tracing via PetaBrdige driver to Application Insights
  3. Serilog with Application insights SDK for captureing requests, exceptions and performance counters to Application Insights

Notes

To propragate the log/trace context over process boundraies for protocols not default supported, take a look at how it is implemented in DiagnosticsHandler for HttpClient does it. Also see the HttpClient Diagnostic Instrumentation Users Guide.

It makes use of the System.Diagnostics.Activity class to store the distributed tracing context.

About

Comparison of Serilog, OpenTracing and native Application Insights - all sending data to App Insights

License:MIT License


Languages

Language:C# 100.0%