What changed? Using Deployment Tracking in RPM

By Posted in Engineering, Product Updates 22 July 2010


Deployment tracking in RPM allows you to quickly see how your application deployments effect your performance. Here is a quick video overview of deployment tracking if you haven’t seen this feature in action before.

There are several ways that you can integrate deployment tracking into your release process. The Ruby gem includes rake tasks that can be easily integrated into Capistrano, or other deployment tools. You can also record deployments with our Java agent which can easily be integrated into any scripted release process.

Tracking Architecture & Business Changes in RPM

With deployment tracking we get a visual indication of when a deployment took place. Every chart displays a vertical line, allowing you to quickly see if a change in performance may have been related to a deploy. What we’re really interested in is tracking a change that may affect our application.

Shipping a new version of code is certainly worth tracking, but what about other changes? If I were upgrading my database software during a maintenance window, I’d love to see a deployment marker drawn so I can see how that affects my queries. If I were to launch a special sales event, where user behavior may change and alter my performance profile, I’d love to see a deployment marker when that sale begins.

Dropping a Line in the Sand : Deployment Tracking from the Command Line

We can submit a “deployment” to RPM from both the Ruby and Java agent via the command line. Since a deployment can have a descriptive revision name and a change log associated to it, we can use those features to add additional information to further clarify what this change involves. Let’s take a look at how we might announce a special sales event in RPM.

Here is a quick example of deployment tracking with the Ruby agent on the command line:

# send event notes in through standard input using the -c flag
# use the sale event name as the revision
cat notes.txt | newrelic_cmd deployments -c -r "Summer Sale Event"

(Command reference for tracking deployments with the Ruby Agent)

The commands for the Java agent are very similar:

cat change.log | java -jar newrelic.jar deployment --changes --revision="Summer Sale Event"

(Command reference for tracking deployments with the Java Agent)

Deployment Tracking in RPM

Deployments show up in the Recent Events section of the main RPM page. We see when the deploy occurred, who deployed it and what the revision was. Here, we’ve indicated that this “deploy” is marking the start of the Summer Sale Event.

When a deployment is within the time window of a graph in RPM, you’ll see a vertical bar showing you exactly when the deploy took place.

The full content of the change log that we passed into this deployment is available in the Change Log tab. Since this content is usually output from a version control system, the text is wrapped in a pre tag.

Start tracking those changes!

Deploy tracking is a really easy way to keep track of changes to your system, and visually identify how they may affect performance.

If you have a Lite or Bronze subscription, you will see deployment lines show up on all time series graphs. When hovering over these lines, information about who deployed is shown. For Silver subscribers, a deployment summary page is shown, listing all deployments along with information about each. For Gold subscribers, the details of a deployment can be drilled into.

Share

About the author

Marketing at Github

Tell us your thoughts Or Send us an internal high five

Talk to @newrelic