Node.js APM with AWS Fargate
  • 23 Jun 2020
  • 1 Minute To Read
  • Contributors
  • Print
  • Share
  • Dark
    Light

Node.js APM with AWS Fargate

  • Print
  • Share
  • Dark
    Light

This document details how to install the Node.js APM Profiler in your Node.js application running on AWS Fargate.

Stackify supports AWS Fargate by adding our Retrace Container to your AWS Fargate tasks.

aws-fargage-diagram

The configuration is in two parts; adjusting your Dockerfile config to include the appropriate Stackify profiler and then adjusting task/container definition configuration in AWS Fargate. The configuration details are provided below in JSON samples.

Node.js Application Setup

Add Stackify APM Module

Add the Stackify APM module to each application to monitor.

npm install stackify-node-apm --save

Configure Application

Copy node_modules/stackify-node-apm/stackify.js into your application's root directory and modify Application Name and Environment Name.

Initialize Profiler

Add require('stackify-node-apm') to the top of your application's main module.

Task Configuration

  1. Add the stackify volume to the task definition:
{
  "volumes": [
    {
      "name": "stackify"
    }
  ]
}
  1. Add the stackify-retrace container to the task definition:
{
 "containerDefinitions": [
   {
     "name": "stackify-retrace",
     "image": "stackify/retrace:latest",
     "memoryReservation": "512",
     "essential": true,
     "environment": [
       {
         "name": "STACKIFY_KEY",
         "value": "[YOUR_ACTIVATION_KEY]"
       },
       {
         "name": "STACKIFY_ENV",
         "value": "[YOUR_ENVIRONMENT_NAME]"
       }, 
        {
         "name": "STACKIFY_DEVICE_ALIAS",
         "value": "AWS Fargate"
       }
     ],
     "mountPoints": [
       {
         "sourceVolume": "stackify",
         "containerPath": "/var/stackify"
       }
     ]
   }
 ]
}

Note: Replace [YOUR_ACTIVATION_KEY] and [YOUR_ENVIRONMENT_NAME].
Use Image stackify/retrace-arm64 if running on an ARM processor.

  1. Add stackify mount points to your application container definition:
{
  "containerDefinitions": [
    {
      "mountPoints": [
        {
          "sourceVolume": "stackify",
          "containerPath": "/usr/local/stackify"
        }
      ]
    }
  ]
}

Verify

Start up your Node.js application task and make requests. You can then verify results in the Retrace dashboard.

Server Metrics Notice
Server metrics are not provided with AWS Fargate. A server named AWS Fargate will be created but will not contain metrics.
Was This Article Helpful?