Ruby Agent 2.4.21 is out with a bug fix, a new configuration option, and a debug option

BY Derek Haynes

App & Background Integration Installation As reported on Issue #228, if scout_apm is disabled on a node via the configuration monitor = false, we don't intend to install any instruments, but a few snuck in anyway.

Read More →

 

Upgraded Ecto logging hooks to Telemetry in new Agent 0.4.8

BY Derek Haynes

Recently the Ecto library released a major update - Version 3.0. As part of the changes, some of the hooks that Scout relied on to capture data have changed. No longer can we hook into Ecto's logging system to extract information about queries being run, and instead we have a proper Telemetry event to listen to.

Read More →

 
1iww0ptxtyngwdjkdpew

Scout Visits Cookpad in Japan

BY Yuga Koda

The Tokyo Scout team attended Rails Tokyo #37 , a Rails focused get-together that is open to any Rails topic. It was hosted at the Cookpad office in Tokyo, which has some of the best Rails engineers in Japan. In this large open area there were tables, a screen for ...

Read More →

 

Birds of a Fiber: A look at Falcon, a modern asynchronous web server for Ruby

BY Derek Haynes

What is Falcon? The GitHub Readme describes Falcon as, "... *a multi-process, multi-fiber rack-compatible HTTP server ... Each request is executed within a lightweight fiber and can block on up-stream requests without stalling the entire server process."* The gist: Falcon aims to increase throughput of web applications by using Ruby’s Fibers to be able to continue serving requests while other requests are waiting on IO (ActiveRecord queries, network requests, file read/write, etc).

Read More →

 

Monitor a Django app with Scout

BY Doug Breaker

In this post, I'll show how to setup Scout to monitor the performance of SQL queries, external HTTP calls, template rendering, and more in Wagtail , a Django CMS app. Wagtail is a fast, modern opensource content management system built on Django. Used at NASA, Google, MIT, and more, it's ...

Read More →

 

Monitoring Django apps on Heroku

BY Doug Breaker

I don't know of an easier way to deploy a Django app than letting Heroku do the work. That said, how do you stay on top of your app's performance, errors, and stability post-launch? Running an app on Heroku is a blissful experience, but it presents some monitoring challenges that ...

Read More →

 

Part I: How not to structure your database-backed web apps

BY Doug Breaker

Most scientific papers are unlikely to change your day-to-day approach as a Rails web developer. How not to structure your database-backed web applications: a study of performance bugs in the wild Yang et al., ICSE'18 is the exception to that rule. This study examined 12 popular, mature, opensource Rails apps ...

Read More →

 

Finding slow ActiveRecord queries with Scout

BY Doug Breaker

Once your Rails app begins seeing consistent traffic, slow SQL queries will likely rear their ugly head. Simple things like using find_by_sql can make a big improvement, but how can you easily tell where your app is slowing down? While PostgreSQL and MySQL can log slow queries, it's difficult to ...

Read More →

 

Finding and fixing N+1 queries in Django apps

BY Doug Breaker

The Django ORM makes it easy to fetch data, but there's a downside: it's easy to write inefficient queries as the number of records in your database grows. One area where the ease of writing queries can bite is you is with N+1 queries ( Rails N+1 queries can kill ...

Read More →

 

Why put Rust in our Python Monitoring agent?

BY Doug Breaker

Prior to adding Python performance monitoring , we'd written monitoring agents for Ruby and Elixir . Our Ruby and Elixir agents had duplicated much of their code between them, and we didn't want to add a third copy of the agent-plumbing code. The overlapping code included things like JSON payload ...

Read More →