MonadicTypes.NET.Diagnostics
0.3.0-preview.2
dotnet add package MonadicTypes.NET.Diagnostics --version 0.3.0-preview.2
NuGet\Install-Package MonadicTypes.NET.Diagnostics -Version 0.3.0-preview.2
<PackageReference Include="MonadicTypes.NET.Diagnostics" Version="0.3.0-preview.2" />
<PackageVersion Include="MonadicTypes.NET.Diagnostics" Version="0.3.0-preview.2" />
<PackageReference Include="MonadicTypes.NET.Diagnostics" />
paket add MonadicTypes.NET.Diagnostics --version 0.3.0-preview.2
#r "nuget: MonadicTypes.NET.Diagnostics, 0.3.0-preview.2"
#:package MonadicTypes.NET.Diagnostics@0.3.0-preview.2
#addin nuget:?package=MonadicTypes.NET.Diagnostics&version=0.3.0-preview.2&prerelease
#tool nuget:?package=MonadicTypes.NET.Diagnostics&version=0.3.0-preview.2&prerelease
MonadicTypes.NET.Diagnostics
Optional, vendor-neutral Activity and Meter projection for structured
MonadicTypes.NET errors. This package includes MonadicTypes.NET.Errors and the
core package transitively.
Requirements
- .NET 10 or later
- Compatible with trimming and NativeAOT
- Uses only
System.Diagnostics; no exporter dependency
Install
dotnet add package MonadicTypes.NET.Diagnostics --prerelease
Quick Start
using System.Diagnostics;
using System.Diagnostics.Metrics;
using MonadicTypes;
using var meter = new Meter("Orders");
var metrics = new ErrorMetrics(meter);
Result<Order, Error> result = LoadOrder();
result.TapError(error =>
{
ErrorTelemetry.Record(Activity.Current, error);
metrics.Record(error);
});
Telemetry Contract
The library never logs, traces, or records metrics merely because a Result is created or propagated. Call projection once at the application boundary where the error is handled.
ErrorTelemetry.Record enriches a caller-owned sampled Activity. ErrorMetrics
creates a counter on a caller-owned Meter and uses bounded category tags by
default. Error-code tags are opt-in because they can increase cardinality.
OpenTelemetry, Prometheus, Application Insights, and other BCL-compatible
consumers can export these signals without package-specific adapters.
Record uses PublicOnly by default and writes the diagnostic message to the
error.message activity tag only when Error.IsMessagePublic is true. Use
ErrorTelemetryMessagePolicy.Include or .Omit for an explicit telemetry
boundary policy; HTTP disclosure remains controlled by IsMessagePublic.
ErrorMetrics.Disabled and an absent or unsampled Activity provide low-cost
disabled paths. For allocation-sensitive callbacks, use caller-state or an
IValueAction<Error> struct rather than a capturing lambda.
Related Packages
| Package | Add it for |
|---|---|
MonadicTypes.NET.Errors |
Structured errors without supplied projection |
MonadicTypes.NET.AspNetCore |
HTTP boundary conversion and metadata |
Documentation
See diagnostics and the compatibility contract.
Apache-2.0. Developed with AI assistance.
Documented public members: 16
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- MonadicTypes.NET.Errors (>= 0.3.0-preview.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.3.0-preview.2 | 51 | 9/12/2026 |
| 0.3.0-preview.1 | 37 | 9/12/2026 |
| 0.2.0-preview.2 | 76 | 8/30/2026 |
| 0.2.0-preview.1 | 81 | 8/17/2026 |
| 0.1.0-preview.1 | 70 | 8/12/2026 |