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 →

 

Your Rails & Elixir performance metrics 📈 inside Chrome Dev Tools

BY Doug Breaker

Browser development tools - like Chrome Dev Tools - are vital for debugging client-side performance issues. However, server-side performance metrics have been outside the browser's reach. That changes with the Server Timing API . Supported by Chrome 65+, Firefox 59+, and more browsers, the Server Timing API defines a spec ...

Read More →

 

Scout's top-secret 4-point observability plan

BY Doug Breaker

Observability: the degree to which you can ask new questions of your system without having to ship new code or gather new data. Above is my slightly modified definition of observability, mostly stolen from Charity Majors in Observability: A Manifesto . Observability is increasingly important . Modern apps and services ...

Read More →

 

Django & Flask Performance Monitoring

BY Doug Breaker

7/31/18 Update: See how Scout monitors a real-world Django app , tracking SQL queries, deploys, slow requests, and more. GitHub's State of the Octoverse 2017 revealed that Python is now the second-most popular language on GitHub, with 40 percent more pull requests opened in 2017. We couldn't help but notice. ...

Read More →

 

Rollbar+Scout: a legit New Relic alternative

BY Doug Breaker

The New Relic price tag goes up dramatically as your server footprint grows. This might not be an issue if you are utilizing New Relic's full product suite, but what if you just care about error and performance monitoring? In that case, there's a solution that offers richer features as ...

Read More →

 

Setting up a Rails app for CodeBuild, CodeDeploy, and CodePipeline on AWS

BY Doug Breaker

If you've followed along with our previous episodes, we've covered many different aspects of setting up a production service. We've used many different products to simplify the day-to-day operations of running and maintaining an application. We've used Scout for monitoring our application, LogDNA for aggregating our logs, HoneyBadger for our ...

Read More →