New RPM Ruby Agent Includes Enhanced Visibility into External Services 

20 November 2009 at 3:58 pm | In News, Product Update, Rails | Leave a Comment

We are pleased to announce the release of RPM Ruby agent version 2.9.8. Available now, this version includes a major enhancement for Rails applications that communicate with external services. With this release, we’ve instrumented HTTP calls made through the Ruby Net :: HTTP API, allowing you to determine how much time is spent making calls to remote services. This in turn, makes it easier to pinpoint performance issues as well as measure and enforce SLAs with third parties. The following screenshots illustrate how this new feature works.

In the Application Overview you can see the amount of time your actions are spending waiting on external or remote services:

Application Overview showing External Services

Application Overview showing External Services

Additionally, in the Web Transactions breakdown you can now see the amount of time spent in external services on a per-action basis, broken out by service and remote server:

Web Transactions detail view of External Services

Web Transaction detail view of External Services

Finally, in Transaction Traces you can now see where remote calls are being made, by whom, and to what remote servers:

Transaction Trace showing External Services

Transaction Trace showing External Services

With added visibility into External services, RPM’s V2 interface gives you even more valuable data to help you ensure superior scalability and user experiences.

Upgrade your agent today.

Refer to this support document for details on updating the gem or plugin.

On the Edge, Part 3 – New RailsLab Episode in our Scaling Rails series reviews plugins for reducing app workload

20 November 2009 at 11:25 am | In Cloud Computing, Performance Tuning, Rails, RailsLab, Tutorials | Leave a Comment

Scaling Rails: "On The Edge" Pt. 3Gregg Pollack’s third installment of “On the Edge” is now available on RailsLab as part of the Scaling Rails series. In this episode, Gregg takes a look at three more Ruby libraries to help scale your Rails apps. First up is ‘rubber,’ a Capistrano/Rails plugin that makes it easier to deploy, manage and scale to Amazon EC2. After installing the plugin, just run the ‘vulcanize’ command to specify what components you want inside your EC2 instances. You can use templates such as the ‘complete_passenger_mysql’ cluster, create custom templates, or specify individual components. The vulcanize command creates a rubber directory inside your config directory that contains deploy info (Capistrano tasks) and configuration files. Once these config files are generated and your EC2 credentials are set, you can run Capistrano commands, which can actually instantiate EC2 instances–i.e. configure and deploy clusters. Gregg finishes with a description of the specific benefits of rubber compared to other tools.

Next is ‘cloud-crowd,’ which allows you to manage parallel processing through background jobs. The folks over at Document Cloud are creating an app that will allow you to upload docs such as PDFs and make them viewable and searchable. But how to quickly parse through a PDF and get that information online? They used cloud-crowd. A job is submitted to a central server, which dispatches work to different nodes. Each nodes has processes that complete their job and saves files to S3 (Amazon Simple Storage Service), then tells the central server when they’re done. The server tells the web app the job is complete, then the app fetches the data. That’s the anatomy of a cloud-crowd cluster. Gregg gives a demo and shows just how easy it is to use this plugin. Plus, it’s simple and purposely hackable so that it can easily be customized.

Lastly, Gregg introduces a program for managing email subscriptions and dealing with client requests. ‘MadMimi’ is a Rails-based email app that lets you easily schedule and track emails, as well as add or remove users to a mail list individually or in bulk. When it comes to change requests from your client (they want to change the email template for example), MadMimi let’s you store a bunch of email templates for anytime use. And you can use it to send emails from your Rails app. MadMimi provides a gem that allows you to write code that specifies the user mailer, the ‘to’ field, the ‘from’ field, the subject line, and the promotion name. You just send out a delivery command and MadMimi takes care of the rest. Now you’ve offloaded your emails to a web service, freeing your server from the task. It even supports dynamic content that you can program in and send to MadMimi, which in turn populates it inside each email.

Additional Resources

RailsLab on iTunes
Don’t forget to subscribe to the RailsLab podcast on iTunes where you’ll find the Scaling Rails series as well as our other RailsLab episodes. Download one, or the whole series and play them on your iPhone or computer.

On the Edge, Part 2 – New RailsLab episode in our Scaling Rails series shows plugins for detecting memory bloat

13 November 2009 at 9:21 am | In Performance Tuning, Rails, RailsLab, Tutorials | Leave a Comment

A new Scaling Rails episode is up on RailsLab. Gregg Pollack is back with part 2 in a three part series called “On the Edge,” in which he looks at some new libraries for scaling Rails. In this episode, Gregg takes a look at some Rails plugins designed to help prevent memory bloat. What is memory bloat? Gregg recommends taking a look at a recent post by Sudara Williams on the Engine Yard blog to learn about the difference between a memory leak and memory bloat. The first tool for preventing bloat is ‘rack-bug,’ a debugging toolbar for Rack apps implemented by middleware. After a tiny bit of configuration, the plugin is ready to use for checking variables such as response time for an action, and total CPU time; environment variables such as session and cookies; the queries the action ran and how they were triggered; how many Active Record objects were instantiated for the action; as well as what caching was used, and what templates were used. Finally, it shows how much RAM is used and the delta between the time the request came in and was completed.

