独立 .NET.NET Aspire 仪表板

.NET .NET Aspire 仪表板 提供了用于查看遥测的出色 UI。 The dashboard:

  • 作为容器映像提供,可与任何已启用 OpenTelemetry 的应用一起使用。
  • 可以独立使用,而不使用其余 .NET.NET Aspire。

独立模式下运行的 .NET.NET Aspire 仪表板的屏幕截图。

启动仪表板

仪表板是使用 Docker 命令行启动的。

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

前面的 Docker 命令:

  • mcr.microsoft.com/dotnet/aspire-dashboard:9.0 映像启动容器。
  • 容器公开两个端口:
    • 将仪表板的 OTLP 端口 18889 映射到主机的端口 4317。 端口 4317 从应用接收 OpenTelemetry 数据。 应用使用 OpenTelemetry 协议 (OTLP)发送数据。
    • 将仪表板的端口 18888 映射到主机的端口 18888。 端口 18888 具有仪表板 UI。 导航到浏览器中 http://localhost:18888 以查看仪表板。

登录到仪表板

仪表板中显示的数据可能很敏感。 默认情况下,仪表板受到身份验证保护,需要令牌登录。

从独立容器运行仪表板时,会将登录令牌打印到容器日志。 The logs are displayed in the Docker Desktop user interface on the Logs tab for the aspire-dashboard container:

.NET.NET Aspire 仪表板容器日志的屏幕截图。

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

或者,可以使用以下命令从日志 docker 中获取令牌:

#!/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"

Note

此脚本要求系统已安装 sed 工具和 xclip 工具。

Tip

若要避免登录,可以通过将 ASPIRE_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS 环境变量设置为 true来禁用身份验证要求。 Additional configuration is available, see Dashboard configuration.

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

浏览仪表板

仪表板提供用于查看遥测的 UI。 请参阅文档,了解遥测功能:

尽管仪表板的运行位置没有限制,但仪表板设计为开发和短期诊断工具。 仪表板会保留内存中的遥测数据,这会产生一些限制:

  • Telemetry is automatically removed if telemetry limits are exceeded.
  • 重启仪表板时,不会保留任何遥测数据。

独立时不可用的功能

仪表板具有查看 .NET.NET Aspire 资源的功能。 仪表板资源功能在独立模式下运行时处于禁用状态。 若要启用资源 UI,添加资源服务的配置。

GitHub 独立仪表板中不提供 Copilot 功能 。 Copilot 使用与 IDE 的连接来与 GitHub Copilot 通信,当仪表板处于独立模式时,该连接不可用。

将遥测数据发送到仪表板

应用使用 OpenTelemetry 协议(OTLP)将遥测数据发送到仪表板。 仪表板必须公开用于接收 OpenTelemetry 数据的端口,并且应用配置为将数据发送到该地址。

前面显示了一个 Docker 命令来 启动仪表板。 它配置了容器以接收端口 OpenTelemetry上的 4317 数据。 OTLP 终结点的完整地址 http://localhost:4317

配置 OpenTelemetry SDK

应用使用 其语言的 OpenTelemetry SDK收集和发送遥测数据。

配置的重要 OpenTelemetry SDK 选项:

  • OTLP 终结点,该终结点应与仪表板的配置匹配,例如 http://localhost:4317
  • OTLP protocol, with the dashboard currently supporting only the OTLP/gRPC protocol. 将应用程序配置为使用 grpc 协议。

配置应用程序:

  • 在应用程序中使用 OpenTelemetry SDK API,或者
  • 使用 已知环境变量启动应用
    • 值为 OTEL_EXPORTER_OTLP_PROTOCOLgrpc
    • 值为 OTEL_EXPORTER_OTLP_ENDPOINThttp://localhost:4317

Sample

有关使用独立仪表板的示例,请参阅 独立 .NET.NET Aspire 仪表板示例应用

Next steps