Drop-in Observability & Monitoring Kit for .NET 10 applications. Features include automated distributed tracing (Correlation ID), slow SQL query detection (EF Core Interceptor), and structured logging (Serilog integration).
$ dotnet add package MSAPulseProduction-Ready Observability Kit for .NET 10
MSAPulse is a lightweight, drop-in observability infrastructure designed for .NET applications. It solves logging, tracing, and database monitoring challenges with a single configuration line, eliminating the need for complex boilerplate code.
Unlike black-box NuGet packages, MSAPulse provides full source code ownership, allowing you to inspect, modify, and extend the architecture without vendor lock-in.
CorrelationId for every HTTP request and propagates it through the entire stack.DbCommandInterceptor, requiring no changes to your existing repositories.Core (Interfaces/Models) and Infrastructure (Implementation).Copy the src/MSAPulse.Core and src/MSAPulse.Infrastructure folders into your solution directory.
dotnet sln add src/MSAPulse.Core/MSAPulse.Core.csproj
dotnet sln add src/MSAPulse.Infrastructure/MSAPulse.Infrastructure.csproj
Link MSAPulse to your Web API project:
dotnet add YourWebApi/YourWebApi.csproj reference src/MSAPulse.Infrastructure/MSAPulse.Infrastructure.csprojWire up the services and middleware in your startup file.
using MSAPulse.Infrastructure.Extensions;
var builder = WebApplication.CreateBuilder(args);
// 1. Register MSAPulse Services
builder.Services.AddMSAPulse(builder.Configuration);
// 2. Add Performance Interceptor to EF Core
builder.Services.AddDbContext<AppDbContext>((sp, options) =>
{
options.UseSqlServer(connectionString)
.AddMSAPulseInterceptor<AppDbContext>(sp);
});
var app = builder.Build();
// 3. Enable Middleware (Must be at the top of the pipeline)
app.UseMSAPulse();
app.Run();Control behavior via appsettings.json.
{
"MSAPulse": {
"SlowQueryThresholdMs": 500, // Log warning if query takes > 500ms
"EnablePerformanceTracking": true, // Collect internal metrics
"IncludeExceptionDetails": false, // Set true for Development
"SeqUrl": "http://localhost:5341" // Log server URL
}
}MSAPulse includes a docker-compose.yml file to spin up a local visualization dashboard (Seq) instantly.
docker-compose up -dAccess the dashboard at: http://localhost:8081
MSAPulse.Core: Pure C# logic, Interfaces, Models. (Zero external dependencies).
MSAPulse.Infrastructure: Implementations, Middleware, Serilog configuration, and EF Core Interceptors.
MIT License
Copyright © 2025 MSA Technologies.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software.