在 Azure 容器应用 中使用 Aspire 仪表板读取实时应用数据

Aspire 仪表板显示有关应用程序和其他资源在环境中运行方式的实时数据。

下图是 Aspire 仪表板生成的跟踪可视化效果的屏幕截图。

Aspire 仪表板跟踪窗口的屏幕截图。

仪表板上显示的信息来自两个源:

  • OpenTelemetry(OTel)是一个开源的可观测框架,用于收集您的应用程序中的 跟踪、 指标和 日志 。

    • 踪迹跟踪请求的生命周期 - 请求在应用程序的不同部分之间移动时如何被接收和处理。 此信息对于识别瓶颈和其他问题很有用。
    • 指标是基础结构的一般运行状况和性能的实时度量,例如,消耗了多少 CPU 资源,以及应用程序每秒处理的事务数。 此信息有助于了解应用的响应能力或识别性能问题的预警信号。
    • 日志记录在运行应用程序期间发生的所有事件和错误。 此信息对于查找发生问题的时间和相关事件很有用。
  • Kubernetes API 提供有关运行应用程序的基础 Kubernetes Pod 及其日志的信息。

仪表板受到保护以防范未经授权的访问和修改。 若要使用仪表板,用户必须具有“写入”权限或更高权限 - 换句话说,他们必须是环境中的参与者或所有者。

启用仪表板

小窍门

对于Aspire管理的环境,请使用 Aspire CLI配置并部署仪表盘。 如果你在使用门户时遇到问题,可以在容器应用的 GitHub 仓库里创建问题。

可以使用以下步骤在任何现有容器应用上启用 Aspire 仪表板。

  1. 转到 Azure 门户。

  2. 浏览到容器应用。

  3. 在 “概述 ”页中,找到 Aspire 仪表板 标签,然后选择 “启用”。 此操作将打开 Aspire 仪表板的设置页。

  4. 在设置页的 Aspire 仪表板 标签旁边,选中 “已启用 ”复选框。 可以忽略此页上的其他设置,因为它们与日志记录相关,而不是 Aspire 仪表板。

  5. 在容器应用的 “概述 ”页中,找到 Aspire 仪表板 标签。 “启用”链接已替换为“打开仪表板”链接。 选择此链接。 可能需要重新加载“概述”页才能显示该链接。

还可以通过浏览到容器应用环境并选择 “监视>日志记录”选项来查找 Aspire 仪表板设置。

注释

Aspire 仪表板不支持使用自定义域进行访问。 必须使用Azure 容器应用提供的默认域名,例如:https://<DOTNET_COMPONENT_NAME>.ext.<CLUSTER_NAME>.<REGION>.azurecontainerapps.io

可以使用以下命令在任何现有容器应用环境中启用 Aspire 仪表板。 将 <PLACEHOLDERS> 替换为你的值。

az containerapp env dotnet-component create \
  --environment <ENVIRONMENT_NAME> \
  --name aspire-dashboard \
  --resource-group <RESOURCE_GROUP_NAME>

create 命令会返回可在浏览器中打开的仪表板 URL。

注释

Aspire 仪表板不支持使用自定义域进行访问。 必须使用Azure 容器应用提供的默认域名,例如:https://<DOTNET_COMPONENT_NAME>.ext.<CLUSTER_NAME>.<REGION>.azurecontainerapps.io

Azure 容器应用 环境集成默认包含 Aspire 仪表盘。 要创建并部署带有仪表盘的Aspire应用:

  1. 创建一个 Aspire 入门应用,并添加 Azure 容器应用 集成:

    aspire new aspire-starter --name AspireApp --output AspireApp
    cd AspireApp
    aspire add Aspire.Hosting.Azure.AppContainers
    
  2. 在AppHost.cs中,添加一个Azure 容器应用环境:

    builder.AddAzureContainerAppEnvironment("aca-env");
    
  3. 认证与部署:

    az login
    aspire deploy
    

aspire deploy 命令会返回可在浏览器中打开的仪表板 URL。 要省略仪表盘,请将 .WithDashboard(false) 链接到环境资源上。

更多信息请参见 Deploy to Azure 容器应用 和 WithDashboard。

注释

Aspire 仪表板不支持使用自定义域进行访问。 必须使用Azure 容器应用提供的默认域名,例如:https://<DOTNET_COMPONENT_NAME>.ext.<CLUSTER_NAME>.<REGION>.azurecontainerapps.io

故障排除

如果在启用仪表板时遇到问题,请参阅以下项:

  • 门户最多可能需要两分钟来激活仪表板。 如果尝试在仪表板准备就绪之前访问,服务器将返回 404 或 421 错误。

  • 如果遇到 421 “错误定向请求”错误,请关闭浏览器窗口,等待几分钟,然后重试。

  • 在访问仪表板时,您可能会收到一条身份验证错误消息,内容是:“无法通过请求的资源对用户进行身份验证”。

    出现此问题的原因是安全组权限不会传播到容器应用环境。 若要解决此问题,请确保在容器应用环境中为自己显式授予“参与者”或“所有者”角色。 可以通过以下步骤完成此操作:

    • 导航到资源:
      • 打开Azure门户并搜索容器应用环境。
    • 访问“访问控制 (IAM)”边栏选项卡:
      • 单击容器应用环境的“访问控制(IAM)”。。
    • 验证现有的角色分配:
      • 检查你(或你的帐户)是否分配了任何角色。 请注意,权限当前不会通过安全组传播。
      • 如果没有,请按照其余步骤分配角色。
    • 显式角色分配:- 单击“添加”>“添加角色分配”。 - 选择角色:“参与者”或“所有者”(对应于你需要的访问级别)。 - 将角色显式分配给用户帐户(例如 youremail@domain.com)。
    • 保存并确认:
      • 保存更改。 确保该角色在“角色分配”部分下可见。
    • 验证仪表板访问权限:
      • 尝试访问 Aspire 仪表板进行测试。 如果继续收到错误,请联系我们的团队。
  • Aspire 仪表板不支持使用自定义域进行访问。 必须使用Azure 容器应用提供的默认域名,例如:https://<DOTNET_COMPONENT_NAME>.ext.<CLUSTER_NAME>.<REGION>.azurecontainerapps.io

Aspire 仪表板概述