SetNet.Inspector
1.1.0
dotnet add package SetNet.Inspector --version 1.1.0
NuGet\Install-Package SetNet.Inspector -Version 1.1.0
<PackageReference Include="SetNet.Inspector" Version="1.1.0" />
<PackageVersion Include="SetNet.Inspector" Version="1.1.0" />
<PackageReference Include="SetNet.Inspector" />
paket add SetNet.Inspector --version 1.1.0
#r "nuget: SetNet.Inspector, 1.1.0"
#:package SetNet.Inspector@1.1.0
#addin nuget:?package=SetNet.Inspector&version=1.1.0
#tool nuget:?package=SetNet.Inspector&version=1.1.0
<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/metricsevery 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 passhost: "0.0.0.0"(which bindshttp://+:{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.Metricsandserver.ActiveConnections. Pass the sameConfigurationinstance 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
- 🐙 https://github.com/Povstalez/SetNet — full module catalog in docs/MODULES.md
License
MIT
| Product | Versions 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. |
-
.NETStandard 2.1
- SetNet (>= 1.1.0)
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 |