- Support Node.js 11
- Provide an API to set a logger after initialization to resolve init/logger cycle.
- Record koa-router routes as path templates when tracing HTTP entries.
- Improve announce payload.
- Left pad generated IDs with '0'.
- Fix: Add HTTP query params for HTTP exits
- Fix: Do not capture HTTP headers for HTTP exits (only for entries)
- Fix: Capture erroneous span on synchronous exceptions in HTTP client (like malformed URL)
- Fix method name of NoopSpanHandle.
- Provide API to end spans manually to allow capturing of child exit spans for message consumers (RabbitMQ/amqplib, Kafka).
- Fix broken trace context in some MongoDB usage scenarios
- RabbitMQ/amqplib: Small fix for TLS AMQP Urls (amqps).
- Instrument Bunyan.
- Pino: Improve tracing for error objects.
- Instrument Winston.
- Exclude file system entries that are not directories in dependency analysis, fixes confusing warning.
- Instrument amqplib (RabbitMQ tracing).
- Fix: Do not attach context to error/exception objects (#90).
- Update to latest emitter-listener package to include latest fix.
- Update a number of dependencies (bunyan, event-loop-lag, opentracing, shimmer, ...).
- Fix minor issues reported by npm audit.
- Fix: Do not fail when http client options object has a headers attribute with value.
- Enable CPU profiling for Node.js 10 apps.
- Warn about missing dependency netlinkwrapper at startup when reporting of uncaught exceptions is enabled.
- Fix: Uncaught exception reporting can now be enabled on systems using musl libc instead of glibc (e.g. Alpine Linux).
- Fix secret scrubbing for HTTP server instrumentation.
- Various fixes and improvements for the HTTP client instrumentation:
- support for http(s).request(url, options, callback) API introduced in Node.js 10.9.0,
- support for WHATWG URL objects,
- fix for requests with header "Expect: 100-continue", and
- instrument http.get and https.get separately from http(s).request.
- MySQL: Fix for MySQL instrumentation sometimes losing the tracing context.
- Add MSSQL (Microsoft SQL Server) instrumentation (supports mssql, version >= 4 via tedious driver).
- Tracing support for mongodb version >= 3.0.6.
- Support a wider range of command names for identification of PID in parent PID namespace.
- Report uncaught exceptions as incidents and via span/trace (disabled by default).
- Record
https
client calls.
- Fix result handling in PostgreSQL instrumentation.
- Do not break when modules use
stealthy-require
or similar mechanisms.
- Record fastify path templates when tracing HTTP entries.
- Record express.js path templates when tracing HTTP entries.
- Expose a debugging action to learn about loaded modules.
- Allow retrieval of
package.json
files.
- Add PostgreSQL instrumentation (pg).
- Avoid sending batch size 0 for Redis multi commands.
- Only try to instrument bluebird if it is actually available.
- Include additional debugging data in log when data transmission to agent fails.
- Support recording of user-configurable HTTP headers in HTTP client and server instrumentation.
- Include reporting PID in agent logs.
- Protect spans from accidental retransmission.
- Abort HTTP requests to the agent on timeouts.
- HTTP client instrumentation does not correctly interpret HTTP client timeouts.
- ioredis: Correctly manage tracing context in ioredis instrumentation.
- OpenTracing baggage is not defined on span context when using
getCurrentlyActiveInstanaSpanContext
.
- Enable tracing in Node.js
^10.0.0
. - Regression in MongoDB instrumentation which attempts to access optional
operationId
properties.
- Prepare support for 128bit trace IDs.
- Reduce memory footprint when using HTTP agents with
maxSockets: Infinity
.
- MongoDB: Properly initialize and assure operationId is generated.
- ioRedis instrumentation can lead to errors when async correlation doesn't work as expected.
- Add tracing support for mysql2/promise.
- Switch to
@risingstack/v8-profiler
due to security issues in transitive dependencies ofv8-profiler
.
- Enable tracing in Node.js
^9.1.0
.
- Reduce severity in log messages which describe dependency analysis failures.
- Upgrade
event-loop-lag
to address security vulnerability indebug
.
- Fix support for mysql2 versions prior to 1.5.0.
- Read env vars by default to determine agent connection config.
- HTTPS exit spans can have the wrong protocol set.
- Fix an async correlation issue caused by outgoing HTTP calls.
- Do not enable tracing in Node.js v9
- Limit maximum database statement length that is stored in spans.
- MongoDB spans are nested in a wrong way.
- Allow retrieval of TypeScipt and JSX files via the backchannel.
- Call sequences are not recoded when using Redis.
- Add
batch
(pipeline) support for Redis.
- Add ioredis instrumentation.
- Exclude
exec
call from Redis instrumentation sub commands.
- Include details about uncaught errors in express handlers.
- Add redis instrumentation.
- HTTP tracing will report incorrect path in case of express.js router usage.
- Support HTTPS server tracing.
- Update
Server-Timing
response header in HTTP instrumentation to format of latest spec version.
- Use MIT license.
- MongoDB instrumentation tests fail intermittently
- Add automatic mysql2 instrumentation
- Node.js <=4.5.0 can have
Buffer.from
, but it does not accept a string. Thanks @libozh! - Support announce to agent even when the Node.js process is renamed.
- Update supported versions; checks & tests
- Support automatic Node.js 8 tracing.
- Add Request query capture & reporting.
- HTTP client spans do not have the error count field
ec
set. - It must be possible to run in manual tracing mode only.
- Support OpenTracing usage in Node.js 8.
- Support service naming for OpenTracing traces.
- Check for supported Node.js tracing versions marks v7 as unsupported.
- Data transmission is broken in Node.js 0.12.
- Encoding in communication between sensor and agent is only guaranteed via Node.js default opts.
- Transmission of data to agents will fail whenever a character is being transmitted that needs more than one byte.
- URL parsing results in measurable overhead in HTTP server tracing.
- MongoDB tracing writes filter information into the wrong property.
- Node.js v8 tracing is not yet possible. Automatically disable tracing when running within Node.js v8.
- Parent handle in hooks is unused and can result in memory leaks.
- OpenTracing is broken in version 0.14.0 and sensor support is incompatible.
- Allow configuration of agent host address to support environments in which iptables or other networking tricks are used. Contributed by @lowsky. Thank you!
- Upgrade opentracing to 0.14.0.
- Support tracing for the mysql module.
- Collect healthcheck results.
- Support CPU profiling in Node.js >=7.0.0
- Only publish the necessary runtime files.
- Support scoped modules in dependency analysis.
- Support the new OpenTracing span kinds
producer
andconsumer
.
- Add additional meta data to the agent announce information to enable discovery in Kubernetes and CloudFoundry environments.
- Remove duplicated HTTP metric gathering and reduce memory overhead.
- Expose trace ID for root spans in
Server-Timing
header.
- The Node.js tracing sensor on the agent side can be stopped. This will result in 404 errors which we should not log.
- Upgrade event-loop-lag because of security vulnerabilities in its dependency tree. Contributed by @jamessharp. Thank you!
- Source file retrieval is often broken. After discussions, we decided to relax the checks to only allow transmission of
*.js
files without validation of the location of the file.
- Add kafka-node tracing support.
getCurrentlyActiveInstanaSpanContext()
fails for modules which are using opentracing APIs while testing.
- Remove development and documentation artifacts from NPM published module.
- Execute tests against Node.js v7.
- Add opentracing support.
- Transport error counts in preparation for span batching logic.
- Log fewer stacktraces when agent identification fails.
- Strip matrix parameters and hash values from requests paths in addition to query parameters.
- Allow user access to trace IDs as automatically for extended EUM support.
- Stop setting cookies automatically for extended EUM support.
- Disable extended EUM support by default.
- Reported URLs for outgoing HTTP calls must include a
:
after the protocol name.
- Add a
Path
directive for EUM cookies to support sub directory resource requests.
- Use an
Expires
directive for EUM cookies to support IE<=8.
- Expose trace ID via response cookie so it may be picked up for EUM tracing.
- Enable tracing by default.
- Never generate negative span IDs to avoid negative hex values.
- Stringify Elasticsearch query to align with Java tracing implementation.
- Allow retrieval of loaded modules and of other JS files located in the require path.
- Allow retrieval of loaded modules via agent requests.
- Fix name of command property in MongoDB spans.
- Restrict CPU profiling support to Node.js >=4.0.0.
- Differentiate between all the supported V8 garbage collection types.
- Add on-demand CPU profiling support.
- Add MongoDB tracing.
- Format function name in stack traces as defined in the v8 Wiki.
- Capture stack traces for exit spans.
- Capture HTTP
Host
header on entry spans.
- Maintenance: Avoid header casing questions by always transmitting uppercase header names.
- Ensure compatibility with Zipkin by receiving span and trace IDs as hex.
- Ensure compatibility with Zipkin by transmitting span and trace IDs as hex.
- Transport cluster name in Elasticsearch spans to allow logical view creation.
- Transport full URL for HTTP exit spans.
- Be more careful about identification of agent hosts in cases where the identified URL is not actually a URL.
- Add tracing infrastructure.
- Add HTTP server tracing.
- Add HTTP client tracing.
- Add Elasticsearch tracing.
- Fix errors that can occur when logging to the agent.
- Combine app and runtime sensor.
- Use keep alive connections for all agent communication.
- Treat agent ready call timeouts as failed checks.
- Send logs to agent for ease of debugging.
- Fix agent communication issues were successive announce attempts resulted in announce problems.
- Determined PID is not transmitted to agent during announce phase.
- Do not depend on a specific command name when parsing
/proc/<pid>/sched
files.
- Read PID from
/proc/<pid>/sched
for increased robustness in cases where the Node.js sensor is running in a different PID namespace than the agent.
- Increase log level for failed agent communication to warn.
- Track Node.js internal handle and request counts.
- Report application start time to calculate uptime.
- Support Docker bridge networks by attempting agent communication with the container's default gateway.
- Support custom agent HTTP ports and name.
- Improve announce cycle stability.
- Use a more efficient data structure for heap space data.
v8
module does not exist in early Node.js versions.
- Retrieve heap space statistics.
- Support varying log levels and output destinations.
- Requests may hang and put sensor in endless announce cycle.
- Identification of
event-loop-stats
availability always fails.
- Allow sensor execution without native addons.
- Initial release