Package line
One repository, several NuGet packages. The prefix is NuvyntraLabs.NET.ApiLens. Optional probes reference core only. They do not reference each other.
| Package | Role |
|---|---|
NuvyntraLabs.NET.ApiLens | Timeline, attribution, N+1, explain rules, and the in-memory ring. No ASP.NET reference. |
NuvyntraLabs.NET.ApiLens.AspNetCore | AddApiLens and UseApiLens for MVC and minimal APIs, plus the dashboard gate. |
NuvyntraLabs.NET.ApiLens.EntityFrameworkCore | EF Core CommandExecuted and CommandError on the active request. |
NuvyntraLabs.NET.ApiLens.Http | Outbound HttpClient timings. Factory clients use a handler. Other clients use the System.Net.Http diagnostic listener. |
NuvyntraLabs.NET.ApiLens.UI | Embedded dashboard page. Referenced by the ASP.NET Core package. |
How the probes attach
AddApiLens() registers options and the in-memory store. UseApiLens() adds the middleware that opens a request scope, times the rest of the pipeline, and writes one report.
AddApiLensEntityFrameworkCore() subscribes to Microsoft.EntityFrameworkCore diagnostics for CommandExecuted and CommandError. A command is recorded only when a request scope is active.
AddApiLensHttp() adds a delegating handler to IHttpClientFactory clients and listens to System.Net.Http diagnostics for other HttpClient instances. A call the handler already recorded is skipped by the listener, so it is not counted twice.
Later packages
- A StackExchange.Redis probe that uses client profiling.
- An optional OpenTelemetry exporter. Collection in 0.1.0 stays on DiagnosticSource and Activity.
- An optional AI package that reads the existing explanation and does not collect its own data.
Those packages stay in this repository when they exist. They are not extra products, and they are not part of 0.1.0.