- Enable uncaught exception reporting in Node 12.x.
- Fix cases where span.ec would be overwritten by http server instrumentation.
- Trace through graphql-subscriptions PubSub/AsyncIterator.
- Add missing cls.ns.exit calls in mongodb instrumentation (fix for leaking
- Add graphql instrumentation (graphql).
cls-bluebirdbefore installing the require hook for
bluebirdso client code can use
cls-bluebirdwithout conflicts (#152, thanks to @jonathansamines).
- Fix tracing of
httpsclient calls in Node.js 8.9.0.
- Add additional check to
requireHookin case other modules interfering with
require-in-the-middle) are present.
- Remove circular references from span data before serializing it (#148, thanks to @sklose).
- Log a warning instead of info when running an unsupported Node.js version.
- Improve configuration handling, support more environment variables.
- Record hapi.js routes as path templates when tracing HTTP entries.
- Fix wrong warnings in validation for entry spans (that no other span is already in progress) for HTTP(s) entries.
- Read X-INSTANA-... headers case-insensitive in amqp instrumentation.
- Fix handling of Fastify routes with an beforeHandler array.
- Fix: Handle koa routes defined by regular expressions.
- Add support for Node.js 12 (except for two optional features that rely on native addons which are not yet available for Node.js 12, CPU profiling and reporting uncaught exceptions).
- Report unhandled promise rejections as issues (disabled by default, see configuration guide).
- Fix: Init metrics correctly when no config is passed (#138).
- Add data.rpc.host and data.rpc.port to GRPC exits to improve service discovery.
- Rename the npm package from instana-nodejs-sensor to @instana/collector. See migration guide for details.
- Split into @instana/core and @instana/collector.
- Fix trace context continuity when multiple instances of
- Add tracing SDK to create spans manually, integrating seamlessly with automatic tracing - see SDK API documentation for details.
- Additional validation for entry spans (that no other span is already in progress).
- Remove deprecated span attribute span.b.u (redis, ioredis).
- Fix: Set GRPC headers instead of adding them.
- Limit content length of requests when talking to the agent.
- Fix: Handle non-pooled pg queries using the promise API correctly.
- Extend API: Offer various getters to inquire about details of the currently actice span (trace ID, span ID and other attributes).
- Improve generated IDs (span ID, trace ID).
- Fix: Make sure timeouts created by instana-nodejs-sensor do not prevent the process from terminating.
- Fix for GRPC instrumentation: Add original attributes to shimmed client method.
- Fix: Add missing instrumentation hooks for mysql/mysql2#execute.
- Accept values of type string for config.tracing.stackTraceLength.
- Fix an issue in the GRPC instrumentation when an options object is provided.
- Fix duplicated cls binds in postgres and mssql instrumentation.
- Fix error when a Pino logger was passed via config (#119).
- Instrument Elasticsearch operations msearch and mget (#117, thanks to @DtRWoS).
- Add GRPC instrumentation (grpc).
- 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).
- Fix result handling in PostgreSQL instrumentation.
- Do not break when modules use
stealthy-requireor 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
- 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
- Enable tracing in Node.js
- Regression in MongoDB instrumentation which attempts to access optional
- Prepare support for 128bit trace IDs.
- Reduce memory footprint when using HTTP agents with
- 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-profilerdue to security issues in transitive dependencies of
- Enable tracing in Node.js
- Reduce severity in log messages which describe dependency analysis failures.
event-loop-lagto address security vulnerability in
- 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.
batch(pipeline) support for Redis.
- Add ioredis instrumentation.
execcall 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.
Server-Timingresponse 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
- 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
- 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
- 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
*.jsfiles 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
Pathdirective for EUM cookies to support sub directory resource requests.
- Use an
Expiresdirective 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
Hostheader 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
- Read PID from
/proc/<pid>/schedfor 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.
v8module 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-statsavailability always fails.
- Allow sensor execution without native addons.
- Initial release