All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
4.0.1 (2024-10-28)
- aws-lambda: fixed error caused by missing aws-sdk during agent key retrieval from SSM (#1402) (6329c66)
- Revert "ci: skipped all other regions and only china region with debug" (71f4643)
- Revert "ci: skipping the Chinese regions from publishing lambda layers" (1099189)
4.0.0 (2024-10-23)
- deprecated kafka-avro (#1337) (5647c3f)
- dropped support for disabling AWS SDK instrumentation in old syntax (#1383) (48bebf3)
- dropped support for lambda runtimes v14 and v16 (#1352) (4d28d6b)
- dropped support for node v14 and v16 (#1348) (aaa9ad4)
- dropped support for q library (#1377) (c7f1fa5)
- dropped support for x-instana-service header (#1355) (7aa5f4b)
- kafka: enforced string format for Kafka trace headers and dropped binary support (#1296) (2c822d3)
- removed deprecated INSTANA_URL and INSTANA_KEY environment variables (#1373) (955cf67)
- shared-metrics: replaced fs-extra with fs promises (#1362) (35ec19c)
- Revert "ci: skipping the chinese regions from publishing lambda layers" (8475d69)
-
- Removed the ability to disable AWS SDK instrumentation using the old syntax disabledTracers: ['aws-sdk/v2/index'].
- Migrate to the new syntax for disabling instrumentation: disabledTracers: ['aws-sdk/v2'].
-
- Migration: Please configure the Instana agent to capture the X-Instana-Service header in the agent's configuration file.
- For details, see: https://www.ibm.com/docs/en/instana-observability/current?topic=applications-services#specify-the-x-instana-service-http-header.
-
- The INSTANA_URL and INSTANA_KEY environment variables have been removed.
- Any references to these should be replaced with the environment variables INSTANA_ENDPOINT_URL and INSTANA_AGENT_KEY.
-
- Dropped support for Node.js versions 14 and 16.
- Reason: These versions have reached their end of life.
- More info: https://github.com/nodejs/Release?tab=readme-ov-file#end-of-life-releases
-
- Node.js Lambda runtimes v14 and v16 are no longer supported.
- Refer to the Lambda deprecation policy here: https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy
- kafka: - Removed the ability to configure the header format; headers will always be sent in 'string' format.
- Removed support for 'binary' format and code related to sending headers in 'binary' or 'both' formats. refs INSTA-809
3.21.0 (2024-10-17)
3.20.2 (2024-10-09)
- Revert "ci: skipping the chinese regions from publishing lambda layers" (48adaca)
- Revert "ci: forced dev installation gcstats and event-loop-stats" (25b39ea)
- Revert "ci: added logs for installing npm dependencies" (0bce3d7)
3.20.1 (2024-10-04)
- added log to capture instana headers from incoming request (89c3051)
- resolved ts error "instana.currentSpan is not a type" (#1357) (f32b3c1)
3.20.0 (2024-10-01)
- connected deferred exit span with original entry span (#1346) (98f99e1), closes #1297
- lambda: changed memory warning when using the lambda extension (#1344) (3e94f9e)
- lambda: fixed heartbeat error (#1351) (0c001c8)
3.19.0 (2024-09-25)
3.18.2 (2024-09-17)
- Revert "ci: skipping the chinese region from publishing the lambda layers" (45dcbb0)
3.18.1 (2024-09-12)
- added deprecation warning for Kafka header migration (#1311) (fa1e4bd)
- ioredis: reverted multi/pipeline handling from #1292 (#1328) (09fc2f7)
3.18.0 (2024-09-06)
3.17.1 (2024-09-03)
3.17.0 (2024-09-02)
3.16.0 (2024-08-28)
- Revert "ci: skipped publishing AWS layer to the newly added region ap-southeast-5" (038ff2d)
3.15.2 (2024-08-27)
- aws-lambda: improved debug logs for number of spans (c7a3c34)
- deprecated q library (#1282) (d86f939)
3.15.1 (2024-08-19)
3.15.0 (2024-08-13)
3.14.4 (2024-07-22)
3.14.3 (2024-07-11)
3.14.2 (2024-07-09)
- Revert "test: skip the s3 tests due to s3 bucket limit" (622101b)
- Revert "ci: skipping the chinese region from publishing the lambda layers" (078f9f7)
- Revert "test: publish aws lambda layer to cn-north-1 and skip other regions temporarily" (47f8d32)
3.14.1 (2024-06-26)
3.14.0 (2024-06-26)
3.13.0 (2024-06-24)
3.12.0 (2024-06-21)
- added support for mssql v11 (#1195) (d9dd2ac)
- added support for tedious v16 and v17 (#1184) (cd02b96)
- Revert "build: bumped @elastic/elasticsearch from 8.13.1 to 8.14.0" (2b0e755)
3.11.0 (2024-06-13)
- aws-lambda: timeout not being activated when timeout is 3s (60c99f4)
- aws-lambda: added ability to configure extension timeout (c102c60)
3.10.0 (2024-06-13)
- added support for tedious v16 and v17 (#1174) (710b193)
- aws-lambda: added optional timeout detection (#1181) (41c9b77)
3.9.0 (2024-05-28)
- added support for got v12, v13, v14 (#1157) (1333a3c)
- added support for node-fetch v3 (#1160) (b96f30c)
- serverless-collector: added generic serverless collector (#1142) (1700bf0)
3.8.1 (2024-05-17)
3.8.0 (2024-05-06)
- added support for restify v9, v10, v11 (#1140) (fb132d2)
- added support for superagent v9 (#1128) (0d38805)
3.7.0 (2024-05-03)
- added support for Node v22 (#1132) (6d08f43)
- autoprofile: added prebuilds for darwin/arm64 linux/arm64 linux/arm (#1135) (26f85b0)
3.6.0 (2024-04-29)
- added support for node-rdkafka v3 (#1123) (a519d75)
- added support for pino v9 (#1130) (6a6565c)
- added support for sqs-consumer v10 (#1134) (c929727)
3.5.0 (2024-04-24)
3.4.0 (2024-04-16)
3.3.1 (2024-04-11)
- resolved esm loader issue for manual instrumentation node v18.19.0 and above (#1063) (d69aff8)
- security: resolved security vulnerability in the tar package. (#1106) (d863aa8)
3.3.0 (2024-03-22)
- resolved relative URL issue in sanitizeUrl method (a2fac29)
3.2.1 (2024-03-18)
- collector: gracefully shutdown if core module process is not ava… (#1070) (3d8196d)
- matrix parameters included in URLs (#1069) (f1d2862)
- sqs: spans not being captured caused by @aws-sdk/client-sqs@3.481.0 (#1076) (aa71aa6)
3.2.0 (2024-02-27)
- added otel instrumentation for tedious (#1030) (87de73d)
- added support for ibm_db 3.x (#1048) (0ec7cc9)
- added support for ibm_db v3 (5d1b9fe)
3.1.3 (2024-01-31)
3.1.2 (2024-01-29)
3.1.1 (2024-01-10)
3.1.0 (2024-01-04)
- ignored opentelemetry spans which are not traces by us (#974) (62add1c)
- serverless: ensured callback gets called for proxy connection issues (#979) (46c99fc)
- updated code formats (#971) (0e24014)
3.0.0 (2023-12-12)
- deprecated kafka-node (1274419)
- dropped elasticsearch library (e1f480d)
- dropped fastify v1 (fe247b3)
- dropped graphql v14 (c4b3366)
- dropped gRPC library (acbfa27)
- dropped mssql v8 (6c58f51)
- dropped redis v0 (e4db474)
- azure: added support for azure container services (#932) (13abd85)
- node-v21: added support for node v21 (#947) (64cc797)
- Dropped support for fastify v1.
- Deprecated kafka-node library. Support will be removed in the next major release.
- Dropped support for node-redis v0 (https://github.com/redis/node-redis)
- Dropped support for mssql v8 (https://github.com/tediousjs/node-mssql)
- Dropped support for graphql v14 (https://github.com/graphql/graphql-js)
- Dropped elasticsearch lib support (https://www.npmjs.com/package/elasticsearch)
- Dropped support for gRPC lib (https://www.npmjs.com/package/grpc)
- Dropped Node v10 & v12 support.
2.36.1 (2023-12-04)
- fetch: fix header handling for Node.js >= 18.19.0 and >= 21.1.0 (6420063)
2.36.0 (2023-11-29)
- fetch: fix header handling for native fetch for Node.js >= 20.10.0 (ece1a9a)
- added missing prebuild for gcstats Node v20 (#938) (1b371a2)
- fetch: fix trace correlation for native fetch for Node.js >= 20.8.1 (e834c30)
2.35.0 (2023-11-14)
- couchbase: added missing bucket type and name for bucket.query (#922) (fc2a9c0)
- adds version information for all NPM packages (#906) (3301aff)
- fastify: added support for fastify v4 (#920) (fb22cb7)
- google cloud storage: added support for google cloud storage v7 (#913) (33be8da)
2.34.1 (2023-10-23)
- rdkafka: only log warning about header format once (#897) (d8bf0ce)
- reduced log warnings when there is no entry span (#891) (8543808), closes #885
2.34.0 (2023-10-10)
- added esm support for google cloud platform (#859) (55fd6ff)
- added support for aws sdk v3 lambda (#871) (eb85c91)
- Revert "chore: migrated to npm workspaces and lerna v7 (#876)" (763ac7e), closes #876
- Revert "chore: fixed lock file" (ec79043)
2.33.1 (2023-09-26)
2.33.0 (2023-09-18)
2.32.0 (2023-09-11)
2.31.0 (2023-09-04)
2.30.2 (2023-08-28)
2.30.1 (2023-08-25)
- core: resolved flooding log file when agent connection is not established (#850) (c80eca6), closes #849
- core: resolved missing dynamodb spans (#851) (7444a90)
2.30.0 (2023-08-16)
- added ability to provide a custom package json path (#839) (f37d898)
- aws sdk v3 kinesis instrumentation (#838) (eae677c)
2.29.0 (2023-07-31)
2.28.0 (2023-07-27)
2.27.0 (2023-07-24)
- aws-lambda: added function url support (6f9fdb2)
2.26.3 (2023-07-20)
2.26.2 (2023-07-17)
2.26.1 (2023-07-10)
2.26.0 (2023-07-04)
2.25.3 (2023-06-27)
- deps: bump semver from 7.3.3 to 7.5.3 (f6d2a0b)
2.25.2 (2023-06-22)
- sdk: do not overwrite span.ec after it has been set via the SDK (4283cdf)
2.25.1 (2023-06-19)
2.25.0 (2023-06-16)
- sdk: add method to mark the current span as erroneous (2cfcc7b)
2.24.0 (2023-06-13)
- announce: verify connection to Instana host agent via payload check (ae1b41c)
- collector: added node:fs, restify and socket.io support (OpenTelemetry integration) (#715) (60f3bb9), closes #109122
2.23.0 (2023-06-06)
2.22.1 (2023-05-15)
- db2: ensure span is correctly processed as an IBM DB2 span (de3a8b4)
- sqs: fix missing async context in recent aws-sdk/client-sqs version (6ae90e7)
2.22.0 (2023-05-09)
- announce: remove obsolete check for Server header (7d6a05b)
- collector: keep EOL events open instead of recreating them (6de9965)
- mongodb: add support for mongodb v4, v5 & mongoose v6 & v7 (4e80a26)
- w3c: support W3C trace context level 2 (62e0f99)
2.21.1 (2023-05-02)
- announce: fix timeout for host agent lookup (d4e440f)
- db2: capture the correct destination dsn per client (9529690)
- elasticsearch: capture the correct destination host per client (cc23d05)
- nats: capture the correct destination nats address per client (59e5ddf)
- nats-streaming: capture correct destination address per client (678d702)
2.21.0 (2023-04-21)
- collector: added support for couchbase (#737) (3239b19)
- opentelemetry-exporter: added support for INSTANA_DEBUG env variable (#759) (4e922c2)
2.20.2 (2023-04-06)
2.20.1 (2023-03-30)
2.20.0 (2023-03-24)
- collector: added support for amqplib 0.10.x (b56a827)
2.19.0 (2023-03-17)
- aws-lambda: add support for Node.js 18 AWS Lambda runtime (0900ab4)
- collector: added support for @google-cloud/storage@6 (#727) (efcd4f1)
2.18.1 (2023-03-06)
- grpc-js: capture the correct destination host per grpc-js client (5bc3188)
- grpc-js: do not mark cancelled calls as erroneous (fea8b80)
2.18.0 (2023-02-28)
- collector: added support for @elastic/elasticsearch v8 (#707) (dae00bb)
- tracing: improve robustness of custom service naming (aadcbff)
2.17.0 (2023-02-20)
2.16.0 (2023-02-13)
2.15.0 (2023-01-27)
- tracing, fetch: instrument native fetch (1a48168)
2.14.2 (2023-01-16)
2.14.1 (2023-01-12)
- collector: fixed package.json not being found when app is ESM (#678) (0dbd0a2)
- collector: mysql2/promise not working with ESM (f059047)
2.14.0 (2023-01-02)
2.13.2 (2022-12-14)
- aws-fargate: cannot read property 'cpu' of undefined (#671) (bea107c)
- aws-lambda: reduced deadlocks and long running lambda executions (#666) (6800be0)
2.13.1 (2022-12-12)
- collector: resolved elasticsearch legacy error (ea4f59f)
2.13.0 (2022-12-07)
2.12.0 (2022-11-22)
2.11.1 (2022-11-09)
- sdk: work around memory leak with recursive SDK usage (c9b35eb)
2.11.0 (2022-11-04)
- serverless: do not send x-instana-time header (7ce7673)
- tracing: instrument prisma (ORM) (ec760f7)
2.10.0 (2022-10-06)
- collector: added support for redis v4 (#627) (ad00255)
- kafka: use kafka header format 'both' by default (b2585cf)
2.9.0 (2022-09-26)
2.8.1 (2022-09-21)
- redis: suppress error for unsupported redis@4 (ffad2c2)
2.8.0 (2022-09-20)
- aws-lambda: reduced backend retries & timeout (#611) (cab67dd)
- db2: redact password also from the end of the connection string (ac4c46d), closes #614
- dynamodb: capture region as annotation (4ba64f4)
2.7.1 (2022-09-05)
- sqs, sns: do not add message attributes if that would violate limit (23c8ca1)
2.7.0 (2022-08-31)
- aws-lambda: added support for arm64 architecture (#605) (03dd47a), closes #596
- aws-lambda: send preflight request to the AWS Lambda extension
- lambda: work around req.destroyed not being set in Node.js <= 12
- lambda: fix concurrency bug in preflight request handling
- tracing: fix log4js message format call
2.6.2 (2022-08-17)
Note: Version bump only for package @instana/root
2.6.1 (2022-08-09)
- lambda: increase socket and HTTP timeout for Lambda extension (7a07a8b)
- lambda: interprete deadlineMs as absolute timestamp (3326e67)
2.6.0 (2022-06-28)
- aws-lambda: added support for Node v16 (718cf9f)
2.5.0 (2022-06-23)
- core: added ability to complete specific intermediate spans (#564) (480ee46), closes #561
- sdk: add methods to set the EUM correlation ID/type on the span (727916c)
2.4.0 (2022-05-25)
2.3.0 (2022-05-24)
- http: only capture response status/headers when they have been sent (850b8e4), closes #548
- kafkajs: use long trace IDs with new Kafka message headers (5674b08)
- rdkafka: use long trace IDs with new Kafka message headers (9c47349)
- kafkajs: remove Instana headers on arrival (f65bc75)
2.2.0 (2022-05-18)
- agent: reduce log level for sending data from debug to trace (8b57a71)
- agent: read span batching option also from tracing section (1f776d4)
- tracing: added instrumentation for ibm db2 (#532) (0d0b1e0)
2.1.0 (2022-04-28)
- tracing: cancel sqs entry span sync when no messages are available (8a66277)
- fix duplicated logger names and prevent them (9d576c5)
- tracing: implement updateConfig for Kafka instrumentations (c386ee6)
- sdk: expose span.cancel method (d60571f)
- tracing: use new common tracing config from from agent response (7f8825f)
2.0.0 (2022-04-04)
- fargate: detect Node.js version, use matching @instana/aws-fargate version (0d1f955)
- google-cloud-run: detect Node.js version, use matching @instana/google-cloud-run version (451ad1f)
- lambda: remove nodejs8.10 from compatible runtimes (ff945c2)
- dropped Node 6/8 (0e6fd0e)
- remove npm package instana-nodejs-sensor (5fb9f18)
- removed disableAutomaticTracing legacy config (#432) (922d168)
- removed legacy support for config.timeBetweenHealthcheckCalls (#476) (66eff69)
- removed support for passing parent logger during initialisation (bd96791)
- removed uncaught exception config (fb6570a)
- self-disable if detected Node.js runtime version is too old (cfe4248)
- lambda: The Instana Node.js Lambda layer is no longer compatible with Node.js 8. For Lambda functions still running on Node.js 8, please use the latest layer version that has been published for Node.js 8, see https://www.ibm.com/docs/en/obi/current?topic=kinesis-aws-lambda-native-tracing-nodejs
- Removed support for legacy config
instana({ timeBetweenHealthcheckCalls: ... })
. Useinstana({ metrics: { timeBetweenHealthcheckCalls: ...}})
. - Starting with version 2.0.0, consumers of the package who still use the deprecated package name instana-nodejs-sensor will need to follow https://www.ibm.com/docs/en/obi/current?topic=nodejs-collector-installation#change-of-package-name to receive updates in the future.
- Removed "disableAutomaticTracing" config option.
Use
instana({ automaticTracingEnabled: Boolean })
. - Removed "reportUncaughtException" config option. The feature was completely removed.
- Removed support for passing logger to instana initialisation.
Use
instana.setLogger(logger)
". - v2 has dropped support for Node 6/8.
1.140.1 (2022-04-04)
1.140.0 (2022-03-24)
- collector: fix export returned from init (3cc709c)
- collector: work around Bazel's node-patches module (d06e9be)
- collector: added instrumentation for @grpc/grpc-js (d12e386), closes #87653
- tracing: added instrumentation for node-rdfafka/kafka-avro (7cb7aa4)
1.139.0 (2022-03-09)
- collector: fix export returned from init (3cc709c)
- tracing: added instrumentation for node-rdfafka/kafka-avro (7cb7aa4)
1.138.0 (2022-02-08)
- tracing: fix version constraint for http2 instrumentation (50f380f), closes /github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V8.md#8 /github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V8.md#8
1.137.5 (2022-01-25)
1.137.4 (2022-01-11)
- aws-lambda: fixed lambda timeouts when using extension (#455) (6df5550)
- aws-lambda: reduced lambda timeout error count when using extension #443 (0bbfeb8)
- clean aws: fixed S3 cleanup when buckets have no objects [skip ci] (cc3af62)
- tracing: fix vendoring of emitter-listener for legacy cls context (440fd32)
1.137.3 (2021-12-16)
- aws-sdk/v3: added support for @aws-sdk/* 3.4x (61cc179)
- tracing: fix context loss when cls-hooked#bindEmitter is used (2743047), closes #438
1.137.2 (2021-11-30)
- collector: prevent initializing @instana/collector multiple times (b3261b7)
- tracing: require @elastic/elasticsearch/api in a safe way (8ba1bd1)
1.137.1 (2021-11-23)
- dependency: pinned lru-cache to 6.0.0 (0ceb372)
- dependency: pinned semver to 7.3.3 (d32f23e)
- dependency: updated tar to 6.x in shared-metrics (#415) (5288ba5)
- Configurable Kafka trace correlation (enabled/disabled) and correlation header format (string, binary, both).
- [AWS Lambda] Add DynamoDB streams trigger.
- [W3C Trace Context] Reject traceparent header when either trace ID or parent span ID are all zeroes.
- [Bull] Fixed the error
TypeError: Cannot read property 'opts' of null
in repeatable jobs.
- An issue event is sent if the application uses an EOL (end of life) version of Node.js. Applicable only for non serverless environments.
- Manual spans creation handles tags that are passed as non extensible objects - when
Object.freeze
orObject.preventExtensions
is applied to the tags. - [AWS SDKv2] Instrumentation of SNS
- Remove dependency to node-gyp. This also removes the opt-in feature of rebuilding native add-ons via node-gyp. This capability was off by default in previous releases, it could be enabled via
INSTANA_REBUILD_NATIVE_ADDONS_ON_DEMAND=true
. This is no longer available, the environment variable will be ignored now. - Fix: Capture HTTP status codes for GraphQL requests over HTTP.
- [Fastify] Add support for 2.x and 3.x
- [OpenTelemetry] Add new package
@instana/opentelemetry-exporter
that offers an Instana exporter for OpenTelemetry spans
- [AWS Lambda] Increase retries and timeout in Lambda extension binary.
- Add console.warn & console.error instrumentation
- Fix
path must be a string of Buffer
error in dependency distance calculator. - Fix: Use different attribute names in vendored version of
emitter-listener
, to avoid conflicts if the unfixedemitter-listener
package is still installed and being used by other packages.
- Fix: Rename global attribute from cls-hooked from process.namespaces to process.instanaNamespaces to avoid conflicts with other usages of cls-hooked.
- Fix: Vendor the fixed version of
emitter-listener
, so that wrapping the same emitter multiple times works correctly.
- Fix instrumentation for very old versions of
redis
(0.12.1). - AWS SDK v3: Instrumentation of SQS
- Limit the number of depdendencies collected as snapshot data.
- [AWS Lambda] Add W3C trace context support for Lambda tracing.
- Bring back
applicationUnderMonitoring#getMainPackageJson
andapplicationUnderMonitoring#getMainPackageJsonPath
for backward compatibility. - AWS SDK v3: Instrumentation of S3
- [AWS Lambda] Add trace correlation support for Lambda invocations triggered by SQS messages (including SNS-to-SQS).
- Add trace continuity support for SNS-to-SQS bridge for SQS tracing.
- AWS SDK v3: Instrumentation of DynamoDB
- Fix: AWS SQS headers reading properly checks for strings, numbers and arrays of strings
- The repository was renamed to https://github.com/instana/nodejs (previously: https://github.com/instana/nodejs-sensor).
- Memcached: added
connection
property
- Instrumentation of memcached
- Reporting correct SQS entry span duration
- Reporting SQS-Consumer processing error messages to the agent
- Redact embedded credentials from captured URLs (that is, remove the user:password part from URLs like http://user:password@example.org).
- Add Node.js 16 to the test matrix.
- [AWS Lambda] Detect Lambda cold starts.
- [AWS Lambda] Detect imminent Lambda timeouts heuristically.
- Instrumentation of AWS Lambda invoke function
- [AWS Lambda] Include Instana's AWS Lambda extension in the Instana Node.js Lambda layer. Monitoring data and traces are offloaded locally to Instana's Lambda extension, which will then forward it to the Instana back end. This feature is currently limited to Lambda functions configured with 256 MB of memory or more. Using the Instana Lambda extension can be disabled by setting the environment variable
INSTANA_DISABLE_LAMBDA_EXTENSION
to a non-empty string for a Lambda function.
- Add instrumentation for AWS Kinesis
- Let instrumented GRPC
ServiceClient
inherit from base client, fixes an issue withmali
up to version0.20.0
. - AWS SQS: remove duplicated instrumentation of receiveMessage in
sqs-consumer
instrumentation.
- Fix handling of null/undefined values used as exceptions/reasonswhen reporting uncaught exceptions and unhandled promise rejections.
- Instrument
sqs-consumer
to capture exit child spans of SQS entries correctly. - Add additional check in instrumentation for
@elastic/elasticsearch
to fix TypeError when no action is present.
- [AWS Fargate]: Fix secrets filtering for environment variables.
- [Google Cloud Run]: Fix secrets filtering for environment variables.
- Fixed a call from collector to the core by using @instana/collector instead of relative path
- Add instrumentation for Bull Messaging Framework.
- Update third party dependencies.
- Fix garbage collection metrics being reported falsely as not supported when
node_modules/gcstats.js
exists.
- Do not assume type local by default for OpenTracing spans. Instead, assume type entry when no parent context is available and only assume local if a parent context is available.
- Update to shimmer@1.2.1.
- Fix: Do not attempt to load native addons in a worker thread.
- [AWS Lambda] Reduce execution time overhead for native AWS Lambda tracing even further. (Bring back performance optimzation that was removed in 1.94.0 with a fix for the stale timeout events.)
- Add instrumentation for AWS DynamoDB.
- Add instrumentation for AWS S3.
- Update handling of W3C trace context headers to improve integration with OpenTelemetry.
- [AWS Lambda] Fix timeouts when the Lambda callback API without
context.callbackWaitsForEmptyEventLoop = false
is used and the Instana back end responds too slowly.
- Introduction of AWS SQS instrumentation for sending and reading messages.
- fix: run original function in runInAsyncContext/runPromiseInAsyncContext when tracing is not active.
- Instrument MongoDB native driver unified topology.
- Add configuration mechanism to disable copying of precompiled add-ons (
INSTANA_COPY_PRECOMPILED_NATIVE_ADDONS=false
). - Make rebuilding native add-ons via node-gyp an opt-in feature (it is off by default now, use
INSTANA_REBUILD_NATIVE_ADDONS_ON_DEMAND=true
to enable it).
- Improve heuristic to detect npm or yarn.
- Remove
netlinkwrapper
dependency. - Deprecate reporting uncaught exceptions as incidents and via span/trace. Prints a warning if the feature (which is opt-in) is enabled.
- Avoid false positive warning about @instana/core being initialized too late in the presence of other instrumentation packages that need to be loaded before everything else.
- Do not instrument npm or yarn when started via @instana/collector/src/immediate (instead, only instrument the child process started by npm start or yarn start).
- Do not instrument npm or yarn on AWS Fargate (instead, only instrument the child process started by npm start or yarn start).
- Do not instrument npm or yarn on Google Cloud Run (instead, only instrument the child process started by npm start or yarn start).
- Depend on exact versions of
@instana
packages, not a version range. This makes sure all@instana
packages are updated in sync and it avoids internal packages likecore
being updated while consuming packages likecollector
stay on an older version.
- Bring back core/util polyfill for Buffer.fromString for backwards compatibility.
- Exponential backoff retry strategy for failed announce attempts. This helps with agents that have not yet attached to the container (and thereby not seen the process) and thus will reject the very first announce attempt.
- Remove polyfill for Buffer.fromString (for Node.js versions up to 4.5 which we no longer support).
- Improve support for pino log calls that only receive a merging object argument.
- Fix Node.js 6 compatibility by downgrading
tar
dependency of@instana/shared-metrics
fromtar@6
totar@5
.
- [Google Cloud Run]: Exclude some revision instance data from compression.
- Improve user experience around native add-on dependencies of
@instana/collector
:- Add precompiled archives for some combination of OS, architecture, libc-flavour and ABI-version.
- Try to use the precompiled native add-on if loading a native add-on fails initially.
- Try to rebuild the native add-on on demand as a fallback.
-
Implement batching for very short (< 10 ms), high-frequency database spans (opt-in in this release, will be switched to default behaviour in one of the next releases). To enabled it right now, any of the three following methods can be used:
-
Set the environment variable
INSTANA_SPANBATCHING_ENABLED=true
. -
Use in-code configuration:
config.tracing.spanBatchingEnabled: true
. -
Add this to the agent's
configuration.yaml
:com.instana.plugin.nodejs: span-batching-enabled: true
-
-
[AWS Lambda] Check type of Lambda error messages and stringify if necessary.
- Add instrumentation for
@google-cloud/pubsub
.
- Fix (Elasticsearch): Adapt instrumentation for
@elastic/elasticsearch
for refactoring ofapi
submodule introduced in@elastic/elasticsearch@7.9.1
. (FixesTypeError: Cannot set property 'Symbol(configuration error)' of undefined
.) Also, remove obsoletestats
annotation forelasticsearch
spans. - Remove longer span reporting interval for serverless tracers, use standard interval instead.
- [Google Cloud Run]: Minor changes for the upcoming Google Cloud Run support. Requires at least Instana back end version 189.
- Remove direct
node-fetch
dependency from@instana/aws-fargate
as well as@instana/google-cloud-run
and move it to@instana/metrics-util
instead. - Optimization: Only set
span.data.service
on first span. - Send
span.crid
/span.crtp
instead ofspan.data.correlationId
/span.data.correlationType
.
- Fix: Move
event-loop-lag
from optionalDependencies to dependencies, so installations with--ignore-optional
will work correctly. (#258, thanks to @ThisIsMissEm). - [AWS Fargate]: Update dependency
node-fetch
version 2.6.1 (fixes https://www.npmjs.com/advisories/1556).
- [AWS Fargate]: Make optional dependencies on native add-ons truely optional (do not break the Docker build on
RUN /instana/setup.sh
). - Fix: Propagate
X-INSTANA-L: 0
downstream with AMQP headers.
- Fix bogus warning about invalid configuration emitted during startup (
"Invalid configuration: config.tracing.http.extraHttpHeadersToCapture is not an array, the value will be ignored: {}"
). - [Google Cloud Run]: Experimental in-process data collection for Google Cloud Run services via the new package
@instana/google-cloud-run
. Requires at least Instana back end version 185.@instana/google-cloud-run
supports Node.js 8.6.0 or later. Note that this is an early technical preview and not ready for general usage. At this time, no support can be provided for this new package. This will change once Google Cloud Run support becomes generally available with Instana.
- Fix(HTTP1/Server): Also set Server-Timing header when X-INSTANA-T is incoming (that is, not only when we start a fresh trace).
- Fix(HTTP1/Server): Do not append another intid key-value pair to Server-Timing if it is already present.
- Fix(HTTP2/Server): Add support for website monitoring back end correlation via Server-Timing header.
- Fix(HTTP2/Server): Add support for X-Instana-Service.
- Fix(HTTP2/Server): Inject the trace ID into the request to enable application code to inject it into the response body.
- Fix(HTTP2/Server): Use case-insensitive header matching as incoming headers are already normalized to lower case (performance improvement).
- Add support for
INSTANA_EXTRA_HTTP_HEADERS
variable. - Fix(HTTP1/HTTP2): Fix handling for headers of type array (normalize to string, separated by 0x2C 0x20).
- [AWS Fargate] Add support for
INSTANA_ZONE
. - [AWS Fargate] Add support for
INSTANA_TAGS
. - Secrets Filtering: Replace values for filtered query parameters with
<redacted>
instead of removing the whole key-value pair. - [AWS Fargate] Add support for
INSTANA_SECRETS
. - [AWS Fargate] Add support for
INSTANA_EXTRA_HTTP_HEADERS
. - [AWS Lambda] Add support for
INSTANA_SECRETS
. - [AWS Lambda] Make
INSTANA_EXTRA_HTTP_HEADERS
also apply to HTTP exits. - [AWS Lambda] Improve handling for
event.multiValueHeaders
.
- Fall back to
process.mainModule.filename
as the Node.js app's name when thepackage.json
file is not present. - Capture dependencies of an app even if the
package.json
file is not present, by inspecting thenode_modules
folder that is closest toprocess.mainModule
in the file system.
- Add instrumentation for the Google Cloud Storage client.
- Drop support for Node.js versions 4 (which was EOL 2018-04-30) and 5 (EOL 2016-06-30) in
@instana/collector
. If you want to use@instana/collector
with Node.js version 4 or 5 please pin@instana/collector
to version1.103.0
. - Fix: Capture MongoDB aggregate operations correctly.
- Fix: Keep async context across Mongoose custom thenables.
- Instrument Node.js core http2 module to trace HTTP/2 communication (except for server push/
pushStream
).
- Instrument superagent's custom thenable to keep asynchronous context.
- Provide experimental API to instrument specific modules on demand for non-standard build/deployment scenarios (e.g. bundling dependencies).
- Fix captured protocol for https URLs in some HTTP exit spans.
- [AWS Fargate] Collect Docker metrics on platform version 1.4.0, too.
- [AWS Fargate] Collect and report Docker metrics.
- Fix: Only require @instana/autoprofile if profiling has been enabled.
- Fix: Recover gracefully from absence of @instana/autoprofile (since it is an optional dependency).
- Add more mongodb command names for collection lookup.
- Provide an API to manually restore the asynchronous context (async_hooks/AsyncWrap continuity) as a workaround for libraries that break it.
- [AWS Fargate] In-process data collection for AWS Fargate tasks via new package
@instana/aws-fargate
(alpha). Requires at least Instana back end version 178.@instana/aws-fargate
supports Node.js 8.6.0 or later.
- Fix PID used in profiling payload when running in a container.
- Add
@instana/autoprofile
to support Instana AutoProfile™ (automated and continuous production profiler). Instana AutoProfile is currently opt-in and can be enabled with the config optionautoProfile: true
or via the environment variableINSTANA_AUTO_PROFILE=true
.
- Update to
netlinkwrapper@1.2.0
. - Fix
span.annotate
to support paths to nested properties (paths can be strings as well as arrays). - Fix: Protect a custom path template from being overwritten by instrumented middleware running later.
- [AWS Lambda] Add support for
INSTANA_ENDPOINT_PROXY
(send data to Instana via a proxy). - Add support for Node.js 14.
- Update to
event-loop-stats@1.3.0
, to support detecting synchronous event loop blocking.
- Instrument @elastic/elasticsearch (aka modern Elasticsearch client).
- Fix instrumentation for legacy Elasticsearch client (https://www.npmjs.com/package/elasticsearch), do not discard subsequent exit spans.
- Make instrumentation robust against montagejs/collections#178.
- Make check for disabled instrumentation stricter (the keys provided in config.tracing.disabledTracers/INSTANA_DISABLED_TRACERS need to be an exact, case-insensitive match of the instrumentation file now). If you have used this configuration option and relied on the fact that this was a string.contains check previously, you might need to update your config.
- [AWS Lambda] Fix: Add a connection timeout in addition to the read/idle timeout.
- Capture the error message and/or stack trace when completing and SDK span with an error.
- Support deployment scenario in which the whole application is installed from a registry via npm install instead of only its dependencies.
- [AWS Lambda] Fix stale timeout events on socket object induced by AWS Lambda runtime freezing and thawing the process.
- Support X-INSTANA-SYNTHETIC.
- Support tracing of deferred HTTP exits (that is, capture HTTP exits if the entry that triggered it has already finished).
- [AWS Lambda] Add support for INSTANA_DISABLE_CA_CHECK.
- [AWS Lambda] Reset
requestHasFailed
flag on start of Lambda handler. - [AWS Lambda] Improve logging for data reporting timeouts.
- [AWS Lambda] Remove misleading "Traces and metrics have been sent to Instana." message.
- Remove deprecated span attributes
span.error
andspan.async
. - Remove obsolete configuration option
config.agentName
/INSTANA_AGENT_NAME
.
- [AWS Lambda] Do not try to send data to the Instana back end when a previous request to it has already failed.
- [AWS Lambda] Change span offloading intervall to 5 seconds.
- [AWS Lambda] Make sure that an uninstrumented https connection is used for span offloading.
- [AWS Lambda] Change layer name from
instana
toinstana-nodejs
to prepare for the extension of native AWS Lambda tracing to other runtimes.
- Always capture duration of GraphQL calls.
- Support
INSTANA_DEBUG
in native serverless tracing.
- Do not remove tags from lower priority spans when changing the span type (e.g. http -> graphql)
- Fix mongodb tracing for outdated versions of the mongodb package.
- Support for new website monitoring/mobile back end correlation via extended X-INSTANA-L header.
- Capture request and response headers on outgoing HTTP calls.
- Support for W3C Trace Context.
- Fix: Annotate path templates (Express.js, Koa, Hapi, ...) and error messages (Express.js) on all HTTP entry spans, not only on root spans.
- Add API method to annotate spans with custom tags.
- Rewrite MongoDB instrumentation from scratch without using its APM API (which makes it hard to keep the trace context across async calls).
- Instrument Apigee Microgateway/edgemicro's worker processes automatically when they are spawned.
- Provide an executable for static instrumentation of a globally installed edgemicro CLI (see our docs for details).
- Keep asynchronous context across memored IPC communication gaps.
- [AWS Lambda] Replace intid value if it already exists in the Server-Timing header (in case the same result object is reused for multiple requests).
- Also support Winston 1.x and 2.x plus
express-winston
(in addition to Winston >= 3.x, which is already supported).
- Improve support for Apollo Federation by instrumenting @apollo/gateway.
- Downgrade log level for missing package.json in potential depedency directory from info to debug.
- Add instrumentation for pg-native (
pg-native
is an alternative PostgreSQL driver package, in addition to the already supported pg package).
- [AWS Lambda] Reduce execution time penalty for native AWS Lambda tracing even further.
- Refactor agentready state to not use closures.
- [AWS Lambda] Avoid duplicated postHandler calls.
- [AWS Lambda] Call original callback in wrapped context.succeed/context.fail/context.done.
- Allow GraphQL tracing over other protocols in addition to HTTP.
- Also capture incoming HTTP calls that time out on the client side or are aborted on the server side (via
req.destroy()
).
- Add support for the log4js logging package.
- [AWS Lambda] Instrument deprecated legacy Lambda API (context.done, context.succeed, and context.fail).
- Fix stack trace capturing for Winston log calls.
- Add kafkajs instrumentation (kafkajs).
- Trace MySql pool cluster calls.
- Capture synchronous errors in Lambda functions.
- Handle ARN correctly when a Lambda function is called via an alias.
- Fully cover Winston 3.x API surface.
- Provide access to Instana Node.js API via
@instana/aws-lambda
. - Add instana.sdk.async alias for instana.sdk.promise.
- Add ability to disable individual tracers via
config.tracing.disabledTracers
orINSTANA_DISABLED_TRACERS
.
- [AWS Lambda] Cache target handler across invocations.
- Add auto-wrap package for AWS Lambda to enable Lambda tracing without code modification.
- Only use
X-Instana-Service
HTTP header when agent is configured to capture it.
- Support
INSTANA_SERVICE_NAME
/config.serviceName
for auto-tracing and SDK spans. Previously, this has only been supported for OpenTracing spans. - Support
X-Instana-Service
HTTP header.
- [AWS Lambda] Inject EUM back end correlation header in AWS Lambda responses if possible.
- Do not add tracing headers to signed aws-sdk HTTP requests.
- Extract serverless utilities that are not specific to the AWS Lambda platform into their own utility package, @instana/serverless.
- Log a warning when @instana/collector has been initialized too late. Additionally, this will be transmitted as snapshot data.
- Capture HTTP response headers for HTTP entry spans.
- [AWS Lambda] Support new environment variables
INSTANA_ENDPOINT_URL
andINSTANA_AGENT_KEY
in addition to the now deprecated variablesINSTANA_URL
andINSTANA_KEY
.
- [AWS Lambda] Improve logging.
- [AWS Lambda] In-process data collection for AWS Lambdas via new package @instana/aws-lambda (beta).
- Move some metrics from core to collector package.
- Fix cases where GraphQL tracing would break when another non-HTTP entry span is already active.
- Allow early init of instrumentations (experimental).
- Improve announce cycle by polling for the "agent ready" state once a second, this will bring the delay from "announce" to "agent ready" down from 10 to ~1 seconds for the majority of cases (in particular with the improved agent to be released soon).
- Enforce minimum delay of one second between sending snapshot data and the first spans.
- Add NATS.io instrumentation (nats).
- Add NATS streaming instrumentation (node-nats-streaming).
- Fix: Add MongoDB command details for update, replace and delete operations.
- Avoid triggering fastify's
basePath
deprecation warning.
- Remove overaggressive validation warning for HTTP spans.
- Add support for kafka-node >= 4.0.0.
- Bunyan: support for capturing the error message from a nested error object (attribute
err
) given in the fields argument.
- 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
cls.ns._set
entries).
- Add graphql instrumentation (graphql).
- Require
cls-bluebird
before installing the require hook forbluebird
so client code can usecls-bluebird
without conflicts (#152, thanks to @jonathansamines). - Fix tracing of
https
client calls in Node.js 8.9.0.
- Add additional check to
requireHook
in case other modules interfering withrequire
(likerequire-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
bluebird
are present.
- 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).
- 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