npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

applicationinsights-express-middleware

v0.0.5

Published

Express Middleware tracking for Microsoft Application Insights SDK for Node.js.

Downloads

125

Readme

applicationinsights-express-middleware

Express Middleware tracking for Microsoft Application Insights SDK for Node.js.

Contents

About

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!

Usage

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.

Dependency Tracking Data

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. |

Developing

Install

yarn install --frozen-lockfile

Build

yarn build

Test

yarn test

Lint

yarn lint

Contributing

Please check out the CONTRIBUTING docs.

Changelog

Please check out the CHANGELOG docs.