SetNet.Inspector 1.1.0

dotnet add package SetNet.Inspector --version 1.1.0
                    
NuGet\Install-Package SetNet.Inspector -Version 1.1.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="SetNet.Inspector" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SetNet.Inspector" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="SetNet.Inspector" />
                    
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 SetNet.Inspector --version 1.1.0
                    
#r "nuget: SetNet.Inspector, 1.1.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 SetNet.Inspector@1.1.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=SetNet.Inspector&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=SetNet.Inspector&version=1.1.0
                    
Install as a Cake Tool

<p align="center"> <img src="https://raw.githubusercontent.com/Povstalez/SetNet/master/assets/icon.png" alt="SetNet" width="96"> </p>

SetNet.Inspector

Built-in live metrics dashboard for a SetNet server.

A tiny diagnostics server that runs on HttpListener (no ASP.NET dependency) and exposes your server's live NetworkMetrics and active connection count:

  • GET /metrics → JSON snapshot (scrape it from your own tooling),
  • GET / → a self-refreshing HTML page (polls /metrics every second) you can open in a browser to watch traffic in real time.

Great for local debugging, a staging node, or a quick "is it moving?" glance during a load test — with zero extra infrastructure.

Install

dotnet add package SetNet
dotnet add package SetNet.Inspector

Usage

using SetNet.Inspector;

var config = new Configuration { Host = "0.0.0.0", Port = 5000 };
var server = new MyServer(config);
await server.StartAsync();

// pass the SAME config (it owns the metrics) and the server:
var inspector = new InspectorServer(config, server, port: 9090, host: "localhost");
inspector.Start();

// browse http://localhost:9090/      (auto-refreshing HTML)
// scrape http://localhost:9090/metrics   (JSON)

// ... on shutdown:
inspector.Dispose();   // stops the HTTP listener

/metrics returns a flat JSON object:

{
  "activeConnections": 128,
  "messagesSent": 90210,
  "messagesReceived": 88541,
  "connectionsAccepted": 512,
  "connectionsRejected": 3,
  "reliableRetransmits": 17,
  "reliableAcksReceived": 40233,
  "handshakesDropped": 1,
  "inboundDropped": 0
}

API

Member Purpose
new InspectorServer(config, server, port = 9090, host = "localhost") Build the inspector (config supplies Metrics, server supplies ActiveConnections)
Start() Begin serving / and /metrics
Dispose() Stop the listener

Fields (from config.Metrics + server.ActiveConnections): activeConnections, messagesSent, messagesReceived, connectionsAccepted, connectionsRejected, reliableRetransmits, reliableAcksReceived, handshakesDropped, inboundDropped.

Notes

  • Not for the public internet. The dashboard exposes internal counters and has no authentication. Bind to localhost (the default), or if you pass host: "0.0.0.0" (which binds http://+:{port}/), keep it behind a firewall, VPN, or an authenticating reverse proxy.
  • Binding on 0.0.0.0/+ may need a URL ACL (netsh http add urlacl) or elevated privileges on Windows; on Linux/macOS it binds directly.
  • Read-only. The inspector never mutates the server — it only reads config.Metrics and server.ActiveConnections. Pass the same Configuration instance you gave the server so it reports the live metrics.
  • For orchestrator liveness/readiness probes rather than a human dashboard, use SetNet.HealthChecks.

Documentation & source

License

MIT

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.1

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
1.1.0 137 7/2/2026