APM that runs on
your own server.

Built for ASP.NET Core Web Apps and Web APIs (.NET 6, 7, 8), hosted on IIS on Windows Server, on-premises VMs, or cloud VMs you manage.

Monitor exceptions, slow SQL queries, API latency and system health. View everything in a built-in dashboard served directly from your app. Just open /runtimeiq in your browser. See how it looks

Self-hosted No cloud account No agents Data never leaves your server
$ dotnet add package RuntimeIQ.Core
using RuntimeIQ.Core.Extensions;
 
// Program.cs
var builder = WebApplication.CreateBuilder(args);
 
builder.Services.AddControllers(); // or AddControllersWithViews() for MVC
builder.Services.AddRuntimeIQ();
 
var app = builder.Build();
 
app.UseRuntimeIQ();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
 
app.Run();

No configuration required to get started. See all options to customise thresholds, dashboard path, authentication and more.

What gets monitored

Exceptions

Unhandled exceptions captured with full stack trace. Deduplicated by type and message so you see patterns, not floods.

Slow SQL Queries

Captures queries from SQL Server (ADO.NET, Dapper, EF Core, stored procedures) and any EF Core-supported database including PostgreSQL, MySQL and SQLite. No changes to your data access code. Configurable threshold.

API Request Latency

Tracks duration per endpoint. Configurable sampling rate keeps overhead low. Slow requests always captured.

Outbound HTTP Calls

Tracks every HttpClient call: host, URL, status code, duration and failures. No code changes needed.

System Metrics

CPU, memory, GC generations, thread pool and in-flight request count. Snapshotted every 15 seconds.

Built-in Dashboard

Served at /runtimeiq from inside your app. No separate service. Optional login protection.

Why self-hosted matters

Data never leaves your server

No telemetry sent to any third-party APM provider. Runs on your own infrastructure, including cloud VMs. Suitable for regulated environments: banking, healthcare, government.

No infrastructure to set up

Data stored in SQLite embedded inside the library. No separate database server, no collectors, no agents to install.

Zero overhead on requests

All monitoring is fire-and-forget. The request thread is never blocked by diagnostic writes.

Configuration

All options are set via AddRuntimeIQ(options => ...). Every option has a sensible default. Only set what you need.

Option Default Description
LicenseKey null Your Pro license key. Omit for Free tier.
DashboardPath /runtimeiq URL path where the dashboard is served.
DashboardUsername null Username for dashboard login. Leave empty for open access.
DashboardPassword null Password for dashboard login. Leave empty for open access.
DatabasePath ./runtimeiq.db Path to the SQLite database file. Use an absolute path in production.
SlowQueryThresholdMs 500 SQL queries at or above this duration (ms) are captured. Set to 0 to capture all.
SlowDependencyThresholdMs 500 Outbound HTTP calls at or above this duration (ms) are captured.
ApiSampleRate 1 Capture every Nth request. 1 = every request, 10 = 1-in-10. Useful for high-traffic apps.
SlowRequestThresholdMs 1000 Requests at or above this duration are always captured regardless of sample rate.

Plans

Free
$0 forever
  • All monitoring features
  • Built-in dashboard
  • 3-day data retention
  • No credit card required
Install Free
PRO
Pro
Contact us
  • Everything in Free
  • 30-day data retention
  • Priority email support
  • Per-application license

Pro is free. Send us an email and we'll issue your license key.

runtimeiq.dev@gmail.com