Overview
The dashboard automatically launches when you run your Aspire application and provides:- Resource Management: View all resources (projects, containers, executables) in your application
- Live Console Logs: Real-time log streaming from all resources
- Structured Logs: Query and filter OpenTelemetry logs with rich metadata
- Distributed Tracing: Visualize request flows across services
- Metrics: Monitor performance counters and custom metrics
Dashboard Views
Resources Page
The Resources page shows all resources defined in your AppHost:| Column | Description |
|---|---|
| Name | Resource identifier |
| Type | Resource type (Project, Container, Executable) |
| State | Current lifecycle state |
| Endpoints | Network endpoints and URLs |
| Environment | Environment variables |
| Logs | Link to console output |
Resource States
Resources progress through these states:| State | Color | Meaning |
|---|---|---|
| Starting | Yellow | Resource is launching |
| Running | Green | Successfully started and healthy |
| Waiting | Blue | Blocked on dependencies |
| Exited | Gray | Completed execution |
| FailedToStart | Red | Startup failed |
| RuntimeUnhealthy | Red | Container runtime unavailable |
Console Logs
Click any resource to view its live console output:- Real-time log streaming
- Search and filter
- Auto-scroll toggle
- Download logs
- Configurable retention (default: 10,000 messages per resource)
Structured Logs View
The Structured Logs page displays OpenTelemetry logs with rich filtering:- Filter by resource name
- Filter by log level (Trace, Debug, Info, Warning, Error, Critical)
- Search message text and structured properties
- Filter by time range
- View exception details and stack traces
Traces View
Distributed tracing shows request flows across services:- Waterfall visualization of spans
- Service-to-service dependency graph
- Duration and timing information
- Error highlighting
- Detailed span attributes and events
Metrics View
Monitor application performance metrics: Built-in ASP.NET Core metrics:http.server.request.duration- Request latencyhttp.server.active_requests- Concurrent requestskestrel.active_connections- Active connections
process.runtime.dotnet.gc.collections.count- Garbage collectionsprocess.runtime.dotnet.gc.heap.size- Heap sizeprocess.runtime.dotnet.monitor.lock_contention.count- Lock contention
- Multiple chart types (line, bar, histogram)
- Dimension filtering and grouping
- Percentile calculations
- Configurable time ranges
- Export data
Configuration
The dashboard is configured via environment variables:Common Configuration
Using Configuration Files
Create a JSON configuration file:dashboard.json
Telemetry Limits
Control memory usage by configuring retention limits:| Setting | Default | Purpose |
|---|---|---|
MaxLogCount | 10,000 | Structured logs per resource |
MaxTraceCount | 10,000 | Traces per resource |
MaxMetricsCount | 50,000 | Metric data points per resource |
MaxAttributeCount | 128 | Attributes per telemetry item |
MaxAttributeLength | Unlimited | Maximum attribute value length |
MaxSpanEventCount | Unlimited | Events per span |
Authentication
Local Development (Unsecured)
For local development, disable authentication:Browser Token Authentication
Secure the dashboard with a token:- Generate a new random token each time the dashboard starts
- Don’t hardcode tokens in configuration files
- Tokens are validated before granting access
OpenID Connect (OIDC)
For production scenarios, use OIDC authentication:OTLP Endpoint Security
Secure telemetry ingestion endpoints:API Key Authentication
Client Certificate Authentication
Resource Service Client
The dashboard connects to the Aspire resource service to retrieve resource information:ResourceServiceClient:Url is not configured, the dashboard shows telemetry data but no resource list or console logs.
Telemetry Architecture
Aspire applications send telemetry to the dashboard using the OpenTelemetry Protocol (OTLP): Applications are automatically configured with:Dashboard URLs and Navigation
Customize dashboard URLs for resources:UrlDisplayLocation.ResourceTable- Show in main resources table (default)UrlDisplayLocation.DetailsOnly- Show only in resource details panel
Memory Management
The dashboard stores all telemetry in memory:- Limits prevent excessive memory usage
- Oldest data is removed when limits are reached
- Limits apply per-resource (not global)
- Console logs and structured logs have separate limits
Monitoring Dashboard Memory
The dashboard itself emits metrics:Data Collection and Privacy
The Aspire Dashboard may collect usage telemetry and send it to Microsoft.Opt Out of Telemetry
Disable dashboard telemetry:- Visual Studio: Tools > Options > Environment > Aspire Dashboard
- VS Code: Settings > Extensions > Aspire Dashboard
Troubleshooting
Dashboard not launching
Dashboard not launching
Check that port 18888 is available. Configure a different port:
No telemetry data appearing
No telemetry data appearing
Verify that:
- Services call
builder.AddServiceDefaults() OTEL_EXPORTER_OTLP_ENDPOINTis configured correctly- OTLP endpoint authentication is properly configured
Missing resource information
Missing resource information
Ensure
Dashboard:ResourceServiceClient:Url is configured to point to the Aspire resource service.Console logs truncated
Console logs truncated
Increase the retention limit:
Next Steps
Telemetry
Learn about structured logging, tracing, and metrics
Application Model
Understand resources and the app model
Service Discovery
Configure service-to-service communication
Deployment
Deploy applications to production