APM Insight integration for Next.js in Kubernetes
To integrate the Site24x7 APM Insight Next.js agent into your Kubernetes application using initContainers with the prebuilt agent image, follow the steps below:
Prerequisites
- A Next.js application container image
- The Site24x7 APM Insight license key
- The application name and application port details
Integration steps
Step 1: Create an empty volume
Create and define an empty volume that will be used to copy the agent files during the initContainers process:
- volumes:
- - name: agent-volume
- emptyDir: {}
Step 2: Add initContainers to copy agent files
To configure your deployment, add the following initContainers specification to your Helm chart or deployment YAML file:
- initContainers:
- - name: init-apm
- image: site24x7/apminsight-nextjsagent:1.2.0
- imagePullPolicy: Always
- command: ['cp', '-r', '/opt/site24x7/.', '/apm']
- volumeMounts:
- - name: agent-volume
- mountPath: /apm
Step 3: Mount the volume in the application container
Mount the volume created in step 2 into your application container.
Example
- containers:
- env:
- - name: NODE_OPTIONS
- value: "--require /apm/node_modules/@apminsight/next"
- - name: APMINSIGHT_LICENSE_KEY
- value: "xxxxxxxxxxxxxxxx"
- - name: APMINSIGHT_APP_NAME
- value: "k8s-nextjs-application"
- - name: APMINSIGHT_APP_PORT
- value: "3001"
- volumeMounts:
- - name: agent-volume
- mountPath: /apm

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 file:
- - name: APMINSIGHT_PROCESS_MANAGER
- value: "true"
Example
Here's a sample YAML deployment file:
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- name: nextjs-app
- namespace: nextjs
- labels:
- app: nextjs-app
- version: v1
- spec:
- replicas: 1
- selector:
- matchLabels:
- app: nextjs-app
- template:
- metadata:
- labels:
- app: nextjs-app
- version: v1
- spec:
- initContainers:
- - name: init-apm
- image: site24x7/apminsight-nextjsagent:1.2.0
- imagePullPolicy: Always
- command: ['cp', '-r', '/opt/site24x7/.', '/apm']
- volumeMounts:
- - name: agent-volume
- mountPath: /apm
- containers:
- - name: nextjs-app
- image: nextjs-sampleapp:latest
- ports:
- - containerPort: 3001
- name: http
- env:
- - name: NODE_OPTIONS
- value: "--require /apm/node_modules/@apminsight/next"
- - name: APMINSIGHT_LICENSE_KEY
- value: "xxxxxxxxxxxxxxxx"
- - name: APMINSIGHT_APP_NAME
- value: "k8s-nextjs-application"
- - name: APMINSIGHT_APP_PORT
- value: "3001"
- imagePullPolicy: Always
- volumeMounts:
- - name: agent-volume
- mountPath: /apm
- volumes:
- - name: agent-volume
- emptyDir: {}
- restartPolicy: Always
Related Articles
Troubleshooting false positive alerts in monitoring
Problem False positive alerts are being generated. Possible cause The monitoring system is down in some locations. The Website monitor might be configured for one location, such as Seattle, but may appear down when accessed from another location, ...
How to configure the NGINX status page for monitoring NGINX performance
The NGINX plugin uses the NGINX status page to pull the performance metrics of the NGINX server. You may encounter the following errors while installing the NGINX plugin integration: Error_code : HTTP Error 404: This error usually indicates that the ...
Site24x7 Real User Monitoring (RUM) - Data Collection
When you include Site24x7 RUM beacon script in your web pages, the following data is collected. All data that's being collected is in accordance with GDPR compliance. Performance details of web page load time - Metrics like response time of web page ...
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 ...