The last 3,650 days of my professional life have been focused on making Rails apps faster. Below are five lessons I've learned the hard way.
The latest release (0.3.0) of Scout's Elixir APM package adds the ability to monitor GenServer calls. What is GenServer and how do you monitor it?
A year ago, our team started playing with Elixir. We liked it - a lot. In fact, it's the first language we've used since Ruby that we'd unanimously love to build web apps with.
With that, we're excited to announce BETA support for Elixir app monitoring @ Scout. Get started for free.
Elixir is a language that any developer should be paying attention to. It can do things traditional object-orientated languages can't. It's very performant for a developer-friendly language. It has mind-blowing concurrency. With those traits, Elixir joins Ruby as an officially supported language at Scout.
The road ahead
We're focusing on monitoring Phoenix apps to start, but our roadmap has plans for non-Phoenix Elixir apps as well. You'll get detailed metrics and traces on your controllers, views, templates, and Ecto queries today. You can easily add your own custom instrumentation for libraries we don't cover yet. Lots more is planned: a developer profiler, monitoring background job libraries like Exq, monitoring Tasks, and more.
We believe Elixir adoption is nearing an inflection point. We'll be moving quickly to support key libraries as the Elixir ecoystem evolves.
Get started on our free plan
Our free plan provides detailed metrics for Elixir apps large and small. There's no reason for an Elixist to go without monitoring.
Questions? Ping us at email@example.com. In your return for your feedback, we'll give you one of our free, wonderfully soft Scout t-shirts.
PS - we've been writing about Elixir on Medium. Here's some of the content from our team:
We've added one of the top feature requets to app monitoring: alerting.
Alerting keeps your team updated if your app’s performance degrades. Alerts can be configured on the app as a whole and on individual endpoints. Metrics include:
- mean response time
- 95th percentile response time
- error rate
Along with a couple other members of the Scout team, I'm heading to sunny Phoenix, Arizona in mid-April for RailsConf. I'm a performance addict, so I've been scanning through the sessions and making notes of the ones that stand out.
My performance short-list is below.
When I do a code review, one of the scariest things I see is logic like this:
if Rails.env.production? do_additional_work end
Why? Your beautiful tests and tightly integrated CI system won't execute that code. You won't see that code execute as you refresh your browser in development. From syntax errors to misspelled referenced classes, you'll be blind on exceptions...until you deploy to production.