@appsignal/nodejs
Advanced tools
Changelog
3.4.0
Published on 2024-04-22.
81bd0a9 minor - Heartbeats are currently only available to beta testers. If you are interested in trying it out, send an email to support@appsignal.com!
Add heartbeats support. You can send heartbeats directly from your code, to track the execution of certain processes:
import { heartbeat } from "@appsignal/nodejs"
function sendInvoices() {
// ... your code here ...
heartbeat("send_invoices")
}
You can pass a function to heartbeat
, to report to AppSignal both when the
process starts, and when it finishes, allowing you to see the duration of the
process:
import { heartbeat } from "@appsignal/nodejs"
function sendInvoices() {
heartbeat("send_invoices", () => {
// ... your code here ...
})
}
If an exception is raised within the function, the finish event will not be reported to AppSignal, triggering a notification about the missing heartbeat. The exception will bubble outside of the heartbeat function.
If the function passed to heartbeat
returns a promise, the finish event will
be reported to AppSignal if the promise resolves. This means that you can use
heartbeats to track the duration of async functions:
import { heartbeat } from "@appsignal/nodejs"
async function sendInvoices() {
await heartbeat("send_invoices", async () => {
// ... your async code here ...
})
}
If the promise is rejected, or if it never resolves, the finish event will not be reported to AppSignal.
9985d08 patch - Implement the ignoreLogs
configuration option, which can also be configured as the APPSIGNAL_IGNORE_LOGS
environment variable.
The value of ignoreLogs
is a list (comma-separated, when using the environment variable) of log line messages that should be ignored. For example, the value "start"
will cause any message containing the word "start" to be ignored. Any log line message containing a value in ignoreLogs
will not be reported to AppSignal.
The values can use a small subset of regular expression syntax (specifically, ^
, $
and .*
) to narrow or expand the scope of lines that should be matched.
For example, the value "^start$"
can be used to ignore any message that is exactly the word "start", but not messages that merely contain it, like "Process failed to start". The value "Task .* succeeded"
can be used to ignore messages about task success regardless of the specific task name.
6224018 patch - Appsignal.stop()
now returns a promise. For your application to wait until
AppSignal has been gracefully stopped, this promise must be awaited:
import { Appsignal } from "@appsignal/nodejs"
await Appsignal.stop()
process.exit(0)
In older Node.js versions where top-level await is not available, terminate the application when the promise is settled:
import { Appsignal } from "@appsignal/nodejs"
Appsignal.stop().finally(() => {
process.exit(0)
})
Changelog
3.3.2
Published on 2024-03-22.
e7cf661 patch - Implement CPU count configuration option. Use it to override the auto-detected, cgroups-provided number of CPUs that is used to calculate CPU usage percentages.
To set it, use the cpuCount
configuration option, or the APPSIGNAL_CPU_COUNT
environment variable.
Changelog
3.3.1
Published on 2024-03-21.
e5fca24 patch - Don’t evaluate environment variable values to read configuration
In previous versions of the Node.js integration, environment variables were evaluated to read their values. This version instead parses them based on their expected values.
Changelog
3.2.0
Published on 2024-03-06.
Changelog
3.1.0
false
properly for the agent configuration.Changelog
3.0.30
df --local
command fails.appsignal_set_host_gauge
and appsignal_set_process_gauge
extension functions. These functions were already deprecated and did not report any metrics.demo_sample
tag was set incorrectly as an attribute.