Skip to content
Docs Try Aspire
Docs Try

Standalone Aspire dashboard

The Aspire dashboard provides a great UI for viewing telemetry. You can run the dashboard in standalone mode in two ways:

  • Use the Aspire CLI to start the dashboard with default local endpoints.
  • Use the standalone dashboard container image when you want to run it with Docker or another OCI-compliant container runtime.

Both options work without the rest of Aspire and can receive telemetry from any OpenTelemetry-enabled app.

A screenshot of the Aspire dashboard running in standalone mode.

Choose the startup path that best fits your workflow. The Aspire CLI provides the shortest local setup, while the container image works well when you already manage tools through a container runtime.

Install the Aspire CLI, then start the dashboard:

Aspire CLI
aspire dashboard run

The dashboard starts with the following defaults:

  • Frontend UI at http://localhost:18888
  • OTLP/gRPC endpoint at http://localhost:4317
  • OTLP/HTTP endpoint at http://localhost:4318

The dashboard is secured with a browser token by default. A login URL with the token is displayed in the terminal output. Use --allow-anonymous to disable authentication during local development.

For all available options, see the aspire dashboard run command reference.

The dashboard also ships as a standalone container image. Use this option when a container workflow fits your environment or you want to manage dashboard hosting with your existing container tooling.

Terminal window
docker run --rm -it -p 18888:18888 -p 4317:18889 -p 4318:18890 -d --name aspire-dashboard \
mcr.microsoft.com/dotnet/aspire-dashboard:latest

The preceding Docker command:

  • Starts a container from the mcr.microsoft.com/dotnet/aspire-dashboard:latest image.
  • The container exposes three ports:
    • Mapping the dashboard’s port 18888 to the host’s port 18888. Port 18888 has the dashboard UI. Navigate to http://localhost:18888 in the browser to view the dashboard.
    • Mapping the dashboard’s OTLP/gRPC port 18889 to the host’s port 4317. Port 4317 receives OpenTelemetry data from apps using OTLP/gRPC.
    • Mapping the dashboard’s OTLP/HTTP port 18890 to the host’s port 4318. Port 4318 receives OpenTelemetry data from apps using OTLP/HTTP.

Data displayed in the dashboard can be sensitive. By default, the dashboard is secured with authentication that requires a token to login.

When the dashboard is run with aspire dashboard run, the Aspire CLI prints the login URL directly in the terminal. Open that URL in your browser to log in.

When the dashboard is run from a standalone container, the login token is printed to the container logs. The logs are displayed in the Docker Desktop user interface on the Logs tab for the aspire-dashboard container:

Screenshot of the Aspire dashboard container logs.

After copying the highlighted token into the login page, select the Login button.

Alternatively, you can obtain the token from the logs by using the docker command:

Terminal window
#!/bin/bash
loginLine=$(docker container logs aspire-dashboard | grep "login?t=")
match=$(echo "$loginLine" | sed -n 's/.*login?t=\([^[:space:]]*\).*/\1/p')
echo -n "$match" | xclip -selection clipboard
echo "$match"

For more information about logging into the dashboard, see Dashboard authentication.

The dashboard offers a UI for viewing telemetry. Refer to the documentation to explore the telemetry functionality:

Although there is no restriction on where the dashboard is run, the dashboard is designed as a development and short-term diagnostic tool. The dashboard persists telemetry in-memory which creates some limitations:

  • Telemetry is automatically removed if telemetry limits are exceeded.
  • No telemetry is persisted when the dashboard is restarted.

The dashboard has functionality for viewing Aspire resources. The dashboard resource features are disabled when it is run in standalone mode. To enable the resources UI, add configuration for a resource service.

AI coding agents can still use the standalone dashboard via the Aspire CLI and MCP server. See Dashboard and AI coding agents for details.

Apps send telemetry to the dashboard using OpenTelemetry Protocol (OTLP). The dashboard must expose a port for receiving OpenTelemetry data, and apps are configured to send data to that address.

Both startup options shown earlier configure the dashboard to receive OpenTelemetry data on port 4317 (gRPC) and port 4318 (HTTP). The OTLP endpoint addresses are http://localhost:4317 for gRPC and http://localhost:4318 for HTTP. The Docker command maps the container’s OTLP ports to the same host ports.

Apps collect and send telemetry using their language’s OpenTelemetry SDK.

Important OpenTelemetry SDK options to configure:

  • OTLP endpoint, which should match the dashboard’s configuration, for example, http://localhost:4317 for gRPC or http://localhost:4318 for HTTP.
  • OTLP protocol. The dashboard supports all OTLP protocols:

To configure applications:

  • Use the OpenTelemetry SDK APIs within the application, or
  • Start the app with known environment variables:
    • OTEL_EXPORTER_OTLP_PROTOCOL with a value of grpc, http/protobuf, or http/json.
    • OTEL_EXPORTER_OTLP_ENDPOINT with a value of http://localhost:4317 for gRPC or http://localhost:4318 for HTTP.

The Aspire CLI can query telemetry data directly from the dashboard’s API, allowing you to view logs, traces, and spans from the terminal without opening the dashboard UI.

The dashboard’s telemetry API is secured with API key authentication by default. When using the CLI commands, you can pass the dashboard’s login URL (including the browser token) via --dashboard-url and the token is automatically exchanged for an API key. Alternatively, if the dashboard is started with aspire dashboard run --allow-anonymous or the ASPIRE_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS environment variable is set to true, no authentication is required — this should only be used during local development.

The aspire otel commands retrieve telemetry from the dashboard. Use --dashboard-url to point at a standalone dashboard — you can paste the full login URL and the browser token is automatically exchanged for an API key:

Aspire CLI
aspire otel logs --dashboard-url "http://localhost:18888/login?t=<token>"
aspire otel traces --dashboard-url "http://localhost:18888/login?t=<token>"
aspire otel spans --dashboard-url "http://localhost:18888/login?t=<token>"

For more details, see the aspire otel logs, aspire otel traces, and aspire otel spans command references.

The aspire agent mcp command starts an MCP (Model Context Protocol) server that AI assistants can connect to. When used with --dashboard-url, it runs in dashboard-only mode and exposes telemetry tools (structured logs and traces) to MCP-compatible clients:

Aspire CLI
aspire agent mcp --dashboard-url "http://localhost:18888/login?t=<token>"

For a sample of using the standalone dashboard, see the Standalone Aspire dashboard sample app.