With New Relic'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 APM and browser monitoring.
This document explains how to add New Relic to your GAE flex app using either of these methods:
- Google App Engine's "native mode" installation with a standard GAE runtime
- Docker installation using a custom runtime
Use native deploy
To use Google App Engine's "native mode" installation with your Node.js app:
- Follow standard procedures to install New Relic's Node.js agent, including your license key. Be sure to save the
newrelic
module to thepackage.json
file. - 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.
- Optional: Set environment variables to configure the Node.js agent's GAE
app.yaml
file. -
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 APM Summary 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:
- Google App Engine's documentation for Node.js
- Google App Engine's tutorial to deploy a Node.js app
- 1. Set up the GAE project and install dependencies
-
- Follow standard procedures to install New Relic's Node.js agent, including your license key. Be sure to save the
newrelic
module to thepackage.json
file. - 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. - Follow standard procedures to install New Relic's Node.js agent, including your license key. Be sure to save the
- 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.
- To create the Dockerfile, build the container, and deploy your app, follow the GAE procedures for Node.js.
- Wait until the deployment completes.
- To view your GAE flex app data in New Relic, go to the APM Summary 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:
- To connect to the GAE instance and start a shell in the Docker container running your code, see Debugging an instance.
-
To redirect New Relic Node.js agent logs to Stackdriver in the Cloud Platform Console, change the
newrelic.js
configuration file to:log_file_name: STDOUT
- To view the logs, use the Cloud Platform Console's Log Viewer.