Repository URL to install this package:
|
Version:
1.3.1-1468329898 ▾
|
| .. |
| AutoCollection |
| Library |
| package.json |
| applicationinsights.js |
| README.md |
| AppInsights-node.js.iml |
| License.txt |
This project provides a Node.js SDK for Application Insights. Application Insights is a service that allows developers to keep their applications available, performant, and successful. This node module will allow you to send telemetry of various kinds (event, trace, exception, etc.) to the Application Insights service where they can be visualized in the Azure Portal.
Install
npm install applicationinsights
Get an instrumentation key
Note: an instrumentation key is required before any data can be sent. Please see the "Getting an Application Insights Instrumentation Key" section of the wiki for more information. To try the SDK without an instrumentation key, set the instrumentationKey config value to a non-empty string.
This will enable request monitoring, unhandled exception tracking, and system performance monitoring (CPU/Memory/RPS)
import appInsights = require("applicationinsights"); appInsights.setup("<instrumentation_key>").start();
The instrumentation key can also be set in the environment variable APPINSIGHTS_INSTRUMENTATIONKEY. If this is done, no argument is required when calling
appInsights.setup()orappInsights.getClient().
#####Disabling auto-collection#####
import appInsights = require("applicationinsights"); appInsights.setup("<instrumentation_key>") .setAutoCollectRequests(false) .setAutoCollectPerformance(false) .setAutoCollectExceptions(false) // no telemetry will be sent until .start() is called .start();
#####Using multiple instrumentaion keys#####
import appInsights = require("applicationinsights"); // configure auto-collection with one instrumentation key appInsights.setup("<instrumentation_key>").start(); // get a client for another instrumentation key var otherClient = appInsights.getClient("<other_instrumentation_key>"); otherClient.trackEvent("custom event");
#####Custom monitoring#####
import appInsights = require("applicationinsights"); var client = appInsights.getClient(); client.trackEvent("custom event", {customProperty: "custom property value"}); client.trackException(new Error("handled exceptions can be logged with this method")); client.trackMetric("custom metric", 3); client.trackTrace("trace message");
#####Example with manual request tracking of all "GET" requests#####
var http = require("http"); var appInsights = require("applicationinsights"); appInsights.setup("<instrumentation_key>") .setAutoCollectRequests(false) // disable auto-collection of requests for this example .start(); // assign common properties to all telemetry sent from the default client appInsights.client.commonProperties = { environment: process.env.SOME_ENV_VARIABLE }; // track a system startup event appInsights.client.trackEvent("server start"); // create server var port = process.env.port || 1337 var server = http.createServer(function (req, res) { // track all "GET" requests if(req.method === "GET") { appInsights.client.trackRequest(req, res); } res.writeHead(200, { "Content-Type": "text/plain" }); res.end("Hello World\n"); }).listen(port); // track startup time of the server as a custom metric var start = +new Date; server.on("listening", () => { var end = +new Date; var duration = end - start; appInsights.client.trackMetric("StartupTime", duration); });
Development environment
Install dev dependencies
npm install
(optional) Set an environment variable to your instrumentation key
set APPINSIGHTS_INSTRUMENTATIONKEY=<insert_your_instrumentation_key_here>
Run tests
npm test