Pmm.putty PDocsProgramming
Related
7 Things You Need to Know About Go's Source-Level InlinerMastering the Dual Nature of Code: A Guide to Understanding Programming as Machine Instructions and Conceptual ModelsThoughtworks Unveils Structured Prompt-Driven Development: A Game-Changer for AI-Assisted Coding TeamsGo Developers Achieve Major Performance Gains With New Stack Allocation StrategyThe Art of Debugging Alone: From Rubber Ducks to Stack OverflowOptimizing Go Performance: Stack Allocation for SlicesTaming Time: How the Temporal Proposal Revolutionizes JavaScript Date HandlingPyroscope 2.0: Revolutionizing Continuous Profiling for Modern Observability

Go 1.25 Debuts 'Flight Recorder' for Real-Time Execution Trace Capture

Last updated: 2026-05-04 02:34:33 · Programming

Breaking: Go 1.25 Ships Flight Recorder

September 26, 2025 — The Go team has officially released flight recording in Go 1.25, a feature that lets developers capture the last few seconds of an application's execution trace on demand. Announced today by engineers Carlos Amedee and Michael Knyszek, the flight recorder solves a long-standing pain point for diagnosing latency issues in long-running web services.

Go 1.25 Debuts 'Flight Recorder' for Real-Time Execution Trace Capture
Source: blog.golang.org

“The flight recorder is like a scalpel cutting directly to the problem area,” said Amedee and Knyszek in a joint statement. “A program often knows when something has gone wrong, but the root cause may have happened long ago. This tool lets you collect a trace of the last few seconds leading up to that moment.”

Background: Execution Traces and Their Limits

Go execution traces record events during a program’s runtime, showing how goroutines interact with the system. They are critical for debugging latency, as they reveal when goroutines are executing—and crucially, when they are not.

The runtime/trace package has long offered Start and Stop calls to collect traces over a set window. This works for short-lived tasks like tests or CLI tools, but falls short for web servers that run for days or weeks. “Collecting a trace of the entire execution would produce far too much data to sift through,” the team noted.

Random sampling across a fleet is another approach, but it demands heavy infrastructure for storage and triage, and rarely catches the exact problematic window. “When you’re trying to get to the bottom of a specific issue, it’s a non-starter,” they added.

What This Means for Developers

The flight recorder changes the game by buffering the execution trace in memory. Instead of writing to a file or socket, the runtime continuously stores the last few seconds of events. When a problem occurs—like a timeout or failed health check—the program can request the buffer and snapshot the exact problematic time window.

Go 1.25 Debuts 'Flight Recorder' for Real-Time Execution Trace Capture
Source: blog.golang.org

This eliminates the need to pre-record traces or set up complex sampling pipelines. “It’s a powerful new tool in the Go diagnostics toolbox,” the team emphasized. Developers can now investigate issues retroactively without requiring foreknowledge of the failure.

The implementation leverages the redesigned execution tracer introduced in 2024, which first hinted at flight recording capabilities. The Go team expects flight recording to become a standard practice for diagnosing intermittent failures in production environments.

How to Get Started with Flight Recording

Flight recording is built into Go 1.25’s runtime/trace package. Developers can start recording at any point and later retrieve the buffer contents. The feature is designed to be lightweight, with minimal performance overhead during normal operation.

For details on API usage and configuration, see the official Go documentation. The team also plans to share case studies and best practices in upcoming blog posts.

— Reporting by the Go Developer News Team