PowerTraces.Dashboard 3.0.0

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

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 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. 
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
3.0.0 55 11/12/2026