The next plugin, ‘memorylogic,’ adds process ID and memory usage to your Rails logs. After you install the plugin, when you look at your log files you can see the memory usage at each step of a process. If you see a dramatic increase at a particular step, then you have a pretty good clue as to where memory bloat is occurring. It also shows overall memory usage and the process ID. The last library Gregg shows us is ‘oink.’ This plugin parses logs to help you find actions that cause an increase in VM heap size by taking the ‘memorylogic’ gem and adding additional information. It helps you determine which part of your application is the biggest memory hog. In the log the plugin shows you the instantiation breakdown, so you can see places where there might be too many objects called. The oink plugin also shows server metrics such as memory threshold, and presents the worst requests. Then it aggregates them all so you can see which index actions are increasing memory the most. This way, you can determine which methods are causing memory bloat and understand where you need to optimize.

Additional Resources

RailsLab on iTunes
Don’t forget to subscribe to the RailsLab podcast on iTunes where you’ll find the Scaling Rails series as well as our other RailsLab episodes. Download one, or the whole series and play them on your iPhone or computer.

IT ops teams should adopt Agile practices to match dev teams. See why at our live webcast on Nov. 19 at 11 am PT

10 November 2009 at 12:08 pm | In Agile, Cloud Computing, Events, RPM in the News | Leave a Comment

Live Webcast: “Agile IT: A Better Approach to Application Development, Deployment, and Management”
When: November 19, 11:00 am PT/14:00 pm ET
Speakers: Julie Craig, analyst, EMA; Ward Cunningham, CTO, AboutUs.org; Mike Malloy, vp marketing, New Relic
Registration: http://www.enterprisemanagement.com/newrelic

EMA_logoAgile development and Cloud computing are enabling application development teams to become faster, more responsive, and more cost efficient. However, these development teams often finish their new web applications in record time only to wait weeks to go into production. In this one-hour webcast, the speakers will propose that IT operations adopt Agile techniques to ensure better collaboration with application development teams, improve time-to-market for business-critical systems, and keep pace with rapidly-changing market conditions.

logo-AboutUsJoin us for a live webcast titled “Agile IT: A Better Approach to Application Development, Deployment, and Management” and find out how IT Operations teams can benefit from Agile practices. The live event will be held on November 19 at 11:00 Pacific Time/14:00 Eastern Time. Speakers include veteran industry analyst Julie Craig of Enterprise Management Associates and Ward Cunningham, CTO of AboutUs.org and co-author of “The Agile Manifesto.” They are joined by Mike Malloy, vice president of marketing at New Relic.

Attendees will learn:

•How some organizations are moving new business software features into production in days, not months.
•How Operations and Applications teams can work together to form an “agile alliance.”
•How the on-demand SaaS model, which has transformed business applications, is now poised to change IT application management as well.
•How Cloud-based application management improves your team’s agility and cost effectiveness—but also demands a new approach to application management and support.

Register today for “Agile IT: A Better Approach to Application Development, Deployment, and Management” on Thursday November 19, 11 a.m. PST/ 14:00 p.m. EST.

On the Edge, Part 1 – New RailsLab Episode in our Scaling Rails series introduces three ActiveRecord plugins

5 November 2009 at 2:38 pm | In Agile, Cloud Computing, Performance Tuning, Rails, RailsLab | Leave a Comment

On RailsLab we’ve just posted a new episode in the Scaling Rails series. In Episode 19, the first of a three-part series titled “On the Edge,” Gregg Pollack discusses three ActiveRecord plugins for database optimization. The first, Bullet, helps you reduce the number of ActiveRecord queries in your application by giving you alerts/notifications. Gregg takes us though specific examples of how a Bullet notification can lead you to take some relatively simple steps for database optimization.

Next, Gregg looks at Rails Indexes, a new tool that uses Rake tasks to, you guessed it, find missing Rails indexes. He shows us how to install the plugin and run the first Rake task, which finds all the models, looks at the relationship between them, and then looks at the database to see if there are any missing indexes. It then generates a migration. The second Rake task looks for the find method in the application and recommends indexes. Lastly, Gregg demonstrates Scrooge, a SQL query optimizer. By discovering columns in a table that aren’t being used in a particular view, Scrooge can identify places where your database queries are casting strings unnecessarily. After installing Scrooge, when you refresh the page the query only casts for only the columns needed in that view. Now you can optimize your SQL queries without having to change a single line of code.

Additional Resources

RailsLab on iTunes

Don’t forget to subscribe to the RailsLab podcast on iTunes where you’ll find the Scaling Rails series as well as our other RailsLab episodes. Download one, or the whole series and play them on your iPhone or computer.

Next Page »

Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.