Class CommonValueObjectTrace
- Namespace
- FunctionalDdd
- Assembly
- FunctionalDdd.CommonValueObjects.dll
Provides OpenTelemetry activity tracing for Common Value Objects operations. Enables monitoring and diagnostics of value object creation, validation, and parsing activities.
public static class CommonValueObjectTrace
- Inheritance
-
CommonValueObjectTrace
- Inherited Members
Examples
Enabling tracing in an ASP.NET Core application:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddOpenTelemetry()
.WithTracing(tracerProviderBuilder =>
tracerProviderBuilder
.AddFunctionalDddCvoInstrumentation() // Adds CVO activity source
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddConsoleExporter());
var app = builder.Build();
// Now EmailAddress.TryCreate and other CVO 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 CommonValueObjects 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 using AddFunctionalDddCvoInstrumentation(TracerProviderBuilder).
Fields
ActivitySource
Gets the ActivitySource for tracing CommonValueObjects operations.
public static readonly ActivitySource ActivitySource
Field 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.AddFunctionalDddCvoInstrumentation());
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