Fort Collins, CO, USA
2008
  |  By Scout APM
If your Grape API calls error! inside an Active Record transaction, the client gets an error response and the database keeps the writes. No exception, no warning, no rollback. The request looks failed from the outside and succeeded on the inside. A fix merged into Grape on October 3 and is queued for Grape 4.1.0. It’s not released yet, so every current Grape version still behaves this way. Here’s why it happens, how to check whether you’re affected, and what changes when 4.1 ships.
  |  By Mitchell Hartweg
The standard fix for an N+1 query in SQLAlchemy is to eager load the relationship with selectinload(). On SQLAlchemy 2.1.0 and 2.1.1, that fix can change your results. A regression in those two releases makes selectinload() ignore part of the join condition on some many-to-many relationships. The query gets faster, and it also returns related rows that the relationship was defined to exclude. It’s fixed in 2.1.2, released October 2.
  |  By Scout APM
FastAPI 0.142.0 ships with OpenTelemetry built in. Install fastapi, set one environment variable, and every request produces a trace, metrics, and error logs. No middleware, no instrumentation package, no code. That’s a big change for a framework most Python teams instrument by hand. It’s also easy to misread. The defaults record more than some teams expect in one place, and less than others assume in another. Here’s what you actually get.
  |  By Scout APM
Your AI coding agent can read your code, run your tests, and open a pull request. Until recently it could not see what that code does in production. MCP servers from monitoring vendors close that gap. Connect one, and Claude Code, Cursor, or Copilot can pull the error, the trace, and the slow query behind a bug report without you copying anything out of a dashboard. Most major monitoring vendors now offer an official MCP server. But they aren’t interchangeable. Some only expose errors.
  |  By Scout APM
A bot requests /wp-login.php on your Rails app. Rails can’t route it, raises ActionController::RoutingError, and returns a 404. That should cost almost nothing. On a Rails 8.1 app with a few thousand compiled templates, it can cost 13 MB of allocations and 27 ms of CPU. A detailed report on rails/rails#58887 traces the cost to one method, ActionDispatch::ExceptionWrapper#build_backtrace.
  |  By Mitchell Hartweg
If you’re running FastAPI, you’re running Starlette underneath it, whether you think about it or not. At Scout, we spend a lot of time thinking about what happens at that ASGI layer, since that’s exactly where our Python agent hooks in to give you request-level visibility. Starlette 1.7.0 just landed, and it’s a release worth reading closely if you care about tracing, routing, or just keeping your app running on a supported dependency chain.
  |  By Mitchell Hartweg
A patch release that never says the word “security” just closed four real security gaps in Mongoid. If your Rails app runs on MongoDB, 7.6.2 is the kind of release that’s easy to auto-merge and easy to regret not reading first.
  |  By Scout APM
If your app pins openai in requirements or a lockfile, read this before you bump the version, not after something breaks.
  |  By Aspen Clevenger
You set a threshold alert on a checkout endpoint at 500ms. It pages you every Monday at 9am, when traffic doubles and nothing is actually wrong. You raise the threshold to 800ms to make the noise stop. Three weeks later a real regression creeps in at 650ms, and nobody gets paged, because you tuned the alert to survive Mondays instead of to catch problems.
  |  By Jack Rothrock
You’ve watched Claude Code compact a conversation. The context bar fills, it pauses, a summary appears, and it carries on like nothing happened. You probably assumed a housekeeping script trimmed the transcript in the background. It didn’t. The model compacted itself. When the window fills, Claude Code sends a long, specific prompt telling the model how to summarize its own conversation. Then it does, same model, same turn. The thing managing your context window is just another instruction.
  |  By Scout
3 Key Benefits of switching to ScoutAPM over New Relic n+1 queries, Memory Bloat tabs show you easy performance enhancements.
  |  By Scout
Keeping an eye on our app’s performance through monitoring.
  |  By Scout
A short demo of Scout's database monitoring addon.

Monitoring for the modern development team.

No developer ever said "I hope I get to spend all day hunting down a performance issue". When the unavoidable happens, The Scout platform is focused on finding the root cause of performance problems as quickly as possible.

Scout is monitoring for fast-moving dev teams like us. We leverage the tools that help us get big things done - Github, PaaS services, dynamic languages, frequent releases - to build a tailored monitoring platform for modern teams.

Scout continually tracks down N+1 database queries, sources of memory bloat, performance abnormalities, and more.

Get back to coding with Scout.