All Products
Search
Document Center

Application Real-Time Monitoring Service:Release notes for the Node.js agent

Last Updated:Oct 27, 2026

This topic describes the release notes for the Node.js agent of Application Real-Time Monitoring Service (ARMS) Application Monitoring.

View the agent version

  1. Log on to the ARMS console.

  2. In the left navigation pane, choose Application Monitoring > Agent Management and click the Agent Release Notes tab. Select Nodejs from the drop-down list.

Agent versions

Version

Release date

Release notes

1.0.11

October 22, 2026

New features

  • Added instance isolation for multiple processes and Workers.

  • Added an OpenTelemetry API compatibility bridge. It accepts traces, metrics, and contexts created with standard OpenTelemetry APIs in the NodeSDK, works with open-source OpenTelemetry Instrumentation, and expands automatic collection coverage.

  • Added handling for conflicts between global OpenTelemetry components.

  • Added an Electron RUM integration entry point.

  • Added OpenClaw instrumentation.

  • Expanded Pi Agent SDK support with automatic ESM collection for version 1.x.

Performance and stability optimizations

  • Optimized metric collection, aggregation, conversion, and export. The agent reduces duplicate label processing, metric expansion, and intermediate object allocation, and yields to the event loop during large batches to reduce the impact on application requests.

  • Optimized metric Protobuf serialization by writing bytes in chunks and reusing nested messages, reducing large-array expansion, repeated memory copies, and temporary object overhead.

  • Added high-cardinality and capacity protection for metrics. Limits apply to collected series, records in a single operation, estimated bytes, and label sizes. When limits are exceeded, the agent uses overflow aggregation and staged degradation while prioritizing request counts, error counts, durations, and other core metrics.

  • Added capacity controls for trace queues and batches. Buffering, export batches, and retry queues are limited by both span count and estimated bytes. Capacity-drop statistics help control resource consumption for large payloads and traffic bursts.

  • Improved fault tolerance in the metrics pipeline. Exceptions in collection, processing, percentile calculation, and export are isolated so that a failure in optional distribution metric calculation does not discard generated core metrics. Repeated exception logs are rate limited.

Bug fixes

  • Fixed compatibility issues with CJS and ESM type exports. Improved type declarations and subpath exports for TypeScript module resolution modes such as NodeNext and Bundler.

  • Fixed an SDK shutdown error when Undici collection is explicitly disabled.

  • Corrected error classification when an HTTP connection is cleaned up after a model SSE stream ends normally. Normal stream cleanup is no longer recorded as a failed application call, while actual errors and active cancellations are retained.

  • Fixed callback cleanup after the runtime metrics collector is disabled, preventing metrics from being emitted after disabling and callbacks from accumulating across repeated enable and disable operations.

  • Improved waiting and cleanup for metric flushing, exporter switching, and shutdown to reduce races during concurrent processing and resource switching.

  • Improved consistency of process instance identity across asynchronous resource detection, configuration updates, and metric upload endpoints. Instance ID generation remains compatible with Node.js 12.

1.0.10

September 28, 2026

New features

  • Added automatic instrumentation for the Pi Agent SDK.

  • Added metric percentile statistics, which output P50, P75, P90, P95, and P99 by default.

  • Added automatic ARMS reporting network selection for public, internal, and cross-network strategies.

Feature adjustments

  • The default network strategy is auto, which selects intranet, share, and public in that order. You can explicitly configure the strategy by using ARMS_NETWORK_STRATEGY, PROFILER_NETWORK_STRATEGY, or ARMS_COLLECTOR_ENDPOINT.

  • Switching the endpoint now switches Trace, Metrics, AgentInfo, SQL metadata, exception metadata, and agent logs together. Requests already in progress finish by using the original endpoint.

  • Added duration distributions and percentile metrics for HTTP, RPC, databases, messaging, generative AI, Next.js, Nuxt, GC, and Event Loop scenarios.

Bug fixes

  • Fixed an issue where metrics such as arms_rpc_requests_seconds used millisecond values but were marked as seconds, causing average durations to be inflated by a factor of 1,000.

  • Fixed an issue where Histogram Count was mapped repeatedly to request counts, resulting in duplicate request statistics.

  • Corrected unit handling for Event Loop Delay sampling resolution.

  • Corrected GC type field handling for newer Node.js versions and added a GC Pause Histogram.

1.0.9

September 11, 2026

