MiniOps.Nucleus.Core 0.2.0

dotnet add package MiniOps.Nucleus.Core --version 0.2.0
                    
NuGet\Install-Package MiniOps.Nucleus.Core -Version 0.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MiniOps.Nucleus.Core" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MiniOps.Nucleus.Core" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="MiniOps.Nucleus.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MiniOps.Nucleus.Core --version 0.2.0
                    
#r "nuget: MiniOps.Nucleus.Core, 0.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MiniOps.Nucleus.Core@0.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MiniOps.Nucleus.Core&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=MiniOps.Nucleus.Core&version=0.2.0
                    
Install as a Cake Tool

MiniOps.Nucleus

NuGet Downloads License Size Last Commit

MiniOps.Nucleus is a high-performance, ultra-lightweight request metrics collector and real-time dashboard for .NET applications.
With a footprint of just 26 KB, it provides a minimal yet powerful solution for monitoring your application's request traffic without adding overhead.

It captures key request metrics — including duration, status codes, paths, and timestamps — and stores them in a thread-safe, in-memory queue for non-blocking, high-speed writes.
Logs are flushed in batches to your database using Dapper and Dapper Plus with optimized bulk inserts to keep persistence blazing fast and efficient.
Automatic cleanup runs based on configurable retention settings to keep storage lean.

MiniOps.Nucleus also includes an early-preview SignalR-powered dashboard for real-time visualization of request patterns, making it easy to monitor performance, spot spikes, and identify bottlenecks.

Its lightweight design and simple integration make it ideal for APIs and high-throughput web applications.


⚠️ Known Limitations (Pre-Release Stage)

  • Dashboard is currently only functional for the live graph and total cards.
    • Metrics cards, request ticker, recent requests table, and nodes status panel are not yet populated in real-time.
  • SignalR may lag under extremely high traffic. Adjust BatchFlushIntervalSeconds in NucleusDbContext for optimal performance.

✨ Features

  • 🔎 Request Metrics Tracking
    Collects request duration, status codes, paths, and timestamps.

  • 🧵 Concurrent In-Memory Store
    Built with a thread-safe concurrent queue for non-blocking, high-speed writes.

  • 💾 Batch Inserts & Deletes
    Flushes requests to the database in batches, reducing write overhead. Deletes old rows automatically to reduce DB bloat.

  • 📊 Dashboard (Early Preview)

    • Real-time streaming chart of requests (via SignalR).
    • Currently, only the request graph is implemented.
    • Upcoming panels: status breakdown, latency distribution, and more.
  • Ultra Lightweight
    With a 26 KB footprint, MiniOps.Nucleus is one of the lightest metrics solutions you can add to your project.


Getting Started

Quick start Register Nucleus in DI and configure options:

// Register Nucleus Core
builder.Services.AddNucleus(op =>
  op.UseDatabase(NucleusDatabaseTypes.SQLServer, "<connection-string>")
    .WithSchema("Nucleus")
    .EnableSeedDatabase(true)
    .SetLogTtl(60)
    .SetBatchFlushInterval(1)
    .UseCustomTableNames("RequestMetrics", "RequestAggregates")
);


var app = builder.Build();

//...

// Start Nucleus (seeding + background services)
await app.UseNucleus();

app.Run();

That’s it—requests flowing through the app are tracked and written to your database in batches. Old rows are purged automatically based on LogTTLSeconds.


Configuration Options

| Property | Type | Default | Description | | --------------------------- | ---------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------- | | DatabaseType | NucleusDatabaseTypes | — | The type of database MiniOps will use. Supported: SqlServer (More to come) | | ConnectionString | string | "" | The connection string for the selected database | | LogTTLSeconds | int | 1 | Time-to-live for request logs, in seconds. Expired logs are deleted automatically by the background cleanup service | | BatchFlushIntervalSeconds | float | 1 | How often, in seconds, the background flush service writes accumulated logs to the database | | SchemaName | string | "Nucleus" | Optional custom schema/table name for request logs | | SeedDatabase | bool | false | Whether to seed the database automatically on startup |

❓ FAQ

Is it thread-safe?
Yes, MiniOps.Nucleus uses a ConcurrentQueue for non-blocking, thread-safe writes.

Can it work without a database?
Currently, a database is required for batch inserts.

Which databases are supported?
SQLServer, PostgreSQL, and SQLite are fully supported; More support coming soon.

Does it impact app performance?
It is designed to be lightweight and minimal, with <1ms overhead per request.


🤝 Contributing

Contributions, issues, and feature requests are welcome!
Please check the issues before creating new ones.


📄 License

MiniOps.Nucleus is licensed under the MIT License.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.2.0 185 8/19/2025
0.1.0-alpha 260 8/16/2025 0.1.0-alpha is deprecated because it is no longer maintained.