Start Monitoring Your Node.js Web Application
With Azure Application Insights, you can easily monitor your web application for availability, performance, and usage. You can also quickly identify and diagnose errors in your application without waiting for a user to report them. With the version 0.20 SDK release onward, you can monitor common third-party packages, including MongoDB, MySQL, and Redis.
This quickstart guides you through adding the version 0.22 Application Insights SDK for Node.js to an existing Node.js web application.
To complete this quickstart:
- You need an Azure Subscription and an existing Node.js web application.
If you don't have a Node.js web application, you can create one by following the Create a Node.js web app quickstart.
If you don't have an Azure subscription, create a free account before you begin.
Log in to the Azure portal
Log in to the Azure portal.
Enable Application Insights
Application Insights can gather telemetry data from any internet-connected application, regardless of whether it's running on-premises or in the cloud. Use the following steps to start viewing this data.
Select Create a resource > Monitoring + Management > Application Insights.
A configuration box appears; use the following table to fill out the input fields.
Settings Value Description Name Globally Unique Value Name that identifies the app you are monitoring Application Type Node.js Application Type of app you are monitoring Resource Group myResourceGroup Name for the new resource group to host App Insights data Location East US Choose a location near you, or near where your app is hosted
Configure App Insights SDK
Select Overview > Essentials > Copy your application's Instrumentation Key.
Add the Application Insights SDK for Node.js to your application. From your app's root folder run:
npm install applicationinsights --save
Edit your app's first .js file and add the two lines below to the topmost part of your script. If you are using the Node.js quickstart app, you would modify the index.js file. Replace <instrumentation_key> with your application's instrumentation key.
const appInsights = require('applicationinsights'); appInsights.setup('<instrumentation_key>').start();
Restart your app.
It takes 3-5 minutes before data begins appearing in the portal. If this app is a low-traffic test app, keep in mind that most metrics are only captured when there are active requests or operations occurring.
Start monitoring in the Azure portal
You can now reopen the Application Insights Overview page in the Azure portal, where you retrieved your instrumentation key, to view details about your currently running application.
Click App map for a visual layout of the dependency relationships between your application components. Each component shows KPIs such as load, performance, failures, and alerts.
Click on the App Analytics icon . This opens Application Insights Analytics, which provides a rich query language for analyzing all data collected by Application Insights. In this case, a query is generated for you that renders the request count as a chart. You can write your own queries to analyze other data.
Return to the Overview page and examine the KPI graphs. This dashboard provides statistics about your application health, including the number of incoming requests, the duration of those requests, and any failures that occur.
To enable the Page View Load Time chart to populate with client-side telemetry data, add this script to each page that you want to track:
Click on Browser from under the Investigate header. Here you find metrics related to the performance of your app's pages. You can click Add new chart to create additional custom views or select Edit to modify the existing chart types, height, color palette, groupings, and metrics.
To learn more about monitoring Node.js, check out the additional App Insights Node.js documentation.
Clean up resources
If you plan to continue on to work with subsequent quickstarts or with the tutorials, do not clean up the resources created in this quick start. If you do not plan to continue, use the following steps to delete all resources created by this quick start in the Azure portal.
- From the left-hand menu in the Azure portal, click Resource groups and then click myResourceGroup.
- On your resource group page, click Delete, type myResourceGroup in the text box, and then click Delete.