Install New Relic Node.js agent in GAE flexible environment

With New Relic APM's Node.js agent, you can monitor applications that reside in the Google App Engine (GAE) flexible environment. Adding New Relic to your GAE flex app gives you insight into the health and performance of your app and extends GAE with metrics you can view in New Relic APM, Browser, and Insights.

This document explains how to add New Relic to your GAE flex app using either of these methods:

Use native deploy

To use Google App Engine's "native mode" installation with your Node.js app:

  1. Follow standard procedures to install New Relic's Node.js agent, including your license key. Be sure to save the newrelic module to the package.json file.
  2. Follow Google App Engine procedures for Node.js to create a new Cloud Platform project, create an App Engine application, and complete other prerequisites for the Google Cloud SDK.
  3. Optional: Set environment variables to configure the Node.js agent's GAE app.yaml file.
  4. Use the Google Cloud SDK's gcloud command line tool to deploy GAE apps. To deploy your Node.js app to your initialized GAE flexible environment, run the following command:

    gcloud --project new-relic-apm-nodejs app deploy

Google App Engine automatically includes your Node.js app's newrelic.js configuration file in the deployed package. Wait until the deployment completes, then view your GAE flex app data in the New Relic APM Overview page.

Build a custom runtime

See Google's documentation for building custom runtimes. This example describes how to add New Relic to your GAE flex app by building a custom runtime for Docker. You can deploy the app without any special configuration.

For more information about deploying and configuring your Node.js app in the GAE flexible environment, see:

1. Set up the GAE project and install dependencies
  1. Follow standard procedures to install New Relic's Node.js agent, including your license key. Be sure to save the newrelic module to the package.json file.
  2. Follow Google App Engine procedures for Node.js to create a new Cloud Platform project, create an App Engine application, and complete other prerequisites for the Google Cloud SDK.

The Google Cloud SDK provides the gcloud command line tool to manage and deploy GAE apps.

2. Configure your app.yaml

The app.yaml configuration file is required for a GAE flexible environment app with a custom runtime. At a minimum, make sure it contains:

runtime: custom
env: flex

Optional: Set environment variables.

3. Configure and deploy

The Dockerfile defines the Docker image to be built and is required for a GAE flexible environment app.

  1. To create the Dockerfile, build the container, and deploy your app, follow the GAE procedures for Node.js.
  2. Wait until the deployment completes.
  3. To view your GAE flex app data in New Relic, go to the New Relic APM Overview page.

Optional: Disable health checks

Google App Engine sends periodic health check requests to confirm that an instance has been successfully deployed, and to check that a running instance maintains a healthy status. A health check is an HTTP request to the URL /_ah/health.

If you create a custom runtime, your app must be able to handle a large number of health check requests. Otherwise, your app data may not display correctly in New Relic APM.

If you notice performance issues, disable GAE health checks. In your app.yaml, add:

health_check:
  enable_health_check: False

Get New Relic agent troubleshooting logs from GAE

Use these resources to troubleshoot your GAE flex environment app:

For more help

Recommendations for learning more: