SaanSoft.CorrelationId.Web
1.2.2
dotnet add package SaanSoft.CorrelationId.Web --version 1.2.2
NuGet\Install-Package SaanSoft.CorrelationId.Web -Version 1.2.2
<PackageReference Include="SaanSoft.CorrelationId.Web" Version="1.2.2" />
<PackageVersion Include="SaanSoft.CorrelationId.Web" Version="1.2.2" />
<PackageReference Include="SaanSoft.CorrelationId.Web" />
paket add SaanSoft.CorrelationId.Web --version 1.2.2
#r "nuget: SaanSoft.CorrelationId.Web, 1.2.2"
#:package SaanSoft.CorrelationId.Web@1.2.2
#addin nuget:?package=SaanSoft.CorrelationId.Web&version=1.2.2
#tool nuget:?package=SaanSoft.CorrelationId.Web&version=1.2.2
SaanSoft.CorrelationId.Web
Use with SaanSoft.CorrelationId in web or api projects.
In a distributed system it can be a challenge to trace HTTP requests and messages through multiple microservices.
A CorrelationId
(or some systems call it TraceId
) is metadata than can be used to bundle each logical transaction as it moves through multiple processors.
With this system, your client's requests are collected under one value for easier tracking and troubleshooting.
Use WebCorrelationIdMiddleware
to extract the CorrelationId
from HTTP context and/or headers, and:
- set the
ICorrelationIdProvider
to use that value - optionally set a response header with the
CorrelationId
(enabled by default) - optionally add the
CorrelationId
toILogger.BeginScope
so all structured logs have theCorrelationId
on them (enabled by default)
Use WebCorrelationIdOptions.Evaluators
to configure how the CorrelationId
is extracted from the HTTP request.
The first valid match is used. If no match is found, WebCorrelationIdMiddleware
will generate a random string instead.
Use in your Api or Website
Prerequisite
Configure SaanSoft.CorrelationId.
Register middleware
Then in your Program.cs
or Startup.cs
add:
var app = builder.Build();
app.UseWebCorrelationIdMiddleware();
// OR
app.UseWebCorrelationIdMiddleware(new WebCorrelationIdOptions {
...
});
...
Evaluators
When registering WebCorrelationIdMiddleware
, you can provide zero or more evaluators in the options.
The Evaluators
are short functions which attempt to get the CorrelationId
from HttpContext
.
Such as from a request header, or dotnet's built in Activity.Current
.
Common evaluators can be found in SaanSoft.CorrelationId.Web.Evaluator
, but you can
provide your own if desired.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.AspNetCore.Http.Abstractions (>= 2.3.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.9)
- SaanSoft.CorrelationId (>= 1.2.2)
- System.Net.Http (>= 4.3.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
See https://github.com/saan800/saansoft-correlationid/releases for details.