Read on to learn more about some of the latest updates. And for a full list of recent changes, see the release notes for Pyroscope and Profiles Drilldown.
Profile more of your workloads
Memory profiling and Windows support have been some of the most frequently requested features for Pyroscope.
If you run Python or Rust services, you can now use the Pyroscope SDKs to see where their memory goes, not just their CPU time. If you run .NET applications on Windows, you can now profile those, too.
Find memory leaks and heavy allocation: memory profiling for Python
Memory issues can be hard to track down from metrics alone. A container's memory graph shows that usage is climbing, but not which code is allocating that memory. CPU profiles don't answer that either, since they show where your code spends time. Memory profiles show which code paths allocate the most memory and which allocated the memory that's still in use, which is what you need when a service's memory keeps growing, or its allocations drive up garbage collection work.
The Python SDK now supports memory profiling, so you can see which code allocates the most memory and which code allocated the memory that's still in use, alongside the CPU profiles you already collect. Enable it with mem_enabled=True:
To learn more, see the PR and the Python SDK docs.
Find memory leaks and heap growth: memory profiling for Rust
In addition to CPU profiling, the Pyroscope Rust SDK now supports memory profiling through the jemalloc allocator. It reports in-use memory, so you can see which code paths allocated the most live memory and track down heap growth and leaks.
To learn more, see the PR, the Rust SDK docs, and the jemalloc example.
Profile .NET applications on Windows
If you run .NET applications on Windows, including .NET Framework applications hosted in IIS, you can now send profiles from them to Pyroscope and find hot spots without migrating them first.
Windows support is for x64, starting with version 1.3.0 of the profiler. On .NET 8, 9, and 10, you get the same profile types on Windows as on Linux, enabled with the same environment variables. On .NET Framework 4.7 and later, CPU and wall-time profiling are available.
To learn more, see the PR and the .NET SDK docs. Note: this feature is currently in public preview.
Let AI agents work with your profiling data
Without access to your profiles, an AI coding agent can only reason about why a service is slow from the code in front of it, or you have to copy flame graphs and numbers into the conversation by hand. With access to your profiles, it can work from the same data you would, with visibility into which services use the most resources, which functions are responsible, and what a specific profile looked like at a specific time.
gcx, the Grafana CLI, gives you and your AI coding agent structured access to your Grafana instance, from dashboards and alerts to metrics, logs, traces, and profiles. gcx enables agent mode automatically in many coding agents, such as Claude Code, GitHub Copilot, and Cursor, and you can enable it yourself for any other agent with --agent.
gcx now also includes gcx profiles commands for querying Pyroscope. To see gcx in action with Pyroscope, both in the terminal and with an AI agent, watch this community call.
Below are some of the ways you can use gcx with your profiling data, whether you run the commands yourself or an agent runs them for you. You don't need to run your own stack to try them. Grafana Play has demo data you can query, so you can point gcx at it by adding a play context:
GCX_CONTEXT selects the play context for commands in this terminal session, without changing your default context. The commands below also use the Play profiles data source, grafanacloud-profiles.
To use your own data, open a new terminal, leave out -d grafanacloud-profiles, and change the service name.
Start with the services using the most resources
When you run many services, it's not always clear which one to look at first. gcx profiles metrics --top ranks your services by a profile type, such as CPU, over a time window, so you or your agent can start with the ones using the most resources:
To try this with your AI coding agent and the Grafana Play data, use this prompt:
To learn more, see the PR and the gcx profiles metrics CLI reference docs.
Go from the combined view to the exact profile with exemplars
An aggregated profile blends every instance of a service together over the time range, so a single misbehaving process can be hard to spot. Exemplars show individual profiles ranked by their value for the profile type you query, such as CPU time or memory, so you or your agent can go straight to the most expensive ones and see what happened in each, instead of only the combined total.
gcx profiles exemplars lists the most expensive individual profiles, and you can pass one of their profile IDs to gcx profiles query to see the top functions in just that profile:
If your profiles are linked to traces, you can also narrow a query to a single span or trace to see the code that ran during a slow operation or request.
To try this with your AI coding agent and the Grafana Play data, use this prompt:
To learn more, see the PRs for exemplars, profile IDs, and span and trace selectors. Also see the exemplars CLI reference docs and query CLI reference docs.
Export profiles to use with other tools
Sometimes you want the raw profile: to open it in tools you already use, to attach it to an issue, or to keep a snapshot from before a change so you can compare later. Add -o pprof to gcx profiles query to download the profile as a pprof file, which you can open with go tool pprof.
You can also start from the Grafana UI. With the release of Profiles Drilldown 3.0 in October, you can click the Export profile data download icon above the flame graph and select gcx command, which copies a gcx profiles query command that downloads the profile you're looking at as a pprof file. In the diff flame graph view, gcx commands copies two commands, one for the baseline profile and one for the comparison.
To learn more, see the PRs for -o pprof and copying gcx commands, the Export profile data in the Profiles Drilldown docs, and the gcx profiles query CLI reference docs.
See more of your profiling data in Grafana
The Grafana UI now includes exemplars to look at one profile at a time, and the Call Tree, to follow exactly how your code reached an expensive function. Use them on your own, or to look at what an agent found and see the same data for yourself.
See one profile at a time with exemplars
The same individual profiles that gcx profiles exemplars returns are also in the Grafana UI. When you're looking at a spike, exemplars let you see the individual profiles from single processes at that moment, instead of only the combined total for the whole time range.
Exemplars show up as markers on the time series, plotted at each profile's value. In Profiles Drilldown, they're on by default in the Flame graph and Labels views, and you can turn them on in other views. Click a marker to see its labels, such as the host or, if you run on Kubernetes, the pod and namespace. Then select View profile to see the flame graph for just the profile. In Explore, turn on Exemplars under the Pyroscope query's Options.


![Top Hotel PMS Thailand [2027]: Phuket, Bangkok & Chiang Mai](/_next/image?url=%2Fapi%2Fuploads%2Farticles%2F54cef0a3ff8b2be682c48c16447821f9.webp&w=1920&q=75)









