How to add APM Insight Node.js agent in Kubernetes via InitContainers?

Add Node.js agent in Kubernetes via InitContainers (using prebuilt agent image)

To integrate the APM Insight Node.js agent into your Kubernetes applications using InitContainers, follow the steps given below:

Step 1:
Create an empty volume that will be used to copy the agent files during the initContainers process.
Example:
  1. volumes:
  2.    - name: app-volume

Step 2:

Include the following initContainers command in your helm chart/deployment YAML file.
  1. initContainers:
  2.       - name: init-npm
  3.         image: site24x7/apminsight-nodejsagent:4.8.0
  4.         imagePullPolicy: IfNotPresent
  5.         command: ['cp', '-r', '/opt/site24x7/.', '/apm']
  6.         volumeMounts:
  7.   - name: app-volume
  8.     mountPath: /apm

Step 3:

Mount the volume created in step 2 into your application container.
Example:
  1. containers:
  2.           env:
  3.             - name: NODE_OPTIONS
  4.               value: "--require /apm/node_modules/apminsight"
  5.             - name: APMINSIGHT_LICENSE_KEY
  6.               value: "<license-key>"
  7.             - name: APMINSIGHT_APP_NAME
  8.               value: "<application-name>"
  9.             - name: APMINSIGHT_APP_PORT
  10.               value: "<application-port>"
  11.          volumeMounts:
  12.             - mountPath: /apm   
  13.         name: app-volume 

Notes
​For applications using the PM2 process manager instead of Kubernetes, enable PM2 support by adding the following in the env section of your deployment YAML:
  1. ​- name: APMINSIGHT_PROCESS_MANAGER
  2.   value: "true"

Example YAML deployment file for your reference:
  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4.   name: sample-deployment
  5. spec:
  6.   replicas: 1
  7.   selector:
  8.     matchLabels:
  9.       app: sample-app
  10.   template:
  11.     metadata:
  12.       labels:
  13.         app: sample-app
  14.     spec:
  15.       initContainers:
  16.       - name: init-npm
  17.         image: site24x7/apminsight-nodejsagent:4.8.0
  18.         imagePullPolicy: IfNotPresent
  19.         command: ['cp', '-r', '/opt/site24x7/.', '/apm']
  20.         volumeMounts:
  21.              - name: app-volume
  22.                 mountPath: /apm

  23.       containers:
  24.         - name: main-container
  25.           image: myrepository/sample-nodejs-app:latest
  26.           env:
  27.             - name: NODE_OPTIONS
  28.               value: "--require /apm/node_modules/apminsight"
  29.             - name: APMINSIGHT_LICENSE_KEY
  30.               value: "<license-key>"
  31.             - name: APMINSIGHT_APP_NAME
  32.               value: "<application-name>"
  33.             - name: APMINSIGHT_APP_PORT
  34.               value: "<application-port>"
  35.           volumeMounts:
  36.             - mountPath: /apm   
  37.               name: app-volume
  38.       volumes:
  39.          - name: app-volume 
  40.       emptyDir: {}

    • Related Articles

    • Adding APM Insight Java agent in Kubernetes via InitContainers

      Step 1: Create a secret for the Site24x7 license key in your application namespace. You can obtain the license key from your site24x7 account by navigating to Admin > Developer > Device Key. Example: kubectl create secret generic app-secret ...
    • How to deploy the Site24x7 PHP agent in a Kubernetes environment?

      For PHP version 7.0 and above The PHP agent (PHP version 7.0 and above) can be deployed in a Kubernetes environment using any of the following methods. You can also keep the license keys in a configmap to avoid using them in the deployment files. ...
    • Prerequisites for Node.js agent installation

      For a smooth Node.js agent installation, ensure that you've fulfilled the following prerequisites. The environment should have node version 16.20.2 or above installed. The application user should have full permission to access the agent directory. ...
    • Managing Node.js applications using PM2 Process Manager

      Configure PM2 to manage standalone applications Follow the instructions below to configure PM2 to manage Node.js applications. Steps to configure PM2 Configure the processManagerEnabled key in the already created apminsightnode.json file. Pass the ...
    • How to enable Kubernetes monitoring on clusters that have arm-based nodes

      If you would like to add a Kubernetes monitor for your clusters that have arm-based nodes, ensure that you have followed the steps below: Download the latest site24x7-agent.yaml file from the Site24x7 web console. Replace the image name ...
    OSZAR »