New features

  • Added automatic instrumentation for Mastra. Supported versions are @mastra/core >=1.50.0 <2.0.0; installation of @mastra/observability is required.

  • Added automatic instrumentation for Genkit. Supported versions are @genkit-ai/core >=1.0.4 <2.0.0.

  • Added automatic instrumentation for MCP Server. Supported versions are @modelcontextprotocol/sdk >=1.0.0 <2.0.0 for Node.js 18 and later, @modelcontextprotocol/server >=2.0.0 <3.0.0 for Node.js 20 and later, and chrome-devtools-mcp >=1.8.0 <1.9.0.

Feature adjustments

  • Changed generative AI application identification from static configuration to runtime identification.

  • The agent now writes INFO, DEBUG, WARN, and ERROR diagnostic logs to stderr under log-level control.

  • Application console.log output continues to use stdout.

  • DNS automatic instrumentation is disabled by default.

Bug fixes

  • Fixed an issue where forceFlush() incorrectly stopped the AgentInfo heartbeat timer.

  • Removed residual debug output from HTTP instrumentation.

  • Runtime metrics collection exceptions are now written to agent diagnostic logs to avoid polluting application output.

1.0.8

August 26, 2026

New features

  • Added tag service capabilities that support full lifecycle management of instance tags and application tags, including initialization, normalization, merging, and refresh.

  • Added application tag enrichment.

Feature adjustments

  • Optimized AgentInfo heartbeat reporting.

  • Optimized the tag injection strategy during Span export.

  • Optimized Kubernetes metadata collection.

  • Optimized Claude Agent semantics.

1.0.7

August 11, 2026

New features

  • Added automatic instrumentation for Nuxt 2.

  • Added log-control configuration for internal diagnostic log switches, log levels, console output, and trace injection into application logs.

Feature adjustments

  • Updated remote configuration parsing to receive log collection and trace injection controls from remote configuration.

  • Updated the Nuxt plugin so that Nuxt 2 and Nuxt 3/Nitro/h3 scenarios use the same nuxt plugin configuration key.

New plugins

  • Added support for Nuxt 2.

Performance optimizations

  • Optimized trace batch export with export concurrency, retry-on-failure, and retry queues to improve trace reporting stability under high concurrency.

  • Optimized the ARMS metrics exporter with export sharding, concurrency, unique series limits, and retry queues to improve metric reporting stability under high concurrency.

  • Optimized exception metadata batching and queue management with batch, queue-size, single-value-length, deduplication-cache, and retry configuration.

1.0.6

August 5, 2026

New features

  • Added Claude Agent tracing at the user_input granularity. Each actual user input in an AsyncIterable prompt generates an independent Agent root Span and TraceId.

Feature adjustments

  • Updated the Claude Agent plugin configuration with traceGranularity, which supports query, user_input, and turn. The turn value is normalized to user_input.

1.0.5

July 29, 2026

New features

Feature adjustments

  • Updated the default Node.js agent plugin configuration to enable automatic collection for Next.js and Nuxt/Nitro by default.

  • Updated Nuxt/Nitro plugin handling to create trace spans in nested handler scenarios.

New plugins

  • Added support for Next.js.

  • Added support for Nuxt 3/Nitro/h3.

1.0.4

July 16, 2026

Feature adjustments

  • Standardized the duration unit of common RPC metrics for ARMS applications to milliseconds, covering the HTTP Core, Undici, MongoDB, Mongoose, ioredis, Kafka, and Socket.IO plugins.

  • Added slow, by-status, and latency metrics to HTTP Core. The label of by-status metrics is standardized to status, and the HTTP status uses the original status code string.

  • Added slow, by-status, and latency metrics to gRPC. The label of by-status metrics is standardized to status.

  • Standardized the exception metric label to excep.ids instead of excepIds. The MySQL and MySQL2 exception paths now use CRC exception IDs.

  • Added trace business attributes and slow/error metric coverage to the Kafka, Socket.IO, Redis, ioredis, MongoDB, Mongoose, and PostgreSQL plugins.

  • Standardized low-cardinality labels for GenAI metrics so that the calls, error, slow, duration, token, and first-token metrics of OpenAI, Vercel AI, LangChain, and Claude Agent use consistent labels. The usageType label is added to token metrics.

  • Added collection of the process.open_file_descriptor.count, process.context_switches, and process.memory.virtual runtime metrics on Linux. Invalid virtual memory values are no longer reported in non-Linux environments.

Bug fixes

  • Fixed an issue where HTTP by-status metrics incorrectly used the statusCode label.

  • Fixed an issue where the excep.ids label was missing from the error metrics of some plugins.

  • Fixed an issue where the Runtime process.memory.virtual metric used the V8 heapTotal value as the virtual memory value.

  • Fixed an issue where duplicate LLM spans were generated when OpenAI was instrumented manually after automatic instrumentation.

1.0.3

June 25, 2026

