PowerTraces.Dashboard
3.0.0
dotnet add package PowerTraces.Dashboard --version 3.0.0
NuGet\Install-Package PowerTraces.Dashboard -Version 3.0.0
<PackageReference Include="PowerTraces.Dashboard" Version="3.0.0" />
<PackageVersion Include="PowerTraces.Dashboard" Version="3.0.0" />
<PackageReference Include="PowerTraces.Dashboard" />
paket add PowerTraces.Dashboard --version 3.0.0
#r "nuget: PowerTraces.Dashboard, 3.0.0"
#:package PowerTraces.Dashboard@3.0.0
#addin nuget:?package=PowerTraces.Dashboard&version=3.0.0
#tool nuget:?package=PowerTraces.Dashboard&version=3.0.0
PowerTraces.Dashboard
An embedded traces/logs viewer UI + query API for PowerTraces — mount it in your ASP.NET Core app with one line. The whole SPA is embedded in the package, so there's nothing extra to publish or build (Node/Yarn aren't required at runtime).
This package doesn't know about any specific database — it resolves an IDashboardStore from DI,
keyed by which provider you ask for. Register the provider(s) you actually use:
| Package | PowerTracesDatabaseProvider |
|---|---|
PowerTraces.MSSQL |
SqlServer |
PowerTraces.PostgreSQL |
PostgreSql |
PowerTraces.MongoDb |
MongoDb |
PowerTraces.MySQL |
MySql |
PowerTraces.Sqlite |
Sqlite |
Install
dotnet add package PowerTraces.Dashboard
dotnet add package PowerTraces.MSSQL # or whichever provider you're already exporting to
Mount it
using PowerTraces;
using PowerTraces.Dashboard;
using PowerTraces.MSSQL;
// 1. Register a store for the database you're actually using.
builder.Services.AddPowerTracesMsSqlDashboard(connectionString);
var app = builder.Build();
// 2. Mount the UI + API at a path of your choosing.
app.MapPowerTracesDashboard("/otel", PowerTracesDatabaseProvider.SqlServer);
Open /otel:
- Overview — requests, error rate, latency and log volume over the last hour/6h/24h/7d, the busiest operations with their error rates, recent failures and the latest logs.
- Traces and Logs — search, time range, service, severity/error and attribute filters, and extra attribute columns.
- Trace detail — the span tree on a time axis (foldable, searchable, critical path highlighted) beside the selected span's details, a hotspots view (where it failed, time by service, slowest spans), and Keep forever to exempt the trace from retention.
- Ignore rules — stop exporting noisy traces or spans without a redeploy.
- Retention — how long to keep traces and logs, whether failures are kept regardless, the pinned traces, and the last cleanup's results.
The UI follows the OS light/dark setting, or can be pinned to either from the sidebar.
Retention cleanup
Cleanup follows the policy saved on the Retention page (off until enabled) and runs in the app that mounts the dashboard: at startup, then hourly. When several apps mount a dashboard for the same database, one is enough — turn it off in the others:
app.MapPowerTracesDashboard("/otel", PowerTracesDatabaseProvider.SqlServer,
configureUi: o => o.RetentionSweepInterval = null);
Basic Auth (optional)
app.MapPowerTracesDashboard("/otel", PowerTracesDatabaseProvider.SqlServer,
username: builder.Configuration["Dashboard:Username"],
password: builder.Configuration["Dashboard:Password"]);
Leave both null (the default) to leave the dashboard unauthenticated — e.g. because your app
already puts it behind its own auth or network boundary.
Database connections
The dashboard uses at most MaxConcurrentQueries connections at a time (default 8); further
requests wait without holding one, so it can't drain the pool your application uses. Requests the
browser abandons — a superseded search, leaving the page — are cancelled on the server and free
their connection immediately.
builder.Services.AddPowerTracesMsSqlDashboard(connectionString, o => o.MaxConcurrentQueries = 4);
Multiple databases at once
Call MapPowerTracesDashboard more than once — each with its own prefix and provider — to browse
several databases' telemetry from one app:
builder.Services.AddPowerTracesMsSqlDashboard(sqlConnectionString);
builder.Services.AddPowerTracesMongoDbDashboard(mongoConnectionString);
app.MapPowerTracesDashboard("/otel/prod", PowerTracesDatabaseProvider.SqlServer);
app.MapPowerTracesDashboard("/otel/staging", PowerTracesDatabaseProvider.MongoDb);
Excluding the dashboard's own traffic
Add the dashboard's own mount prefix to the exporter's ExcludePathPrefixes so browsing it doesn't
fill the trace list with its own requests:
tracing.AddPowerTracesMsSqlExporter(connectionString, o => o.ExcludePathPrefixes.Add("/otel"));
License
Free for any use, including commercial use, under the PowerTraces Free License (LICENSE.txt in this package): you may use it and ship it unmodified inside your applications, but not modify the code or publish changed copies.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. 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. |
-
net9.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.11)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.11)
- PowerTraces (>= 3.0.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 |
|---|---|---|
| 3.0.0 | 55 | 11/12/2026 |