
Security News
TypeScript is Porting Its Compiler to Go for 10x Faster Builds
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
@appsignal/nodejs
Advanced tools
 
@appsignal/nodejs
The core AppSignal for Node.js library.
See also the mono repo README for more information.
First, sign up for an AppSignal account and run our automated install tool, which will install @appsignal/nodejs
and any relevant integrations to your project:
npx @appsignal/cli install
You can also skip the automated tool and add @appsignal/nodejs
to your package.json
on the command line with npm
/yarn
:
yarn add @appsignal/nodejs
npm install --save @appsignal/nodejs
Alternatively, you can manually add the @appsignal/nodejs
package to your package.json
. Then, run yarn install
/npm install
.
Installing the AppSignal for Node.js integration builds a native extension. In order to compile it, macOS users will need to install the Xcode Developer Tools. Linux users will need the dependencies outlined here. Windows is not supported.
You can then import and use the package in your bundle:
const { Appsignal } = require("@appsignal/nodejs");
const appsignal = new Appsignal({
active: true,
name: "<YOUR APPLICATION NAME>"
pushApiKey: "<YOUR API KEY>"
});
// ...all the rest of your code goes here!
In order to auto-instrument modules, the Appsignal module must be both required and initialized before any other package.
This package also contains the C++ extension, and the install script for the agent. The native extension is a bridge between the Node.js runtime and our agent.
2.4.0
60d7980 minor - Add OpenTelemetry span processor for the mysql and mysql2 packages. These are experimental integrations and require additional set up to integrate with OpenTelemetry.
9cd1c8b patch - Add config options for disabling default instrumentation like HTTP, HTTPS, PostgreSQL (pg package) and Redis (node-redis package).
The following configuration options have been added:
instrumentHttp
instrumentPg
instrumentRedis
By default these configuration options are set to true
, which means the instrumentation is active by default. If you want to disable one of these instrumentations, configure it by setting the configuration option to false
.
// appsignal.js
// Brief example, see our docs for a full example
const appsignal = new Appsignal({
instrumentRedis: false // Disables the node-redis package instrumentation
});
3959858 patch - Add OpenTelemetry node-redis and ioredis query sanitizers. We recommend using these sanitizers to ensure no sensitive data is sent in query statements. Add the sanitizer to the dbStatementSerializer
config as demonstrated below.
// tracing.js
// Add the RedisDbStatementSerializer import
const { RedisDbStatementSerializer } = require("@appsignal/nodejs");
const { RedisInstrumentation } = require("@opentelemetry/instrumentation-redis");
const sdk = new opentelemetry.NodeSDK({
instrumentations: [
new RedisInstrumentation({
// Configure the AppSignal RedisDbStatementSerializer to sanitize queries
dbStatementSerializer: RedisDbStatementSerializer
})
]
});
The same can be done for the ioredis instrumentation:
// tracing.js
// Add the IORedisDbStatementSerializer import
const { IORedisDbStatementSerializer } = require('@appsignal/nodejs');
const { IORedisInstrumentation } = require('@opentelemetry/instrumentation-ioredis');
const sdk = new opentelemetry.NodeSDK({
instrumentations: [
// Add the IORedisInstrumentation
new IORedisInstrumentation({
// Configure the AppSignal IORedisDbStatementSerializer to sanitize queries
dbStatementSerializer: IORedisDbStatementSerializer
})
]
});
ee1ea8b patch - Use the OpenTelemetry SpanProcessor interface to build our own SpanProcessor. We previously copied the SpanProcessor code into our package, but instead we now use the OpenTelemetry interface directly. This should make our processor match the expected type better.
4e58a73 patch - Bump agent to v-0b43802.
01c25d3 patch - Bump agent to v-1a8ac46
ScopeManager.active()
function returning closed spans.ScopeManager.active()
and ScopeManager.root()
to make sure the span is not already closed, also make sure it's not closed when transferring spans around between async contexts.FAQs
The AppSignal for Node.js library.
The npm package @appsignal/nodejs receives a total of 11,928 weekly downloads. As such, @appsignal/nodejs popularity was classified as popular.
We found that @appsignal/nodejs demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 8 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
Research
Security News
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
Security News
Socket CEO Feross Aboukhadijeh discusses the open web, open source security, and how Socket tackles software supply chain attacks on The Pair Program podcast.