Automatically Label Code Changes in New Relic®; Performance Monitoring using Quicksilver Hooks
A guide to integrating Pantheon and New Relic®; Performance Monitoring for deployment labeling.
Contributors: Scott Massey.
Discuss in our Forum Discuss in SlackNew Relic® Performance Monitoring is a powerful tool for monitoring the performance of a WordPress or Drupal site. It provides insight into how efficiently a website is using resources, and where improvements can be made in the application. Pantheon offers New Relic® Pro within the Site Dashboard on all sites for free.
In this guide, we'll automatically label code changes to your site in New Relic®'s Deployment page using Pantheon's Quicksilver hooks and Terminus. This creates a traceable connection between performance changes and code deployments, allowing developers to see if a code change positively or negatively impacted performance.
Activate New Relic® Performance Monitoring Pro
Follow the instructions at New Relic APM Pro to activate New Relic® Performance Monitoring for your site.
Configure Quicksilver Hook to Record Deployments
Next, we'll use Pantheon's Quicksilver hooks to run our example New Relic script immediately after code is synced on Dev or a Multidev environment and after code is deployed to Test and Live. The script configured in this guide applies a label to the Deployment page in New Relic.
Variables
This process uses Terminus commands that require your site name. Before we begin, set the variable $site in your terminal session to match your site name:
export site=yoursitenameIf you haven't done so already, clone your Pantheon site repository and navigate to the project's root directory. You can use Terminus to provide the clone command:
terminus connection:info $site.dev --fields='Git Command' --format=string git clone ssh://codeserver.dev.2187...d85b@codeserver.dev.2187...d85b.drush.in:2222/~/repository.git sitenameAfter you copy and run the output command, change directory to the site code root:
cd $siteSet the connection mode to Git:
terminus connection:set $site.dev gitCreate a copy of Pantheon's
new_relic_deploy.phpscript in the project's private path:mkdir -p private/scripts curl https://raw.githubusercontent.com/pantheon-systems/quicksilver-examples/master/new_relic_deploy/new_relic_deploy.php --output ./private/scripts/new_relic_deploy.phpCreate a
pantheon.ymlfile if one doesn't already exist in your root directory.Paste the following workflow into your
pantheon.ymlfile to hook into the platform after code is synced on Dev/Multidev and deployed to Test/Live to fire off the New Relic integration script:pantheon.ymlapi_version: 1 workflows: # Log to New Relic when deploying to test or live. deploy: after: - type: webphp description: Log to New Relic script: private/scripts/new_relic_deploy.php # Also log sync_code so you can track new code going into dev/multidev. sync_code: after: - type: webphp description: Log to New Relic script: private/scripts/new_relic_deploy.phpNote
api_versionshould be set once inpantheon.yml. If you have an existingpantheon.ymlwith this line, don't add it again.Add, commit, and push changes to the Dev environment:
git add private/scripts/new_relic_deploy.php git commit -am "Adding deployment recording to New Relic" git push origin masterIn the terminal, you should see that your
pantheon.ymlfile is being applied. Even this initial code push should appear in your Dev environment's New Relic account, on the Deployments tab:
Once you've tested and confirmed there are no issues, deploy your new commit to Test and Live. From now on, your deploys will be recorded in New Relic® Performance Monitoring.
Conclusion
This is a fast way to integrate New Relic® Performance Monitoring and Pantheon. The Quicksilver Examples repository provides many more ways to automate development, so please take advantage of them and extend them to fit your workflow.