New features

  • Added Vercel AI SDK instrumentation with support for server-side Agent/LLM/Tool automatic collection, time-to-first-token metrics, Agent/Tool/Embedding/Rerank span collection, and RAG metadata detection.

  • Added Claude Agent instrumentation.

Feature adjustments

  • Optimized the ARMS configuration generation logic with input parameter validation to prevent errors caused by invalid configurations.

  • Optimized the remote configuration polling mechanism with timer lifecycle management to prevent resource leaks.

1.0.2

June 10, 2026

New features

  • Added LangChain v1.x instrumentation with support for agent name resolution, tool definition extraction, CommonJS integration, and time-to-first-token metrics for streaming calls.

  • Added LangGraph instrumentation with support for createReactAgent and Pregel stream scenarios.

  • Added GenAI application type identification and GenAI metric collection for OpenAI call scenarios.

  • Added remote configuration support to enable or disable LangChain and LangGraph instrumentation.

Feature adjustments

  • Updated the OpenAI plugin configuration to include a traceContent control.

  • Updated the ESM Loader module resolution logic for compatibility with LangSmith and its relative path dependencies.

  • Updated the environment variable configuration to include recommended ARMS_* variables, legacy variable mappings, Kubernetes metadata, and exporter and batch processing settings.

New plugins

  • Added the LangChain v1.x plugin.

  • Added the LangGraph plugin.

