<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Dashboard | The .NET Blog</title><link>https://thedotnetblog.com/zh/tags/dashboard/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>zh</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Thu, 02 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/zh/tags/dashboard/index.xml" rel="self" type="application/rss+xml"/><item><title>Aspire 13.2的Dashboard现在有了遥测API — 这改变了一切</title><link>https://thedotnetblog.com/zh/news/emiliano-montesdeoca/aspire-132-dashboard-export-telemetry/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/zh/news/emiliano-montesdeoca/aspire-132-dashboard-export-telemetry/</guid><description>.NET Aspire 13.2带来了更智能的遥测导出、可编程的trace和日志API，以及GenAI可视化改进。了解为什么这对你的调试工作流很重要。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;本文为自动翻译。查看原始版本，请&lt;a href="https://thedotnetblog.com/zh/news/emiliano-montesdeoca/aspire-132-dashboard-export-telemetry/"&gt;点击这里&lt;/a&gt;。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;如果你一直在用 .NET Aspire 构建分布式应用，你已经知道dashboard是整个体验中最棒的部分。所有的trace、日志和指标都在一个地方 — 不需要外部的Jaeger，不需要Seq配置，不需要&amp;quot;让我看看另一个终端&amp;quot;的时刻。&lt;/p&gt;
&lt;p&gt;Aspire 13.2 刚刚做了重大改进。James Newton-King &lt;a href="https://devblogs.microsoft.com/aspire/aspire-dashboard-improvements-export-and-telemetry/"&gt;发布了更新公告&lt;/a&gt;，说实话，单是遥测导出和API功能就值得升级。&lt;/p&gt;
&lt;h2 id="像正常人一样导出遥测数据"&gt;像正常人一样导出遥测数据&lt;/h2&gt;
&lt;p&gt;这是我们都经历过的场景：你在调试一个分布式问题，花了二十分钟终于复现了，现在你需要和团队分享发生了什么。之前？截图。复制粘贴trace ID。一如既往的混乱。&lt;/p&gt;
&lt;p&gt;Aspire 13.2 添加了一个&lt;strong&gt;管理日志和遥测&lt;/strong&gt;对话框，你可以：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;清除所有遥测（在复现bug之前很有用）&lt;/li&gt;
&lt;li&gt;将选定的遥测数据导出为标准OTLP/JSON格式的ZIP文件&lt;/li&gt;
&lt;li&gt;稍后将该ZIP重新导入任何Aspire dashboard&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最后一点是杀手级功能。你复现一个bug，导出遥测数据，附加到工作项，你的队友可以导入到自己的dashboard中，看到你所看到的完全一样的内容。不再需要&amp;quot;你能在你的机器上复现吗？&amp;quot;&lt;/p&gt;
&lt;p&gt;单个trace、span和日志也在上下文菜单中有了&amp;quot;Export JSON&amp;quot;选项。需要分享一个特定的trace？右键点击，复制JSON，粘贴到PR描述中。搞定。&lt;/p&gt;
&lt;h2 id="遥测api才是真正的革命性变化"&gt;遥测API才是真正的革命性变化&lt;/h2&gt;
&lt;p&gt;这是最让我兴奋的。Dashboard现在在&lt;code&gt;/api/telemetry&lt;/code&gt;下暴露了HTTP API，用于编程式查询遥测数据。可用端点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/resources&lt;/code&gt; — 列出有遥测数据的资源&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/spans&lt;/code&gt; — 带过滤器查询span&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/logs&lt;/code&gt; — 带过滤器查询日志&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/traces&lt;/code&gt; — 列出trace&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/traces/{traceId}&lt;/code&gt; — 获取特定trace的所有span&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一切都以OTLP JSON格式返回。这驱动了新的CLI命令&lt;code&gt;aspire agent mcp&lt;/code&gt;和&lt;code&gt;aspire otel&lt;/code&gt;，但真正的意义更大：你现在可以构建工具、脚本和AI代理集成，直接查询你应用的遥测数据。&lt;/p&gt;
&lt;p&gt;想象一个AI编码代理在调试时能看到你实际的分布式trace。这不再是假设 — 这就是这个API所实现的。&lt;/p&gt;
&lt;h2 id="genai遥测变得实用"&gt;GenAI遥测变得实用&lt;/h2&gt;
&lt;p&gt;如果你正在用Semantic Kernel或Microsoft.Extensions.AI构建AI驱动的应用，你会喜欢改进的GenAI遥测可视化器。Aspire 13.2 新增了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI工具描述以Markdown渲染&lt;/li&gt;
&lt;li&gt;Trace页面上的专用GenAI按钮，方便快速访问&lt;/li&gt;
&lt;li&gt;对截断或非标准GenAI JSON更好的错误处理&lt;/li&gt;
&lt;li&gt;工具定义之间的点击高亮导航&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;文章提到VS Code Copilot chat、Copilot CLI和OpenCode都支持配置&lt;code&gt;OTEL_EXPORTER_OTLP_ENDPOINT&lt;/code&gt;。将它们指向Aspire dashboard，你可以通过遥测数据实时观看你的AI代理思考过程。这是你在其他任何地方都找不到的调试体验。&lt;/p&gt;
&lt;h2 id="总结"&gt;总结&lt;/h2&gt;
&lt;p&gt;Aspire 13.2将dashboard从&amp;quot;不错的调试UI&amp;quot;转变为&amp;quot;可编程的可观测性平台&amp;quot;。单是导出/导入工作流就能在分布式调试中节省真实时间，而遥测API为AI辅助诊断打开了大门。&lt;/p&gt;
&lt;p&gt;如果你已经在用Aspire，升级吧。如果还没有 — 这是一个了解&lt;a href="https://aspire.dev"&gt;aspire.dev&lt;/a&gt;的好理由。&lt;/p&gt;</content:encoded></item></channel></rss>