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

    • Monitor and validate DNS IP changes using regex

      DNS administrators often monitor their DNS servers to detect changes in domain resolution and ensure IP mappings remain secure and accurate. Problem When your organization adds or modifies an IP address for your domain name, it’s critical to: Be ...
    • Accessing products via Site24x7

      You can seamlessly access ManageEngine CloudSpend and Site24x7’s sub-products, like Digital Risk Analyzer, StatusIQ, and Toolset, from within your Site24x7 web client. The product switcher , available at the top-right corner of the interface, lets ...
    • How do I check if URL redirection works correctly using the Website Monitor?

      A webpage can be made available from more than a single web address using URL redirection. Most redirects are automated and it becomes difficult to track if the redirection works in a specific way. This can be verified using website monitoring in ...
    • Validating sender email using DKIM authentication

      What is DKIM? DomainKeys Identified Mail (DKIM) is an advanced authentication method used widely by email service providers to verify the email from the point of its origin by validating the email sender. It allows the email senders to authenticate ...
    • Compare our various methodologies for Website Monitoring

      Get to know Site24x7 monitors better and choose the one that best fits your monitoring needs. Compare the functionality of the following monitors: Website Monitoring Webpage Speed (Browser) Web Transaction Monitoring Web Transaction (Browser) SSL/TLS ...