在即将到来的部分中,你将了解如何创建 Aspire 项目并启动以下任务:
使用从项目模板生成的应用来调查仪表板的功能,如 快速入门中所述:生成第一个项目 Aspire 。
深入了解仪表板应用的功能 Aspire 。
本文中介绍的屏幕截图展示了深色主题。 有关主题选择的详细信息,请参阅 主题选择。
仪表板 Aspire 还包括 GitHub COPilot、AI 调试助手,可帮助分析资源、日志、跟踪和遥测数据。 从 VS Code 或Visual StudioGitHub具有 Copilot 订阅的帐户启动应用时,可以使用 Copilot。 有关完整详细信息,请参阅 GitHub 仪表板中的 Aspire Copilot。
仪表板身份验证
运行 Aspire AppHost 时,业务流程协调程序会启动所有应用的依赖资源,然后打开仪表板的浏览器窗口。 仪表板 Aspire 需要基于令牌的用户身份验证,因为它显示环境变量和其他敏感信息。
从 Visual Studio 或 Visual Studio Code 启动仪表板(使用 C# Dev Kit 扩展),浏览器会自动登录,仪表板将直接打开。 这是典型的开发人员 F5 体验,身份验证登录流由工具自动执行 Aspire 。
但是,如果从命令行启动 AppHost,则会看到登录页。 控制台窗口显示一个 URL,你可以选择该 URL 以在浏览器中打开仪表板。
该 URL 包含一个令牌查询字符串(令牌值映射到 t 名称部分),用于 登录到 仪表板。 如果主机支持它,可以按住 Ctrl 键,然后选择链接以在浏览器中打开仪表板。 此方法比从控制台复制令牌并将其粘贴到登录页更容易。 如果最终在仪表板登录页上没有上述任一方法,则始终可以返回到控制台以复制令牌。
登录页接受令牌,并提供有关如何获取令牌的有用说明,如以下屏幕截图所示:
从控制台复制令牌并将其粘贴到登录页后,选择“ 登录 ”按钮。
仪表板将令牌保留为浏览器持久性 cookie,该 cookie有效期为三天。 永久性 Cookie 具有到期日期,即使在关闭浏览器后仍有效。 这意味着,如果用户关闭并重新打开浏览器,则无需再次登录。 有关详细信息,请参阅 运行 Aspire 仪表板文档的安全注意事项 。
Tip
还可以从容器日志获取登录令牌。 有关详细信息,请参阅 “登录到仪表板”。
“资源”页
“ 资源 ”页是仪表板的默认主页 Aspire 。 此页面列出了 .NET 解决方案中包含的所有 Aspire 项目、容器和可执行文件。 例如,初学者应用程序包括两个项目:
- apiservice:使用最小 API 生成的后端 API 项目。
- webfrontend:使用 Blazor.. 生成的前端 UI 项目。
仪表板还提供有关每个资源的基本详细信息:
- 类型:显示资源是项目、容器还是可执行文件。
- 名称:资源的名称。
-
状态:显示资源当前是否正在运行。
- 错误:在 “状态 ”列中,错误显示为带有错误计数的锁屏提醒。 快速了解哪些资源报告错误非常有用。 选择锁屏提醒会转到该资源的 语义日志 ,并在错误级别使用筛选器。
- 开始时间:资源开始运行时。
- 源:设备上的资源位置。
- 终结点:用于直接访问正在运行的资源的一个或多个 URL。
- 日志:指向资源日志页的链接。
-
作:可在资源上执行的作 集 :
- 停止/启动:根据当前 状态停止(或启动)资源。
- 控制台日志:导航到资源的控制台日志。
-
省略号:具有额外资源特定作的子菜单:
- 查看详细信息:查看资源详细信息。
- 控制台日志:导航到资源的控制台日志。
- 结构化日志:导航到资源的结构化日志。
- 跟踪:导航到资源的跟踪。
- 指标:导航到资源的指标。
- 重启:停止,然后启动资源。
请考虑以下资源页的屏幕截图:
或者,可以将资源视为图形。 图形视图提供资源的可视表示形式及其依赖项。 此视图可用于了解应用中的不同资源是如何连接的,以及它们如何相互交互:
可以通过选择资源来查看其详细信息来与图形交互。 整体视图还支持放大和缩小。
资源作
每个资源都有一组可用操作,这些操作根据资源的当前状态有条件地启用。 例如,如果资源正在运行,则启用 “停止 ”作。 如果资源已停止,则启用 “启动” 作。 同样,某些操作在不可用时被禁用,例如,某些资源没有结构化日志。 在这些情况下,将禁用 结构化日志 作。
停止或启动资源
仪表板Aspire允许通过在“作”列中选择“停止”或“启动”按钮来停止或启动资源。 请考虑以下资源页的屏幕截图,其中选择了“ 停止 ”按钮:
选择 “停止”时,资源将停止运行, 状态 列会更新以反映更改。
Note
对于项目资源,当附加调试器时,它将在重启时重新附加。
然后启用“ 开始 ”按钮,允许再次启动资源。 此外,仪表板还显示操作结果的 Toast 通知:
当资源处于非运行状态时,将启用 “开始” 按钮。 选择 “开始” 会启动资源, 状态 列会更新以反映更改。 然后启用 “停止 ”按钮,允许再次停止资源。 仪表板显示操作结果的 Toast 通知:
Tip
依赖于已停止或重启的其他资源的资源可能会遇到临时错误。 这是预期行为,通常在依赖资源再次处于 “正在运行” 状态时解析。
资源子菜单操作
在 “作” 列中选择水平省略号图标将打开包含其他资源特定作的子菜单。 除了内置资源子菜单操作之外,还可以通过定义自定义命令来定义自定义资源操作。 有关详细信息,请参阅中的Aspire自定义资源命令。 对于内置资源子菜单操作,请考虑以下屏幕截图:
可以使用以下子菜单操作:
- 查看详细信息:查看资源详细信息。
- 控制台日志:导航到资源的控制台日志。
- 结构化日志:导航到资源的结构化日志。
- 跟踪:导航到资源的跟踪。
- 指标:导航到资源的指标。
- 重启:停止,然后启动资源。
当 GitHub Copilot 可用(从 VS Code 启动或 Visual Studio 使用 Copilot 订阅时),资源上下文菜单还包括 Ask GitHub Copilot 选项。 这样就可以使用 AI 分析调查资源。
在文本可视化工具中复制或打开
若要查看某些列 的文本可视化工具 ,请将鼠标悬停在鼠标悬停时,会看到垂直省略号图标。 选择图标以显示可用选项:
- 复制到剪贴板
- 在文本可视化工具 中打开
请考虑以下省略号菜单选项的屏幕截图:
选择 在文本可视化工具中打开 选项时,将打开模式对话框,其中文本以较大格式显示。 请考虑以下文本可视化工具模式对话框的屏幕截图:
某些值的格式为 JSON 或 XML。 在这些情况下,文本可视化工具使 “选择格式 ”下拉列表能够在不同格式之间切换。
资源详细信息
可以通过在 “作” 列中选择省略号按钮,然后选择“ 查看详细信息”来获取有关每个资源的完整详细信息。 “ 详细信息 ”页提供资源的综合视图:
仪表板右上角的搜索栏还提供筛选列表的选项,这对于具有许多资源的项目非常有用 Aspire 。 若要选择显示的资源类型,请向下拉下筛选器文本框左侧的箭头:
在此示例中,列表中仅显示容器。 例如,如果在创建Aspire项目时启用“用于缓存”Redis,则应看到Redis列出的容器:
可执行文件是独立的进程。 可以将项目配置为 Aspire 在启动期间运行独立可执行文件,但默认初学者模板默认不包含任何可执行文件。
以下屏幕截图显示了出错的项目示例:
选择错误计数锁屏提醒会导航到“ 结构化日志 ”页,其中应用的筛选器仅显示与资源相关的日志:
若要查看错误的详细信息日志条目,请选择 “视图 ”按钮,打开列表下方包含结构化日志条目详细信息的窗口:
有关结构化日志的详细信息和示例,请参阅 结构化日志页 部分。
Note
如果仪表板在没有配置的资源服务的情况下启动,则资源页不可用。 仪表板在 结构化日志页上 启动。 当仪表板以独立模式运行而不进行其他配置时,这是默认体验。
有关配置资源服务的详细信息,请参阅 仪表板配置。
监视页面
仪表板 Aspire 提供了查看应用日志、跟踪和指标的各种方法。 此信息使你能够跟踪应用的行为和性能,并诊断出现任何问题。
控制台日志页
控制台 日志 页显示应用中每个资源已发送到标准输出的文本。 日志是监视应用运行状况和诊断问题的有用方法。 日志根据源(如项目、容器或可执行文件)以不同的方式显示。
打开控制台日志页时,必须在 选择资源 下拉列表中选择源。
如果选择项目,则实时日志将呈现为一组样式化的颜色,这些颜色对应于日志的严重性;例如,信息为绿色。 请考虑以下项目日志的示例屏幕截图,其中选择了 apiservice 项目:
发生错误时,它们会在日志中设置样式,以便易于识别。 请考虑以下项目日志的屏幕截图,其中显示了错误:
如果选择容器或可执行文件,格式设置与项目不同,但详细行为信息仍然可用。 请考虑以下容器日志的示例屏幕截图,其中选择了 cache 容器:
可以将任何控制台日志下载到本地计算机,并使用首选文本程序对其进行分析:
资源副本
使用 WithReplicas API 复制项目资源时,它们将在顶级命名资源项下的资源选择器中表示,并带有要指示的图标。 每个复制的资源都列在顶级资源条目下,其相应的唯一名称。 请考虑复制项目资源的以下示例屏幕截图:
前面的屏幕截图显示了具有两个副本 catalogservice (application) 和 catalogservice-2bpj2qdq6k的 catalogservice-6ljdin0hc0 项目。 每个副本都有自己的一组日志,可通过选择副本名称来查看这些日志。
结构化日志页
Aspire 使用 OpenTelemetry自动配置项目日志记录。 导航到 “结构化日志 ”页以查看项目的语义日志 Aspire 。 语义或结构化日志记录 可以更轻松地存储和查询日志事件,因为日志事件消息模板和消息参数会保留,而不只是将它们转换为格式化消息。 你会注意到使用列在页面上显示的不同日志的干净结构:
- 资源:日志源自的资源。
- 级别:条目的日志级别,如信息、警告或错误。
- 时间戳:日志发生的时间。
- 消息:日志的详细信息。
- 跟踪:指向日志相关跟踪的链接(如果适用)。
- 详细信息:有关日志条目的其他详细信息或元数据。
请考虑以下示例语义日志的屏幕截图:
筛选结构化日志
结构化日志页还提供一个搜索栏,用于按服务、级别或消息筛选日志。 使用 “级别 ”下拉列表按日志级别进行筛选。 还可以通过选择筛选器图标按钮(打开高级筛选器对话框)按任何日志属性进行筛选。
请考虑以下屏幕截图,其中显示了结构化日志筛选器对话框:
当 GitHub Copilot 可用并且你的应用具有具有错误的结构化日志时,“ 解释错误 ”按钮会显示在结构化日志页上。 选择它会使 Copilot 可用于 AI 支持的调查的所有错误。 此外,结构化日志条目在其上下文菜单中包括 Ask GitHub Copilot 选项。
“跟踪”页
导航到 “跟踪 ”页以查看应用的所有跟踪。 Aspire 自动为应用中的不同项目配置跟踪。 分布式跟踪是一种诊断技术,可帮助工程师本地化应用程序中的故障和性能问题,尤其是可能分布在多台计算机或进程中的故障和性能问题。 有关详细信息,请参阅 .NET 分布式跟踪。 此方法通过应用程序跟踪请求,并关联不同应用程序集成完成的工作。 跟踪还有助于确定请求的不同阶段完成时间。 跟踪页显示以下信息:
- 时间戳:跟踪完成后。
- 名称:跟踪的名称,以项目名称为前缀。
- 范围:请求中涉及的资源。
- 持续时间:完成请求所需的时间。 此列包含一个径向图标,用于说明请求的持续时间与列表中的其他人相比。
筛选跟踪
跟踪页还提供一个搜索栏,用于按名称或范围筛选跟踪。 应用筛选器,并注意到跟踪结果会立即更新。 请考虑以下跟踪屏幕截图,其中包含应用于 weather 的筛选器,并注意如何在结果中突出显示搜索词:
在 “添加筛选器 ”对话框中筛选跟踪后,选择 “参数 ”和“相应 条件”后 ,将预先 填充所选参数的可用值。 请考虑以下屏幕截图,其中选择了参数的http.route”对话框:
合并来自多个资源的遥测数据
当资源有多个副本时,可以筛选遥测数据,以便一次性查看所有实例中的数据。 选择标记为 (application)的父资源,如以下屏幕截图所示:
选择父资源后,跟踪页将显示来自资源的所有实例的遥测数据。
跟踪详细信息
跟踪详细信息页包含与请求相关的各种详细信息,包括:
- 跟踪详细信息:跟踪启动时。
- 持续时间:完成请求所需的时间。
- 资源:请求中涉及的资源数。
- 深度:请求中涉及的层数。
- 总跨度:请求中涉及的跨度总数。
每个范围都表示为表中的一行,并包含 一个 Name。 如果某个错误发生在跟踪的特定范围内,范围还会显示错误图标。 具有客户端/使用者类型的范围,但服务器上没有范围,显示箭头图标,然后显示目标地址。 这表示对项目外部 Aspire 系统的客户端调用。 例如,HTTP 请求外部 Web API 或数据库调用。
在跟踪详细信息页中,有一个 “查看日志 ”按钮,该按钮将转到结构化日志页,其中包含一个筛选器,用于仅显示与请求相关的日志。 请考虑一个示例屏幕截图,其中显示了结构化日志页,其中应用了一个筛选器来仅显示与跟踪相关的日志:
当 Copilot 可用时 GitHub ,跟踪详细信息页还包括一个 “解释跟踪 ”按钮,该按钮提供了使用 AI 分析当前查看的跟踪的快速方法。 此外,跟踪和各个范围包括其上下文菜单中 的 Ask GitHub Copilot 选项,以便进行详细调查。
结构化日志页 部分更详细地讨论了结构化日志页。
跟踪示例
每个跟踪都有一种颜色,用于帮助区分范围-每个资源的颜色一种。 这些颜色同时反映在 跟踪页 和 跟踪详细信息页中。 当跟踪描述箭头图标时,这些图标也会着色,以匹配目标跟踪的跨度。 请考虑以下示例跟踪屏幕截图:
在 “作 ”列中,可以选择“ 查看详细信息 ”以导航到请求的详细视图,以及浏览每个应用程序层所花费的时间持续时间。 请考虑选择跟踪的示例以查看其详细信息:
对于跟踪中的每个范围,选择“ 查看详细信息 ”以查看更多详细信息:
在范围详细信息中向下滚动,查看完整信息。 在范围详细信息窗格底部,某些范围类型(例如此对缓存的调用)显示跨度事件计时:
对于具有多个范围的复杂跟踪,请使用 “筛选器 ”文本框仅显示匹配范围:
出现错误时,页面将在跟踪名称旁边呈现错误图标。 假设有错误的跟踪示例屏幕截图:
以及跟踪的相应详细视图,并显示错误:
“指标”页
导航到“ 指标 ”页以查看应用的指标。 Aspire 自动为应用中的不同项目配置指标。 指标是衡量应用程序运行状况的一种方法,可用于监视应用随时间推移的性能。
应用中的每个指标发布项目都有自己的指标。 “指标”页显示每个顶级计量的选择窗格以及可以选择查看指标的相应仪器。
请考虑以下指标页的示例屏幕截图,其中选择了 webfrontend 项目,并选择了 System.Net.Http 计量的 http.client.request.duration 指标:
除了指标图表之外,指标页还包括一个选项,用于改为以表的形式查看数据。 请考虑以下指标页的屏幕截图,其中选择了表视图:
在图表下,有一系列筛选器可以应用于关注你感兴趣的数据。 例如,在以下屏幕截图中,将筛选 http.request.method 字段以仅显示 GET 请求:
还可以选择在垂直访问上选择显示的指标计数,而不是选择其值:
有关指标的详细信息,请参阅
GenAI 遥测可视化
仪表板 Aspire 提供了一个专用对话框,用于查看 GenAI(生成 AI)遥测数据。 此功能可帮助你分析和了解应用程序中与 AI 相关的作,包括聊天完成、嵌入和其他 AI 交互。
下面是演示 GenAI 遥测可视化工具的动画:
将消息内容记录到遥测时,GenAI 遥测可视化工具最有效。 如果没有消息内容,对话框会显示一条备注,并提供有关如何启用此功能的文档的链接。
配置消息内容录制
若要从 GenAI 遥测可视化工具获取最大价值,请将 AI 集成配置为记录消息内容。 此配置因使用的 AI 客户端库而异:
Microsoft.Extensions.AI
使用 Microsoft.Extensions.AI (IChatClient 和相关抽象)时,可以通过配置聊天客户端选项来启用敏感数据录制。 有关支持 Microsoft.Extensions.AI的特定 AI 集成,请参阅其各个文档以获取确切的配置语法。 配置通常涉及设置 EnableSensitiveData 属性或类似的遥测相关选项
环境变量配置
许多 OpenTelemetry 库支持 OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT 环境变量来启用消息内容捕获。 将此环境变量设置为 true:
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true
可以在应用程序的配置、开发环境中或部署设置中设置此环境变量。
Azure OpenAI 和其他 AI 集成
有关使用不同 AI 集成配置消息内容录制的具体指南,请参阅每个集成的文档:
Tip
禁用消息内容录制后,GenAI 遥测可视化工具仍提供有关 AI作的宝贵信息,包括计时、元数据和性能指标。 但是,启用消息内容录制可提供 AI 交互的最全面视图。
Exemplars
仪表板 Aspire 支持并显示 OpenTelemetry示例。 一个示例将指标数据点链接到记录它的作,充当指标和跟踪之间的桥梁。
示例非常有用,因为它们提供了有关记录特定指标值的原因的其他上下文。 例如,如果你注意到 http.client.request.duration 指标中的延迟峰值,则一个示例可以指向导致峰值的特定跟踪或跨度,从而帮助你了解根本原因。
示例以数据点旁边的小圆点的形式显示在指标图表中。 将鼠标悬停在指示器上时,工具提示将显示示例详细信息,如以下屏幕截图所示:
前面的屏幕截图显示了 http.client.request.duration 指标的示例详细信息。 示例详细信息包括:
- 资源名称。
- 执行的操作,在本例中,HTTP GET 指向
/catalog/images/{id}。 - 相应的值和时间戳。
选择示例指示器将打开跟踪详细信息页,可在其中查看关联的跟踪,例如,请考虑以下屏幕截图:
有关详细信息,请参阅 OpenTelemetry 文档:示例。
与遥测交互
在运行 Aspire 应用程序时,会持续生成遥测信息,并且可能会用信息淹没仪表板。 仪表板包含可用于减少监视页中显示的数据量的工具,并使其更容易定位特定事件。
暂停遥测输出
在 控制台日志、 结构化日志、 跟踪和 指标 页中,可以暂停遥测数据的收集:
暂停按钮仅影响该页上显示的遥测类型。 例如,如果暂停控制台日志收集,应用将继续收集结构化日志、跟踪和指标遥测。
删除数据
在 “暂停 ”按钮旁边,“ 删除数据 ”按钮使你能够清除当前页上的遥测数据。 下拉列表,并选择是删除所有资源的遥测数据,还是仅删除当前资源的遥测数据:
该按钮可用于控制日志、结构化日志、跟踪和指标。 它独立于每种类型的数据工作。
如果要在单个步骤中删除所有类型和所有资源的遥测数据,请使用“设置”对话框中的“删除所有”按钮:
“设置”对话框
仪表板 Aspire 提供了一个设置对话框,可用于配置主题、语言、功能以清除所有日志和遥测数据以及 .NET 仪表板使用的版本。
默认情况下,主题设置为遵循系统主题,这意味着仪表板使用与操作系统相同的主题。 还可以选择 浅色 或 深色 主题以覆盖系统主题。 将保留主题选择。
以下屏幕截图显示了主题选择对话框,其中选择了默认系统主题:
如果更喜欢浅色主题,可以从主题选择对话框中选择它:
仪表板快捷方式
仪表板 Aspire 提供了各种快捷方式, 可帮助你 导航和控制仪表板的不同部分。 若要显示键盘快捷方式,请按 Shift + ?,或选择仪表板右上角的问号图标:
以下快捷方式可用:
Panels:
- +:增加面板大小。
- -:减小面板大小。
- 转变 + r: Reset 面板大小。
- 转变 + t: Toggle 面板方向。
- 转变 + x:关闭面板。
页面导航:
- r:转到 Resources。
- c:转到 Console 日志。
- s:转到 S截断的日志。
- t: 去 T比赛。
- m:转到 Mtrics。
网站范围的导航:
- ?: 必须 提供帮助。
- 转变 + s:转到 Settings。
交互提示
使用仪表板时,某些资源或命令可能会提示输入值。 此交互功能由 交互服务提供支持,允许集成显示通知或在需要时从用户请求输入。
例如, Azure 缺少所需配置的资源可能会在仪表板启动时或与这些资源交互时提示你输入配置值。 这些提示有助于确保正确配置资源,并且可以在应用程序中 Aspire 正常运行。
在仪表板中,交互提示显示为:
- 缺少配置值的输入对话框。
- 重要作的确认对话框。
- 包含有关资源状态的详细信息的通知消息。
这些提示直接显示在仪表板界面中,因此无需切换到外部工具或配置文件即可轻松提供必要的信息。
有关使用交互服务 API 的详细信息,包括示例和 CLI 支持,请参阅 交互服务。
GitHub 仪表板中的 Copilot
当从 VS Code 或AspireGitHub具有 Copilot 订阅的帐户启动应用时,仪表板Visual Studio包括 GitHub Copilot 作为 AI 调试助手。 Copilot 可以帮助你:
- 单击一下即可查看数百条日志消息。
- 调查多个应用出现错误的根本原因。
- 突出显示跟踪中的性能问题。
- 使用 AI 庞大的知识存储库解释模糊错误代码。
Copilot 功能在整个仪表板界面中显示:
- Copilot 按钮:此按钮可在右上角打开 Copilot 聊天界面。
- 上下文菜单:“询问 GitHub Copilot”选项显示在资源、日志、跟踪和跨上下文菜单中。
- 说明按钮:“解释错误”按钮显示在结构化日志上,“说明跟踪”按钮显示在跟踪详细信息页上。
- 建议的问题:上下文 AI 建议基于当前页显示。
有关 Copilot 功能、要求、故障排除和配置选项的综合信息 GitHub ,请参阅 GitHub 仪表板中的 Aspire Copilot。