Express Middleware tracking for Microsoft Application Insights SDK for Node.js.
This repository provides Express Middleware tracking for the Application Insights SDK for Node.js by monkey patching Express and the Application Insights SDK.
Note: This package is currently a WIP and likely to have bugs - please raise issues for anything you find. Please don't use in Production!
Install this package using npm / yarn.
yarn add applicationinsights-express-middleware
In your application code, require this package before Express and Application Insights:
require("applicationinsights-express-middleware");
const appInsights = require("applicationinsights");
const express = require("express");
...
Or alternatively, use it instead of Application Insights:
const appInsights = require("applicationinsights-express-middleware");
const express = require("express");
...
You can enable the auto-collection of Express middleware data by calling setAutoCollectExpressMiddleware(true)
while configuring Application Insights:
appInsights
.setup("<INSTRUMENTATION_KEY>")
.setAutoCollectExpressMiddleware(true) // Use with or without the other chained auto-collection configuration methods.
.start();
The default for the Express middleware auto-collection is false
, so not calling this method (and calling it with false
) will result in the Express middleware not being instrumented.
If you set the value to true
, then the once the Application Insights start()
method is invoked, the package will then automatically invoke trackDependency()
whenever Express middleware is executed.
Please note that the package currently does not support the dispose()
method and therefore will not stop instrumenting Express until application restart.
The Express middleware data that is sent to Application Insights is of the following form:
{
"dependencyTypeName": "Express Middleware",
"target": "/",
"name": "GET / myMiddleware",
"data": "",
"duration": 10,
"resultCode": 0,
"success": true,
"time": "2020-05-02T00:00:16.285Z"
}
Key | Values |
---|---|
dependencyTypeName |
One of: "Express Middleware" , or "Express Param Middleware" , or "Express Error Middleware" . |
target |
The Express path associated with the middleware being executed. |
name |
The request method and Express path followed by the middleware function's name, or "<anonymous>" if the middleware function does not have a name. E.g. "GET / myMiddleware" , or "POST /users/:userId <anonymous>" . |
data |
The error passed to the middleware function's next() method, or an empty string if no error was passed. |
duration |
The duration of time taken to execute the middleware function in milliseconds. |
resultCode |
1 if the middleware function called the next() method with an error, otherwise 0 . |
success |
false if the middleware function called the next() method with an error, otherwise true . |
time |
The datetime when the middleware function was invoked. |
yarn install --frozen-lockfile
yarn build
yarn test
yarn lint
Please check out the CONTRIBUTING docs.
Please check out the CHANGELOG docs.