<?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>Observability | The .NET Blog</title><link>https://thedotnetblog.com/tags/observability/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>en</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/tags/observability/index.xml" rel="self" type="application/rss+xml"/><item><title>Aspire 13.2's Dashboard Just Got a Telemetry API — and It Changes Everything</title><link>https://thedotnetblog.com/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/news/emiliano-montesdeoca/aspire-132-dashboard-export-telemetry/</guid><description>.NET Aspire 13.2 ships smarter telemetry export, a programmable API for traces and logs, and GenAI visualization improvements. Here's why this matters for your debugging workflow.</description><content:encoded>&lt;p&gt;If you&amp;rsquo;ve been building distributed apps with .NET Aspire, you already know the dashboard is the single best thing about the whole experience. All your traces, logs, and metrics in one place — no external Jaeger, no Seq setup, no &amp;ldquo;let me check the other terminal&amp;rdquo; moments.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 just made it significantly better. James Newton-King &lt;a href="https://devblogs.microsoft.com/aspire/aspire-dashboard-improvements-export-and-telemetry/"&gt;announced the update&lt;/a&gt;, and honestly? The telemetry export and API features alone are worth the upgrade.&lt;/p&gt;
&lt;h2 id="export-telemetry-like-a-sane-person"&gt;Export telemetry like a sane person&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s the scenario we&amp;rsquo;ve all lived through: you&amp;rsquo;re debugging a distributed issue, you finally reproduce it after twenty minutes of setup, and now you need to share what happened with your team. Before? Screenshots. Copy-pasting trace IDs. The usual mess.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 adds a proper &lt;strong&gt;Manage logs and telemetry&lt;/strong&gt; dialog where you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clear all telemetry (useful before a repro attempt)&lt;/li&gt;
&lt;li&gt;Export selected telemetry to a ZIP file in standard OTLP/JSON format&lt;/li&gt;
&lt;li&gt;Re-import that ZIP into any Aspire dashboard later&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That last part is the killer feature. You reproduce a bug, export the telemetry, attach it to your work item, and your teammate can import it into their own dashboard to see exactly what you saw. No more &amp;ldquo;can you reproduce it on your machine?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Individual traces, spans, and logs also get an &amp;ldquo;Export JSON&amp;rdquo; option in their context menus. Need to share one specific trace? Right-click, copy JSON, paste into your PR description. Done.&lt;/p&gt;
&lt;h2 id="the-telemetry-api-is-the-real-game-changer"&gt;The telemetry API is the real game changer&lt;/h2&gt;
&lt;p&gt;This is what I&amp;rsquo;m most excited about. The dashboard now exposes an HTTP API under &lt;code&gt;/api/telemetry&lt;/code&gt; for querying telemetry data programmatically. Available endpoints:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/resources&lt;/code&gt; — list resources with telemetry&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/spans&lt;/code&gt; — query spans with filters&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/logs&lt;/code&gt; — query logs with filters&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/traces&lt;/code&gt; — list traces&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/traces/{traceId}&lt;/code&gt; — get all spans for a specific trace&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Everything comes back in OTLP JSON format. This powers the new &lt;code&gt;aspire agent mcp&lt;/code&gt; and &lt;code&gt;aspire otel&lt;/code&gt; CLI commands, but the real implication is bigger: you can now build tooling, scripts, and AI agent integrations that query your app&amp;rsquo;s telemetry directly.&lt;/p&gt;
&lt;p&gt;Imagine an AI coding agent that can look at your actual distributed traces while debugging. That&amp;rsquo;s not hypothetical anymore — that&amp;rsquo;s what this API enables.&lt;/p&gt;
&lt;h2 id="genai-telemetry-gets-practical"&gt;GenAI telemetry gets practical&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re building AI-powered apps with Semantic Kernel or Microsoft.Extensions.AI, you&amp;rsquo;ll appreciate the improved GenAI telemetry visualizer. Aspire 13.2 adds:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI tool descriptions rendered as Markdown&lt;/li&gt;
&lt;li&gt;A dedicated GenAI button on the traces page for quick AI trace access&lt;/li&gt;
&lt;li&gt;Better error handling for truncated or non-standard GenAI JSON&lt;/li&gt;
&lt;li&gt;Click-to-highlight navigation between tool definitions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The blog post mentions that VS Code Copilot chat, Copilot CLI, and OpenCode all support configuring an &lt;code&gt;OTEL_EXPORTER_OTLP_ENDPOINT&lt;/code&gt;. Point them at the Aspire dashboard and you can literally watch your AI agents think in real time through telemetry. That&amp;rsquo;s a debugging experience you won&amp;rsquo;t find anywhere else.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;Aspire 13.2 takes the dashboard from &amp;ldquo;nice debugging UI&amp;rdquo; to &amp;ldquo;programmable observability platform.&amp;rdquo; The export/import workflow alone saves real time on distributed debugging, and the telemetry API opens the door to AI-assisted diagnostics.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re already on Aspire, upgrade. If you&amp;rsquo;re not — this is a good reason to check out &lt;a href="https://aspire.dev"&gt;aspire.dev&lt;/a&gt; and see what the fuss is about.&lt;/p&gt;</content:encoded></item></channel></rss>