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