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

elastic-apm-node

v4.9.0

Published

The official Elastic APM agent for Node.js

Downloads

1,891,347

Readme

Elastic APM Node.js Agent

This is the official Node.js application performance monitoring (APM) agent for the Elastic Observability solution. It is a Node.js package that runs with your Node.js application to automatically capture errors, tracing data, and performance metrics. APM data is sent to your Elastic Observability deployment -- hosted in Elastic's cloud or in your own on-premises deployment -- where you can monitor your application, create alerts, and quick identify root causes of service issues.

If you have any feedback or questions, please post them on the Discuss forum.

npm tests

Installation

npm install --save elastic-apm-node

Getting started

First, you will need an Elastic Stack deployment. This is a deployment of APM Server (which receives APM data from the APM agent running in your application), Elasticsearch (the database that stores all APM data), and Kibana (the application that provides the interface to visualize and analyze the data). If you do not already have an Elastic deployment to use, follow this APM Quick Start guide to create a free trial on Elastic's cloud. From this deployment you will need the APM serverUrl and secretToken (or a configured apiKey) to use for configuring the APM agent.

Next, the best and easiest way to see how to install and start the APM agent is to follow one of the "Get started" guides for the web framework or technology that you are using:

Typically, the quick start steps are:

  1. Install the APM agent package as a dependency:

    npm install --save elastic-apm-node
  2. Configure and start the APM agent. For the APM agent's automatic instrumentation of popular modules to work, it must be started before your application imports its other dependencies. For example, if you use CommonJS, then put this at the very top of your main application file:

    require('elastic-apm-node').start({
        serverUrl: '<serverUrl from your Elastic Stack deployment>',
        secretToken: '<secretToken from your Elastic Stack deployment>'
        serviceName: '...', // https://www.elastic.co/guide/en/apm/agent/nodejs/current/configuration.html#service-name
        environment: '...', // https://www.elastic.co/guide/en/apm/agent/nodejs/current/configuration.html#environment
    });

There are other ways to start the APM agent: for example, to support starting the APM agent without having to change application code; or to avoid certain surprises when using TypeScript or other transpilers like Babel or esbuild. See Starting the agent for a reference of all ways to start the agent and for details on gotchas with transpilers and bundlers (like Webpack and esbuild).

If your application is using ES modules, please see ECMAScript module support for the current experimental support.

Documentation

The full Node.js APM agent documentation is here. Some important links:

  • Release notes
  • Supported Technologies describes the supported Node.js versions, which modules (and version ranges) are automatically traced, and other technologies.
  • Configuring the agent describes the different ways to configure the APM agent (via options to apm.start(...), environment variables, or other mechanisms).
  • Configuration options is a full configuration reference.
  • Troubleshooting describes some common issues and a way to get debugging output from the APM agent for bug reports.
  • Upgrading includes a guide for upgrading from each past major version of the APM agent.
  • Metrics describes the metrics that the APM agent automatically collects.
  • The APM agent includes an OpenTelemetry Bridge that allows one to use the vendor-agnostic OpenTelemetry API for manual instrumentation in your application, should you require manual instrumentation.

Active release branches

The following git branches are active:

Contributing

Contributions are very welcome. You can get in touch with us through our Discuss forum. If you have found an issue, you can open an issue at https://github.com/elastic/apm-agent-nodejs/issues.

If you are considering contributing code to the APM agent, please read our contribution guide.

Please see TESTING.md for instructions on how to run the test suite.

License

BSD-2-Clause

Made with ♥️ by Elastic and our community.