Bug fixes

  • Fixed an issue where the npm package retained references to @ali/* internal dependencies at runtime.

  • Fixed an issue where LangChain span parent-child relationships were lost in asynchronous handler scenarios.

1.0.1

May 19, 2026

New features

  • Added remote configuration support to pull configurations from the ARMS server and apply sampling rules, span limits, and plugin switches.

  • Added declarative sampling strategies: always-on, always-off, trace-id-ratio, and parent-based.

  • Added metrics collection support, including metric exporter, metric processor, flush interval, Observable callback timeout, and runtime statistics configuration.

  • Added agent self-monitoring log support with logExporter and logExportIntervalMs configuration.

  • Added Log-Trace correlation to automatically inject trace context into application logs.

  • Added compatibility with Node.js 12.

Feature adjustments

  • Updated the default NodeSDK resource detection to integrate Kubernetes resource detectors and support ARMS cluster, namespace, and workload resource attributes.

  • Updated the database and runtime collection logic to include SQL metadata, business metrics, self-monitoring metrics, and runtime metrics.

  • Updated HTTP trace context propagation to support EagleEye upstream service context pass-through and injection.

New plugins

  • Added the OpenAI plugin with enrichTokens token usage collection.

  • Added pino, winston, bunyan, and console logging plugins.

  • Added the Runtime metrics plugin to collect event loop, V8 heap, garbage collection (GC), and process metrics.

  • Added the KafkaJS v2.x plugin.

  • Added metrics collection and self-monitoring to the gRPC plugin.

Performance optimizations

  • Optimized Node.js and V8 metrics collection to reduce noise and unnecessary data in error scenarios.

Bug fixes

  • Fixed an issue where the traceparent request header was overwritten.

  • Fixed an issue where HTTP request attribute extraction was incomplete.

  • Fixed an issue where metric reporting requests were captured by business trace collection.

  • Fixed an issue where SQL metadata and exception metadata accumulated without being reported when the batch threshold was not reached.

  • Fixed an issue where the acs.arms.service.id resource attribute was missing.

1.0.0

December 3, 2025

New features

  • Added distributed tracing instrumentation for Node.js applications. Three integration methods are supported: ESM Loader, CommonJS preloading, and manual NodeSDK initialization.

  • Added ARMS trace reporting support with configuration for service name, license key, region, workspace, project, and service ID.

  • Added automatic resource detection for process and host runtime environment attributes.

New plugins

  • Added HTTP, Express, Koa, Undici, gRPC, DNS, Socket.IO, and Net plugins for Node.js networking and web frameworks.

  • Added MongoDB, Mongoose, MySQL, MySQL2, PostgreSQL, Redis, ioredis, and Kafka plugins for databases and messaging.

Supported Node.js components and frameworks

Web frameworks

Framework

Supported versions

Description

Express

>=4.0.0 <6

Automatic instrumentation

Koa

>=2.0.0 <4

Automatic instrumentation

Next.js

>=12.0.0 <17.0.0

Supports traces for SSR, RSC, API routes, middleware, and other paths

Nuxt 3/Nitro/h3

h3 >=1.0.0 <2.0.0

hookable >=5.0.0 <6.0.0

Supports Nitro server handlers, h3 handlers, and render hooks

Nuxt 2

>=2.3.0 <3.0.0

Supports key paths in @nuxt/server, @nuxt/vue-renderer, and @nuxt/core

Databases and storage

Component

Supported versions

Description

MongoDB

>=3.3.0 <4

>=4.0.0 <7

Automatic instrumentation

Mongoose

>=5.9.7 <9

Automatic instrumentation

MySQL

>=2.0.0 <3

Automatic instrumentation

MySQL2

>=1.4.2 <4

Automatic instrumentation

PostgreSQL (pg)

pg >=8.0.3 <9

pg-pool >=2.0.0 <4

Automatic instrumentation

Redis

>=2.6.0 <4

Automatic instrumentation

ioredis

>=2.0.0 <6

Automatic instrumentation

Message queues

Component

Supported versions

Description

Kafka (kafkajs)

>=0.3.0 <3

Automatic instrumentation

AI and generative AI

Component

Supported versions

Description

OpenAI

>=4 <6

Supports enhanced token configuration

Vercel AI SDK

>=4.0.0 <7

Supports automatic collection of Agent, LLM, and Tool calls, plus time-to-first-token metrics

LangChain

v1.x (dynamic instrumentation)

Supports agent name resolution, tool definition extraction, and time-to-first-token metrics for streaming calls

LangGraph

v1.x (dynamic instrumentation)

Supports createReactAgent and Pregel stream scenarios

Claude Agent

>=0.3.0 <1

Supports tracing at the user_input granularity

Mastra

@mastra/core >=1.50.0 <2

Supports Agent, Step, LLM, Tool, and Workflow spans. Requires @mastra/observability.

Genkit

@genkit-ai/core >=1.0.4 <2

Supports Flow, Agent, Model, Tool, Retriever, Embedding, and related call traces.

MCP SDK v1

@modelcontextprotocol/sdk >=1.0.0 <2.0.0

Supports automatic instrumentation for MCP Server on Node.js 18 and later.

MCP Server v2

@modelcontextprotocol/server >=2.0.0 <3.0.0

Supports automatic instrumentation for MCP Server v2 on Node.js 20 and later.

Chrome DevTools MCP

>=1.8.0 <1.9.0

Supports Chrome DevTools MCP tool calling traces. Requires Node.js 20.19+, 22.12+, or 23+.

Pi Agent SDK

@earendil-works/pi-agent-core, @earendil-works/pi-ai, and @earendil-works/pi-coding-agent

>=0.74.0 <2; pi-durable >=1.2.0 <1.3.0

Supports Agent, Step, LLM, Tool, compaction, tree navigation, streaming responses, retries, and queue events. Records model, provider, token, cached token, cost, time to first token, status, and duration.

OpenClaw

openclaw and @loongsuite/cms_instrumentations/openclaw; validated with OpenClaw 2026.10.5, with no complete support range defined

Collects traces for models, tools, child agents, errors, and cancellations. In RUM scenarios, content is not collected by default; this default does not apply to the standard NodeSDK. The validated environment includes standalone Node agent and gateway processes, plus Electron 44.9.1 main, worker, utility, spawn, and fork processes. ASAR validation covers runtime extraction and injection only and does not constitute complete OpenClaw application validation in ASAR.

Electron RUM

/rum and /rum-register (added in 1.0.11)

Provides the Node.js Trace runtime. In RUM mode, MCP and other AI content is disabled by default (mcp.captureContent defaults to false) and can be collected when explicitly enabled. Error states are retained, and automatic desensitization is not provided. This default does not apply to the standard NodeSDK. The agent retains an existing global OpenTelemetry provider without taking ownership of it and does not provide a complete Metric or Log handoff. Reporting uses byte-capacity controls, high-cardinality overflow handling, batching, and retries without guaranteeing zero data loss.

Logging frameworks

Component

Supported versions

Description

pino

>=7.0.0 <11

Automatic instrumentation with log-trace correlation

winston

>=3.0.0 <4

Automatic instrumentation with log-trace correlation

bunyan

>=1.8.0 <3

Automatic instrumentation with log-trace correlation

console

Not applicable

Automatic instrumentation with log-trace correlation

Other components

Component

Supported versions

Description

HTTP/HTTPS

Node.js built-in

Automatic instrumentation

Undici

Included with the Node.js runtime

Automatic instrumentation

gRPC

^1.0.0

Automatic instrumentation

DNS

Node.js built-in

Supports automatic instrumentation. Disabled by default starting with 1.0.9; explicitly enable it when needed.

Socket.IO

>=3 <5

Automatic instrumentation

Net

Node.js built-in

Automatic instrumentation

Runtime

Node.js built-in

Collects Event Loop, V8 Heap, GC, and Process metrics