Class PrimitiveValueObjectTrace
- Namespace
- Trellis
- Assembly
- Trellis.Primitives.dll
Provides OpenTelemetry activity tracing for Primitive Value Objects operations. Enables monitoring and diagnostics of value object creation, validation, and parsing activities.
public static class PrimitiveValueObjectTrace
- Inheritance
-
PrimitiveValueObjectTrace
- Inherited Members
Examples
Enabling tracing in an ASP.NET Core application:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddOpenTelemetry()
.WithTracing(tracerProviderBuilder =>
tracerProviderBuilder
.AddPrimitiveValueObjectInstrumentation() // Adds PVO activity source
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddConsoleExporter());
var app = builder.Build();
// Now EmailAddress.TryCreate and other PVO operations will be traced
app.MapPost("/users", (CreateUserRequest request) =>
EmailAddress.TryCreate(request.Email) // This creates a traced activity
.Bind(email => _userService.CreateUser(email))
.ToHttpResult());
Viewing traces in Application Insights:
// Trace hierarchy example:
// POST /users
// └─ EmailAddress.TryCreate
// ├─ Status: Ok (if valid)
// └─ Status: Error (if invalid)
// └─ UserService.CreateUser
// └─ Database operation
// Each activity includes:
// - Operation name: "EmailAddress.TryCreate"
// - Duration
// - Status (Ok/Error)
// - Parent/child relationships
Remarks
This static class configures distributed tracing support for the PrimitiveValueObjects library, allowing you to observe value object operations in Application Insights, Jaeger, Zipkin, or other OpenTelemetry-compatible observability platforms.
The ActivitySource enables tracing for:
- Email address validation (EmailAddress.TryCreate)
- Value object parsing and creation
- Validation success and failure rates
- Performance metrics for value object operations
To enable tracing in your application, register the activity source with your OpenTelemetry configuration.
Properties
ActivitySource
Gets the ActivitySource for tracing PrimitiveValueObjects operations.
public static ActivitySource ActivitySource { get; }
Property Value
Remarks
This activity source is used by value objects (like EmailAddress) to create tracing spans for operations such as validation and parsing.
To enable tracing, add this source to your OpenTelemetry configuration:
builder.Services.AddOpenTelemetry()
.WithTracing(b => b.AddPrimitiveValueObjectInstrumentation());
Activities created include:
- Activity name: "{ValueObjectType}.{MethodName}" (e.g., "EmailAddress.TryCreate")
- Status: Ok for successful operations, Error for failures
- Duration: Time taken for the operation