Loading…

Sentry
Application monitoring platform for identifying, debugging, and resolving software errors and performance issues.
- 42 posts summarised
- latest
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
From their blog
Latest articles
Sentry's Flutter SDK 10.0: Streaming Traces and More Accurate Crash-Free Rates
Sentry released Flutter SDK 10.0, making streaming traces the default so spans reach Sentry as they finish, using Sentry.startSpan for custom work. Unhandled Flutter errors no longer mark the session as crashed, improving crash-free rate accuracy by keeping the session running until a real crash occurs. App startup on Android and iOS now has its own trace with breakdowns such as root-widget attachment and first-frame rasterization, and can be extended with SentryFlutter.extendAppStart. The release simplifies logs and metrics setup by removing separate enable flags, expands Dio network error capture to failures without HTTP responses, and respects Flutter’s SensitiveContent widgets in Replay and screenshots. Upgrading requires Dart 3.12, Flutter 3.44, Android API 26, and iOS 15, with native SDK installation via Swift Package Manager on iOS and macOS.
Sentry JavaScript SDK v11 adds tracing for all JS platforms
Sentry JavaScript SDK v11 replaces OpenTelemetry-based tracing with a code transformer from the apm-js-collab packages that injects diagnostics channels into supported modules at load time. The transform wraps target functions in tracingChannel() calls, and Sentry integrations subscribe to those channels to create native spans directly from the events. This approach works both at runtime via Module.registerHooks and at build time through bundler plugins for Vite, esbuild, webpack, and others, with no risk of double-wrapping. The previous OpenTelemetry instrumentation required Node-specific loader hooks, could not instrument bundled dependencies, and had ordering issues with ESM imports, limiting support to Node.js. v11 extends automatic tracing to Cloudflare Workers, Deno, Bun, and bundled server deployments while offering three OpenTelemetry integration modes: Sentry only, OpenTelemetry-compatible, or custom OTel with OTLP export.
Reducing Android scope-sync overhead in Sentry Flutter
The Sentry Flutter SDK records breadcrumbs, user information, and diagnostic data through scope updates, adding overhead to apps. On Android, a dedicated worker isolate handles Sentry Android SDK operations to avoid blocking the main UI isolate, but both the calling isolate and the worker normalized the same data, and the encoding step produced a JSON string plus an unnecessary byte buffer copy. Removing the duplicate normalization roughly halved normalization time, while using JsonUtf8Encoder to encode directly into UTF-8 bytes reduced encoding time by 16% and eliminated the extra copy. Combined, these changes reduced total scope payload processing time by 27–30% for benchmark inputs of 1.2 KB, 23 KB, and 238 KB, as measured on a Google Pixel 4 in release mode. The optimizations are available in sentry_flutter version 9.26.0 and later.
Unreal MCP now speaks Sentry
Unreal Engine 5.8 introduces Unreal MCP, an experimental feature that runs a first-party MCP server inside the editor, allowing coding agents to drive the editor directly. The Sentry plugin registers tools and skills that agents can use to set up crash reporting, including DSN configuration, symbol upload, instrumentation, and crash debugging. Agents can discover and use these tools through the editor’s MCP interface, with skills that follow ground rules like asking before changing settings and never exposing secrets. The integration also supports connecting to Sentry MCP for server-side operations like fetching DSNs and looking up events. In a test with the Sentry Tower demo, an agent configured Sentry from scratch, enabled symbol upload, packaged a build, captured a crash, and identified the root cause as an empty projectile class in a level-up button.
Seer, the Sentry MCP and CLI, or your own coding agent: where each one fits
Seer is Sentry’s agent debugger that reasons across errors, traces, logs, profiles, and linked repositories to identify root causes, not just surface-level stack traces. The Sentry MCP, set up via the agent plugin with a single command, bridges Sentry’s data into coding agents like Claude Code and Cursor, enabling them to invoke Seer’s full analysis. The new Sentry CLI provides natural-language access to Seer’s diagnosis and issue management directly from the terminal, using selectors like @latest and @most_frequent. These tools are complementary: Seer provides deep diagnosis, while the MCP and CLI deliver that context into the environments developers already use. Teams can automate the entire workflow so Seer diagnoses, an agent fixes, and a draft PR awaits review without human involvement until approval, with Seer triggering on issues meeting event count and fixability thresholds.
How Etsy gets its mobile apps ready for peak traffic
Mobile apps cannot be reverted after release, so Etsy’s peak traffic preparation focuses on observability and mitigation decisions made months in advance rather than capacity scaling during the event. The company runs a code slush with three phases: mindful merging in mid-October, infrastructure fortification, and peak requiring senior sign-off for any change. To avoid tooling disruption, Etsy ran both legacy and new crash reporters simultaneously through a dual-reporting layer, letting engineers use the tool they knew and providing comparison data to eventually sunset the old platform. Before peak, each crash-prone feature is ensured to have a remote flag that disables the failing code path without an app store release. Crash rate is translated into an estimate of lost orders via business analysts, making technical health discussable with teams and the CTO.
Big improvements to Seer Agent
Seer Agent, Sentry’s AI debugging assistant, now performs write actions through the Sentry API, such as setting up custom dashboards, creating monitors and alerts, and assigning, resolving, and archiving issues. It defaults to the user’s permission level and explicitly requests permission for tasks outside its write scope, with permissions not persisting beyond a single chat. The agent can also incorporate infrastructure data from external monitoring platforms like Datadog and Google Cloud Platform via Seer Connectors, using API keys instead of OAuth. This allows Seer Agent to diagnose issues by connecting front-end and back-end data beyond Sentry’s native scope. These updates evolve Seer Agent from a conversational rubber duck into a proactive debugging assistant that can act on behalf of users.
Measuring the back/forward cache with Application Metrics
The back/forward cache (bfcache) allows instant page restores by freezing snapshots, yet its hits register no events in traditional telemetry, creating a blind spot for teams. Sentry’s bfcacheMetricsIntegration fills this gap by modeling three browser-provided signals as application metrics: a navigation counter with hit/miss outcome, a per-reason counter for misses via the notRestoredReasons API, and a distribution of fallback reload duration. The integration is opt-in and launched in JavaScript SDKs v11; detailed miss reasons are currently Chromium-only due to browser API support. Users can query these metrics to break down bfcache health by route, release, or browser, enabling discovery of regressions caused by unload listeners, cache-control headers, or third-party scripts. This turns the bfcache from an invisible performance feature into a measurable, trackable signal that teams can monitor and improve.
Building Sentry's Laravel AI Integration
Sentry’s Laravel AI integration, built during an internal Agent Hackweek, provides Agent Tracing for Laravel AI agents. The author used Claude for coding, which initially produced poor generic helper code. Laravel AI emits lifecycle events for agents and tool calls, but not for individual LLM invocations. To capture these, the integration matches outgoing HTTP requests to active invocations using provider URL prefixes, associating with the most recently started invocation if multiple match. Enabling the integration requires only updating to sentry-laravel 4.27, with no Sentry-specific code. Traces appear in Sentry’s Explore > Agents section, showing conversations, tool calls, and their inputs and outputs.
Debugging our AI search assistant with agent tracing
Sentry’s Search Query Assistant converts natural-language prompts into Sentry Search Syntax, but its non-deterministic output requires evals and debugging when generated queries are wrong. A production issue caused searches on custom numerical attributes to return no events, so the team used Sentry’s AI Conversation view and Agents filters to find the relevant trace, inspect the timeline, and follow tool calls into the backend API. The trace showed that tool results were being incorporated into the system prompt with the field name bug__predictions_count instead of the required tags[bug_predictions_count, number] form. The team added an eval scenario, fixed the prompt generation, verified the corrected query locally and in production, and confirmed the updated prompt and API parameter in the trace. They also instrumented local eval runs to send data to Sentry, allowing debugging before a pull request.
Application Metrics caught my broken size estimator
Cliparr’s video size estimator was intended to predict output size from target bitrate multiplied by clip duration, but real-world results could vary because its VBR encoder changes bitrate with content. Rather than manually testing a matrix of formats, codecs, and quality settings, the author extracted the browser-based export engine into Cliparr Convert, a standalone static converter, and instrumented it with anonymous Sentry Application Metrics. Completed conversions record actual and estimated bytes, their ratio and delta, plus attributes such as output format, quality, and estimator basis; counters also track conversion completion and the progressive web app installation funnel. The resulting dashboard exposed an estimate that was off by 83% and supports grouping real usage by conversion conditions, while sending only numeric metrics and not media, filenames, or URLs.
From one switch to a control panel: meet `dataCollection`
Sentry is replacing the JavaScript SDK boolean option sendDefaultPii with dataCollection, a category-level control for automatically collected data. In version 11, dataCollection becomes the default, sendDefaultPii is removed, and several categories—including user information, cookies, HTTP bodies, GenAI inputs and outputs, database query data, and stack-frame variables—are collected by default. The post distinguishes PII, which is collected by default, from sensitive credentials, whose values in collected headers are filtered automatically; manually attached data remains unaffected. Developers can preserve v10’s restrictive baseline or select true, false, allow lists, and deny lists for supported fields, while beforeSend and beforeSendSpan handle additional filtering. Because v11 also enables span streaming by default, span drops move to ignoreSpans, and existing withStreamedSpan wrappers should be removed.
How to evaluate session replay software: a developer's guide
Session replay software varies fundamentally based on architecture, distinguishing tools designed for product analytics from those built for developer debugging. Recording approaches split into DOM snapshot and mutation capture, which optimizes for compression and structured debugging, versus pixel capture, which favors visual fidelity for complex animations. Privacy depends heavily on masking location, where client-side masking redacts data before network transmission, whereas server-side scrubbing acts after transmission. For engineering teams, integration depth connects replays natively to traces, console errors, and backend issues rather than requiring timestamp lookups across separate products. Performance costs across CPU, memory, and network require benchmarking on target applications alongside strategies like error-based sampling.
Automated agent triage with Agent Tracing and Claude Routines
Evaluating Sentry's AI agent Seer previously required manually querying evaluation data and parsing raw JSON traces to find tool failures, latency spikes, and hallucinations. To automate this triage, the team deployed a daily Claude Routine connected to Sentry using a Model Context Protocol server. Each morning, the routine analyzes hundreds of overnight agent conversations, reviews aggregate error metrics, samples failed and successful conversation spans, and inspects the agent codebase for context. Claude evaluates whether final decisions match underlying reasoning and creates Linear tickets for newly discovered issues. This daily automated analysis accelerated the feedback loop, allowing engineers to identify efficiency issues like repeated malformed repository queries and deploy same-day fixes.
What's new in Sentry Logs: The summer 2026 roundup
Sentry introduced a collection of updates to its logging platform aimed at improving search scalability, export flexibility, and general viewer usability. The system now supports URL-synced log pinning alongside an overhauled export interface that handles aggregate data, full attribute payloads, and high-volume JSONL formats across Logs, Errors, and Tracing. Performance enhancements to the log viewer include a more constrained layout with reduced initial data loads, inline error representations, individual chips for multi-value search terms, and trace-level filtering. To assist large-scale queries spanning hundreds of gigabytes or terabytes, frontend and backend modifications added longer query timeouts with continuations, clearer rate-limiting messages, and in-place retries.
How we built an automated debugging workflow at Sentry
Sentry automated its internal debugging and issue triage workflows to handle bugs and pull requests generated by AI agents. The company deployed Seer, an AI-powered debugging agent, across several repositories to determine root causes, create fix plans, and open pull requests. To manage the resulting influx of pull requests, Sentry built an automated Slack routine powered by Claude that periodically scans for unaddressed pull requests opened within four hours. The routine asks Seer to identify relevant reviewers using GitHub commit history, verifies pull request status, and tags engineers to request merges, closures, or feedback. Early metrics show a 21 percent increase in pull request action rates, a 13 percent increase in 48-hour response rates, and a 12.5 percent rise in pull requests closed without merging due to duplicate or expanded fixes.
Your OTel spans, our errors: A Sentry love story in one trace
Pointing a standalone OpenTelemetry SDK directly at Sentry ingests spans over standard OTLP, but the spans remain disconnected from Sentry error data. Because the separate SDKs share a process without sharing context, Sentry errors lack active OpenTelemetry trace and span IDs. Sentry introduced OtlpIntegration across backend SDKs including Python, Ruby, Node.js, Go, PHP, .NET, and Java to bridge this gap. The integration reads the active OpenTelemetry context, attaches trace and span identifiers to Sentry events, and configures ingestion. This decoupled model replaces the deeply integrated POTel strategy across most languages, except Java, removing mandatory OpenTelemetry dependencies while maintaining unified trace waterfalls.
Session Replay for Unreal Engine: see the crash before the crash
Crash reports in non-deterministic game environments often lack player context, making callstack-only debugging difficult. Sentry's SDK version 1.16.0 for Unreal Engine introduces Session Replay to continuously record gameplay and attach the final video clip directly to crash reports. The cross-platform recording pipeline hooks into Slate's backbuffer presentation on the render thread, uses engine pixel shaders for format conversion, and feeds frames to hardware H.264 encoders via Unreal's AVCodecs plugins. Encoded fragments are organized in a rolling ring buffer and periodically written to temporary MP4 files that are uploaded alongside crash data. Benchmark results in a 4K demo game showed an overhead of approximately 0.20 ms per frame.
From 57 bugs to 1, thanks to Seer
Software teams frequently defer low-priority bugs to the backlog because manual triage, investigation, and code fixes consume valuable engineering time. To resolve 56 out of 57 backlog bugs, Dan Mindru utilized Sentry telemetry combined with Seer and the hosted Sentry Model Context Protocol server. Sentry captures context including traces, logs, and session replays, allowing Seer to assess fixability scores and generate pull requests with unit tests for isolated issues. For more intricate problems, developers query production breadcrumbs and telemetry directly in their agentic editors while supplying missing historical business logic. Consequently, automated tool calling and agent workflows drastically lowered the economic cost of addressing routine production bugs.
.NET support for Godot is now generally available
Sentry released version 2.0.0 of its Godot Engine SDK, introducing general availability for C# and .NET error reporting alongside application metrics. While earlier 1.x releases captured errors from GDScript, native C and C++ code, and the engine itself, version 2.0.0 captures runtime exceptions from managed C# code on the same trace as engine and GDScript events. The SDK synchronizes scope elements such as tags, breadcrumbs, and user context, while integrating with source control managers like GitHub to fetch surrounding source code frames. Developers can also emit custom metrics over fixed intervals or game events to evaluate performance distributions and gameplay progression. These metrics allow slicing by custom attributes such as CPU and GPU hardware configurations to pinpoint hardware bottlenecks or rebalance game variables.
Topics they write about
All topics →Weekly digest
The best engineering reads, once a week.