Git Product home page Git Product logo

nodejs's Introduction

Instana Node.js Monorepo

Changelog | Contributing | @instana/collector


Instana npm packages

This repository hosts all Instana's Node.js tracer packages.

Traditional server-based environments

Serverless environments

Please use our @instana/serverless-collector for any other serverless environment.

Breaking Changes

The current major release is 3.x.y.

Checkout our breaking changes documentation.

Filing Issues

If something is not working as expected or you have a question, instead of opening an issue in this repository, please open a ticket at https://www.ibm.com/mysupport instead. Please refrain from filing issues or tickets if your audit tool (npm audit, Snyk, etc.) reported a CVE for a dependency or a transitive dependency of @instana/collector -- we run these audits with every build and take appropriate action automatically.

Documentation

The documentation for Instana's Node.js support is available on Node.js page of the Instana documentation portal.

Here are a few more quick links:

nodejs's People

Contributors

abhilash-sivan avatar aryamohanan avatar athirasomanath avatar basti1302 avatar beep-boop-beep avatar bripkens avatar cjihrig avatar codingfabian avatar dependabot[bot] avatar dmelikyan avatar dtrwos avatar hmadison avatar instanacd avatar jamessharp avatar jborut avatar jhorowitz avatar joicejoy1988 avatar jonathansamines avatar kirrg001 avatar libozh avatar lowsky avatar orangecoding avatar pglombardo avatar reimertz avatar s9tpepper avatar serayaeryn avatar thisismissem avatar willianpc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nodejs's Issues

[Bug]: Instana context loss when cls-hooked is also used

Problem Description

When the @instana/collector is loaded into a Node.js application, but that application also uses cls-hooked to propagate and preserve it's own context, then they both seem to conflict and only one context is propagated, furthermore
upon closer inspection, this problem only seems to happen when:

  • The request contains a payload
  • The request object is explicitly bound through the use of bindEmitter

Short, Self Contained Example

Please see instana-context-loss for a complete, self contained reproduction of the problem.

Node.js Version

Node.js 14.18.2

package.json

{
  "name": "test-instana",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@instana/collector": "^1.137.2",
    "cls-hooked": "^4.2.2",
    "express": "^4.17.1"
  }
}

package-lock.json

{
  "name": "test-instana",
  "version": "1.0.0",
  "lockfileVersion": 1,
  "requires": true,
  "dependencies": {
    "@instana/autoprofile": {
      "version": "1.137.2",
      "resolved": "https://registry.npmjs.org/@instana/autoprofile/-/autoprofile-1.137.2.tgz",
      "integrity": "sha512-KvlfxNz18YKM1/wZRGKfd62vp/vd8w4aobNcm91oq8Ck0qS9BPWmBbBWiKeuzj8fsqRQGgWHh/4VCu+Yl3YmRA==",
      "optional": true,
      "requires": {
        "detect-libc": "^1.0.3",
        "nan": "^2.14.2",
        "node-abi": "^2.30.0"
      }
    },
    "@instana/collector": {
      "version": "1.137.2",
      "resolved": "https://registry.npmjs.org/@instana/collector/-/collector-1.137.2.tgz",
      "integrity": "sha512-wEKc7+NoQcjfBz9SN4SZ/M/oU5tlJtHmFs9EG+a6FMk3m88vaIdPb+ZsO14G4Eu0uoFUIZOqQB6BcrVDlNkFrA==",
      "requires": {
        "@instana/autoprofile": "1.137.2",
        "@instana/core": "1.137.2",
        "@instana/shared-metrics": "1.137.2",
        "bunyan": "^1.8.15",
        "semver": "7.3.3",
        "serialize-error": "^3.0.0",
        "shimmer": "1.2.1"
      }
    },
    "@instana/core": {
      "version": "1.137.2",
      "resolved": "https://registry.npmjs.org/@instana/core/-/core-1.137.2.tgz",
      "integrity": "sha512-UKE7yr76UTpN0Oh0A8pHMktPTZng/kzmCOBRprkJfD7Ud4bnZ1hZBz383bEgFk4Ieha0gbA/CI37AkPb8LdP8A==",
      "requires": {
        "async-hook-jl": "^1.7.6",
        "cls-bluebird": "^2.1.0",
        "lru-cache": "6.0.0",
        "methods": "^1.1.2",
        "opentracing": "^0.14.5",
        "redis-commands": "^1.7.0",
        "semver": "7.3.3",
        "shimmer": "1.2.1"
      }
    },
    "@instana/shared-metrics": {
      "version": "1.137.2",
      "resolved": "https://registry.npmjs.org/@instana/shared-metrics/-/shared-metrics-1.137.2.tgz",
      "integrity": "sha512-RCzuFwLea5BVu91ieh+whOgSHU5xQjyoSNa3cixMBvGin48Y/2nWZ4v9EIjO33murWQpS1b2GJVFDGvQaXz6iw==",
      "requires": {
        "@instana/core": "1.137.2",
        "detect-libc": "^1.0.3",
        "event-loop-lag": "^1.4.0",
        "event-loop-stats": "1.3.0",
        "gcstats.js": "1.0.0",
        "recursive-copy": "^2.0.13",
        "semver": "7.3.3",
        "tar": "^6.1.11"
      }
    },
    "accepts": {
      "version": "1.3.7",
      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
      "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
      "requires": {
        "mime-types": "~2.1.24",
        "negotiator": "0.6.2"
      }
    },
    "array-differ": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
      "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE="
    },
    "array-flatten": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
      "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
    },
    "array-union": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
      "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
      "requires": {
        "array-uniq": "^1.0.1"
      }
    },
    "array-uniq": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
    },
    "arrify": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
      "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
    },
    "asap": {
      "version": "2.0.6",
      "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
      "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
    },
    "async-hook-jl": {
      "version": "1.7.6",
      "resolved": "https://registry.npmjs.org/async-hook-jl/-/async-hook-jl-1.7.6.tgz",
      "integrity": "sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==",
      "requires": {
        "stack-chain": "^1.3.7"
      }
    },
    "balanced-match": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
    },
    "body-parser": {
      "version": "1.19.0",
      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
      "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
      "requires": {
        "bytes": "3.1.0",
        "content-type": "~1.0.4",
        "debug": "2.6.9",
        "depd": "~1.1.2",
        "http-errors": "1.7.2",
        "iconv-lite": "0.4.24",
        "on-finished": "~2.3.0",
        "qs": "6.7.0",
        "raw-body": "2.4.0",
        "type-is": "~1.6.17"
      },
      "dependencies": {
        "debug": {
          "version": "2.6.9",
          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
          "requires": {
            "ms": "2.0.0"
          }
        },
        "ms": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
        }
      }
    },
    "brace-expansion": {
      "version": "1.1.11",
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
      "requires": {
        "balanced-match": "^1.0.0",
        "concat-map": "0.0.1"
      }
    },
    "bunyan": {
      "version": "1.8.15",
      "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz",
      "integrity": "sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==",
      "requires": {
        "dtrace-provider": "~0.8",
        "moment": "^2.19.3",
        "mv": "~2",
        "safe-json-stringify": "~1"
      }
    },
    "bytes": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
      "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
    },
    "chownr": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
      "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
    },
    "cls-bluebird": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/cls-bluebird/-/cls-bluebird-2.1.0.tgz",
      "integrity": "sha1-N+8eCAqP+1XC9BZPU28ZGeeWiu4=",
      "requires": {
        "is-bluebird": "^1.0.2",
        "shimmer": "^1.1.0"
      }
    },
    "cls-hooked": {
      "version": "4.2.2",
      "resolved": "https://registry.npmjs.org/cls-hooked/-/cls-hooked-4.2.2.tgz",
      "integrity": "sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==",
      "requires": {
        "async-hook-jl": "^1.7.6",
        "emitter-listener": "^1.0.1",
        "semver": "^5.4.1"
      },
      "dependencies": {
        "semver": {
          "version": "5.7.1",
          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
        }
      }
    },
    "concat-map": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
    },
    "content-disposition": {
      "version": "0.5.3",
      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
      "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
      "requires": {
        "safe-buffer": "5.1.2"
      }
    },
    "content-type": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
      "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
    },
    "cookie": {
      "version": "0.4.0",
      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
      "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
    },
    "cookie-signature": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
    },
    "debug": {
      "version": "3.2.7",
      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
      "requires": {
        "ms": "^2.1.1"
      }
    },
    "del": {
      "version": "2.2.2",
      "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
      "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
      "requires": {
        "globby": "^5.0.0",
        "is-path-cwd": "^1.0.0",
        "is-path-in-cwd": "^1.0.0",
        "object-assign": "^4.0.1",
        "pify": "^2.0.0",
        "pinkie-promise": "^2.0.0",
        "rimraf": "^2.2.8"
      }
    },
    "depd": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
    },
    "destroy": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
    },
    "detect-libc": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
      "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
    },
    "dtrace-provider": {
      "version": "0.8.8",
      "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz",
      "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==",
      "optional": true,
      "requires": {
        "nan": "^2.14.0"
      }
    },
    "ee-first": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
    },
    "emitter-listener": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz",
      "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==",
      "requires": {
        "shimmer": "^1.2.0"
      }
    },
    "encodeurl": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
    },
    "errno": {
      "version": "0.1.8",
      "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
      "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
      "requires": {
        "prr": "~1.0.1"
      }
    },
    "escape-html": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
    },
    "etag": {
      "version": "1.8.1",
      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
    },
    "event-loop-lag": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/event-loop-lag/-/event-loop-lag-1.4.0.tgz",
      "integrity": "sha512-uNAYTAexGyPI7rms2jSES20nhUoCtjkmxgaOcAfaoaOQ6h3q1+fw6d5MfyfV0zMJpR//+GUYPVXrh2Wbv+E0sQ==",
      "requires": {
        "debug": "^3.1.0"
      }
    },
    "event-loop-stats": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/event-loop-stats/-/event-loop-stats-1.3.0.tgz",
      "integrity": "sha512-CRto3Zyg3YE3AaBM/hPc7mJrbSOhy32P1wqIsZpp4rPHrj5qQavLUJKf+8fFq13ahC24T+RcX3f3fK13ElYZNw==",
      "optional": true,
      "requires": {
        "nan": "^2.14.0"
      }
    },
    "express": {
      "version": "4.17.1",
      "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
      "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
      "requires": {
        "accepts": "~1.3.7",
        "array-flatten": "1.1.1",
        "body-parser": "1.19.0",
        "content-disposition": "0.5.3",
        "content-type": "~1.0.4",
        "cookie": "0.4.0",
        "cookie-signature": "1.0.6",
        "debug": "2.6.9",
        "depd": "~1.1.2",
        "encodeurl": "~1.0.2",
        "escape-html": "~1.0.3",
        "etag": "~1.8.1",
        "finalhandler": "~1.1.2",
        "fresh": "0.5.2",
        "merge-descriptors": "1.0.1",
        "methods": "~1.1.2",
        "on-finished": "~2.3.0",
        "parseurl": "~1.3.3",
        "path-to-regexp": "0.1.7",
        "proxy-addr": "~2.0.5",
        "qs": "6.7.0",
        "range-parser": "~1.2.1",
        "safe-buffer": "5.1.2",
        "send": "0.17.1",
        "serve-static": "1.14.1",
        "setprototypeof": "1.1.1",
        "statuses": "~1.5.0",
        "type-is": "~1.6.18",
        "utils-merge": "1.0.1",
        "vary": "~1.1.2"
      },
      "dependencies": {
        "debug": {
          "version": "2.6.9",
          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
          "requires": {
            "ms": "2.0.0"
          }
        },
        "ms": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
        }
      }
    },
    "finalhandler": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
      "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
      "requires": {
        "debug": "2.6.9",
        "encodeurl": "~1.0.2",
        "escape-html": "~1.0.3",
        "on-finished": "~2.3.0",
        "parseurl": "~1.3.3",
        "statuses": "~1.5.0",
        "unpipe": "~1.0.0"
      },
      "dependencies": {
        "debug": {
          "version": "2.6.9",
          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
          "requires": {
            "ms": "2.0.0"
          }
        },
        "ms": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
        }
      }
    },
    "forwarded": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
      "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
    },
    "fresh": {
      "version": "0.5.2",
      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
    },
    "fs-minipass": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
      "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
      "requires": {
        "minipass": "^3.0.0"
      }
    },
    "fs.realpath": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
    },
    "gcstats.js": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/gcstats.js/-/gcstats.js-1.0.0.tgz",
      "integrity": "sha1-hdGcqXvz5EIU6jR0wLYh5LehAJA=",
      "optional": true,
      "requires": {
        "nan": "^2.0.5"
      }
    },
    "glob": {
      "version": "7.2.0",
      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
      "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
      "requires": {
        "fs.realpath": "^1.0.0",
        "inflight": "^1.0.4",
        "inherits": "2",
        "minimatch": "^3.0.4",
        "once": "^1.3.0",
        "path-is-absolute": "^1.0.0"
      }
    },
    "globby": {
      "version": "5.0.0",
      "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
      "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
      "requires": {
        "array-union": "^1.0.1",
        "arrify": "^1.0.0",
        "glob": "^7.0.3",
        "object-assign": "^4.0.1",
        "pify": "^2.0.0",
        "pinkie-promise": "^2.0.0"
      }
    },
    "graceful-fs": {
      "version": "4.2.8",
      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
      "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
    },
    "http-errors": {
      "version": "1.7.2",
      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
      "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
      "requires": {
        "depd": "~1.1.2",
        "inherits": "2.0.3",
        "setprototypeof": "1.1.1",
        "statuses": ">= 1.5.0 < 2",
        "toidentifier": "1.0.0"
      },
      "dependencies": {
        "inherits": {
          "version": "2.0.3",
          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
        }
      }
    },
    "iconv-lite": {
      "version": "0.4.24",
      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
      "requires": {
        "safer-buffer": ">= 2.1.2 < 3"
      }
    },
    "inflight": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
      "requires": {
        "once": "^1.3.0",
        "wrappy": "1"
      }
    },
    "inherits": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
    },
    "ipaddr.js": {
      "version": "1.9.1",
      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
      "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
    },
    "is-bluebird": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/is-bluebird/-/is-bluebird-1.0.2.tgz",
      "integrity": "sha1-CWQ5Bg9KpBGr7hkUOoTWpVNG1uI="
    },
    "is-path-cwd": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
      "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0="
    },
    "is-path-in-cwd": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
      "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
      "requires": {
        "is-path-inside": "^1.0.0"
      }
    },
    "is-path-inside": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
      "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
      "requires": {
        "path-is-inside": "^1.0.1"
      }
    },
    "junk": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz",
      "integrity": "sha1-h75jSIZJy9ym9Tqzm+yczSNH9ZI="
    },
    "lru-cache": {
      "version": "6.0.0",
      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
      "requires": {
        "yallist": "^4.0.0"
      }
    },
    "maximatch": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz",
      "integrity": "sha1-hs2NawTJ8wfAWmuUGZBtA2D7E6I=",
      "requires": {
        "array-differ": "^1.0.0",
        "array-union": "^1.0.1",
        "arrify": "^1.0.0",
        "minimatch": "^3.0.0"
      }
    },
    "media-typer": {
      "version": "0.3.0",
      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
    },
    "merge-descriptors": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
    },
    "methods": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
    },
    "mime": {
      "version": "1.6.0",
      "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
    },
    "mime-db": {
      "version": "1.51.0",
      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
      "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g=="
    },
    "mime-types": {
      "version": "2.1.34",
      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz",
      "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==",
      "requires": {
        "mime-db": "1.51.0"
      }
    },
    "minimatch": {
      "version": "3.0.4",
      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
      "requires": {
        "brace-expansion": "^1.1.7"
      }
    },
    "minimist": {
      "version": "1.2.5",
      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
      "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
    },
    "minipass": {
      "version": "3.1.6",
      "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz",
      "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==",
      "requires": {
        "yallist": "^4.0.0"
      }
    },
    "minizlib": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
      "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
      "requires": {
        "minipass": "^3.0.0",
        "yallist": "^4.0.0"
      }
    },
    "mkdirp": {
      "version": "0.5.5",
      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
      "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
      "requires": {
        "minimist": "^1.2.5"
      }
    },
    "moment": {
      "version": "2.29.1",
      "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
      "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==",
      "optional": true
    },
    "ms": {
      "version": "2.1.3",
      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
    },
    "mv": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
      "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=",
      "optional": true,
      "requires": {
        "mkdirp": "~0.5.1",
        "ncp": "~2.0.0",
        "rimraf": "~2.4.0"
      },
      "dependencies": {
        "glob": {
          "version": "6.0.4",
          "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
          "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
          "optional": true,
          "requires": {
            "inflight": "^1.0.4",
            "inherits": "2",
            "minimatch": "2 || 3",
            "once": "^1.3.0",
            "path-is-absolute": "^1.0.0"
          }
        },
        "rimraf": {
          "version": "2.4.5",
          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
          "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=",
          "optional": true,
          "requires": {
            "glob": "^6.0.1"
          }
        }
      }
    },
    "nan": {
      "version": "2.15.0",
      "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz",
      "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==",
      "optional": true
    },
    "ncp": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
      "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=",
      "optional": true
    },
    "negotiator": {
      "version": "0.6.2",
      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
    },
    "node-abi": {
      "version": "2.30.1",
      "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
      "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==",
      "optional": true,
      "requires": {
        "semver": "^5.4.1"
      },
      "dependencies": {
        "semver": {
          "version": "5.7.1",
          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
          "optional": true
        }
      }
    },
    "object-assign": {
      "version": "4.1.1",
      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
    },
    "on-finished": {
      "version": "2.3.0",
      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
      "requires": {
        "ee-first": "1.1.1"
      }
    },
    "once": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
      "requires": {
        "wrappy": "1"
      }
    },
    "opentracing": {
      "version": "0.14.5",
      "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.5.tgz",
      "integrity": "sha512-XLKtEfHxqrWyF1fzxznsv78w3csW41ucHnjiKnfzZLD5FN8UBDZZL1i4q0FR29zjxXhm+2Hop+5Vr/b8tKIvEg=="
    },
    "parseurl": {
      "version": "1.3.3",
      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
    },
    "path-is-absolute": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
    },
    "path-is-inside": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM="
    },
    "path-to-regexp": {
      "version": "0.1.7",
      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
    },
    "pify": {
      "version": "2.3.0",
      "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
      "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
    },
    "pinkie": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
    },
    "pinkie-promise": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
      "requires": {
        "pinkie": "^2.0.0"
      }
    },
    "promise": {
      "version": "7.3.1",
      "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
      "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
      "requires": {
        "asap": "~2.0.3"
      }
    },
    "proxy-addr": {
      "version": "2.0.7",
      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
      "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
      "requires": {
        "forwarded": "0.2.0",
        "ipaddr.js": "1.9.1"
      }
    },
    "prr": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
      "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY="
    },
    "pseudomap": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
    },
    "qs": {
      "version": "6.7.0",
      "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
      "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
    },
    "range-parser": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
    },
    "raw-body": {
      "version": "2.4.0",
      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
      "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
      "requires": {
        "bytes": "3.1.0",
        "http-errors": "1.7.2",
        "iconv-lite": "0.4.24",
        "unpipe": "1.0.0"
      }
    },
    "recursive-copy": {
      "version": "2.0.13",
      "resolved": "https://registry.npmjs.org/recursive-copy/-/recursive-copy-2.0.13.tgz",
      "integrity": "sha512-BjmE6R/dOImStEku+017L3Z0I6u/lA+SVr1sySWbTLjmQKDTESNmJ9WBZP8wbN5FuvqNvSYvRKA/IKQhAjqnpQ==",
      "requires": {
        "del": "^2.2.0",
        "errno": "^0.1.2",
        "graceful-fs": "^4.1.4",
        "junk": "^1.0.1",
        "maximatch": "^0.1.0",
        "mkdirp": "^0.5.1",
        "pify": "^2.3.0",
        "promise": "^7.0.1",
        "slash": "^1.0.0"
      }
    },
    "redis-commands": {
      "version": "1.7.0",
      "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz",
      "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ=="
    },
    "rimraf": {
      "version": "2.7.1",
      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
      "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
      "requires": {
        "glob": "^7.1.3"
      }
    },
    "safe-buffer": {
      "version": "5.1.2",
      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
    },
    "safe-json-stringify": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
      "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
      "optional": true
    },
    "safer-buffer": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
    },
    "semver": {
      "version": "7.3.3",
      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.3.tgz",
      "integrity": "sha512-kBGrn+sE2tyi6f4c9aFrrYRSTTF5yNOEVRBCdpcgykFp3jt2ZGlBwzIwWER9J9HZnQa9IF1TrR8Xy2UU+eaUhQ==",
      "requires": {
        "lru-cache": "^4.1.5"
      },
      "dependencies": {
        "lru-cache": {
          "version": "4.1.5",
          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
          "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
          "requires": {
            "pseudomap": "^1.0.2",
            "yallist": "^2.1.2"
          }
        },
        "yallist": {
          "version": "2.1.2",
          "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
          "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
        }
      }
    },
    "send": {
      "version": "0.17.1",
      "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
      "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
      "requires": {
        "debug": "2.6.9",
        "depd": "~1.1.2",
        "destroy": "~1.0.4",
        "encodeurl": "~1.0.2",
        "escape-html": "~1.0.3",
        "etag": "~1.8.1",
        "fresh": "0.5.2",
        "http-errors": "~1.7.2",
        "mime": "1.6.0",
        "ms": "2.1.1",
        "on-finished": "~2.3.0",
        "range-parser": "~1.2.1",
        "statuses": "~1.5.0"
      },
      "dependencies": {
        "debug": {
          "version": "2.6.9",
          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
          "requires": {
            "ms": "2.0.0"
          },
          "dependencies": {
            "ms": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
              "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
            }
          }
        },
        "ms": {
          "version": "2.1.1",
          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
        }
      }
    },
    "serialize-error": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-3.0.0.tgz",
      "integrity": "sha512-+y3nkkG/go1Vdw+2f/+XUXM1DXX1XcxTl99FfiD/OEPUNw4uo0i6FKABfTAN5ZcgGtjTRZcEbxcE/jtXbEY19A=="
    },
    "serve-static": {
      "version": "1.14.1",
      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
      "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
      "requires": {
        "encodeurl": "~1.0.2",
        "escape-html": "~1.0.3",
        "parseurl": "~1.3.3",
        "send": "0.17.1"
      }
    },
    "setprototypeof": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
      "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
    },
    "shimmer": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
      "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw=="
    },
    "slash": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
      "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU="
    },
    "stack-chain": {
      "version": "1.3.7",
      "resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-1.3.7.tgz",
      "integrity": "sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU="
    },
    "statuses": {
      "version": "1.5.0",
      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
      "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
    },
    "tar": {
      "version": "6.1.11",
      "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
      "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
      "requires": {
        "chownr": "^2.0.0",
        "fs-minipass": "^2.0.0",
        "minipass": "^3.0.0",
        "minizlib": "^2.1.1",
        "mkdirp": "^1.0.3",
        "yallist": "^4.0.0"
      },
      "dependencies": {
        "mkdirp": {
          "version": "1.0.4",
          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
          "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
        }
      }
    },
    "toidentifier": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
      "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
    },
    "type-is": {
      "version": "1.6.18",
      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
      "requires": {
        "media-typer": "0.3.0",
        "mime-types": "~2.1.24"
      }
    },
    "unpipe": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
    },
    "utils-merge": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
    },
    "vary": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
    },
    "wrappy": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
    },
    "yallist": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
    }
  }
}

update to @instana/collector broke our application

previously we are referencing instana-nodejs-sensor. After our CI / CD ran npm install yesterday it errored out saying the package is renamed to @instana/collector. I have updated our application to reference the new package and followed the instructions here. Unfortunately I'm getting errors after the agent is instantiated.

TypeError:ย Cannotย readย propertyย 'timeBetweenHealthcheckCalls'ย ofย undefined
ย ย ย ย atย Object.exports.activateย (/usr/src/app/node_modules/@instana/core/src/metrics/healthchecks.js:25:46)
ย ย ย ย atย /usr/src/app/node_modules/@instana/core/src/metrics/index.js:31:31
ย ย ย ย atย Array.forEachย ()
ย ย ย ย atย Object.exports.activateย (/usr/src/app/node_modules/@instana/core/src/metrics/index.js:29:24)
ย ย ย ย atย Object.exports.activateย (/usr/src/app/node_modules/@instana/collector/src/metrics/index.js:15:21)
ย ย ย ย atย Object.enterย (/usr/src/app/node_modules/@instana/collector/src/announceCycle/agentready.js:28:21)
ย ย ย ย atย Object.transitionToย (/usr/src/app/node_modules/@instana/collector/src/announceCycle/index.js:25:34)
ย ย ย ย atย /usr/src/app/node_modules/@instana/collector/src/announceCycle/announced.js:23:21
ย ย ย ย atย callbackWrappedForAtMostOneExecutionย (/usr/src/app/node_modules/@instana/core/src/util/atMostOnce.js:27:27)

@instana/collector at ^1.106.2 depends on optional dependencies unsafely

If you install your node modules with:

yarn install --production --ignore-optional --frozen-lockfile

Then the resulting installation will not run, as @instana/collector fails to require the event-loop-lagmodule, which is marked as optional, but in the code, it is required just asconst lag = require('event-loop-lag')(1000);`

This means our production build cannot start if we use the @instana/collector package.

[Bug]: Incorrect status code on aborted requests

Problem Description

When the client aborts a request before the server has been able to respond,
the Instana span will always record the span as having finalized with an http status code of 200.

Short, Self Contained Example

See reproduction example here

Node.js Version

See reproduction

package.json

See reproduction

package-lock.json

See reproduction

Cascading parallel spans not showing as expected

Problem Description

Good day!

We are working on a NodeJS application where it is a common pattern to run async processes in parallel, sometimes in a fire-and-forget manner. I started to instrument these parallel processes with Instana's custom intermediate spans, and in 90% of the cases it is working perfectly and is proving to be a valuable tool, but we have a problem in the remaining 10%. I am demonstrating the structure of our asynchronous calls here using delays.

Trace of example endpoint /f, where we fire-and-forgetting two overlapping spans with a delay, the spans get shown as expected:

image

But in endpoint /g traces seem to mix up the end timestamp of the spans. The endpoint is mostly the same as the first one, the difference is that in this case the second span is "forked" from the first one instead of the top-level entry-span. I would expect almost the same output we had for /f, but instead we get a longer first call and a shorter second call, like their end timestamps were swapped:

image

Let me know if I should provide more information.

Thanks,
Tamas

Short, Self Contained Example

Let me describe the context: we are working on a json API that uses https://www.npmjs.com/package/express with some customized decorators based on https://www.npmjs.com/package/routing-controllers. I believe the phenomenon I describe here could be reproduced using any framework.

Typescript

@injectable()
@Routing.ApiController(ROUTE_PREFIX_V1, '/dummy-context')
export class DummyContextController {

  @Routing.Get('/f')
  @Routing.HttpCode(HTTP.OK)
  async getDummyF(): Promise<string> {
    const instana: any = require('@instana/collector');
    await delay(200);
    (async () => {
      await instana.sdk.async.startIntermediateSpan('Custom parallel span 1');
      await delay(400);
      instana.sdk.async.completeIntermediateSpan();
    })();
    await delay(200);
    (async () => {
      await instana.sdk.async.startIntermediateSpan('Custom parallel span 2');
      await delay(400);
      instana.sdk.async.completeIntermediateSpan();
    })();
    return 'ok';
  }

  @Routing.Get('/g')
  @Routing.HttpCode(HTTP.OK)
  async getDummyG(): Promise<string> {
    const instana: any = require('@instana/collector');
    await delay(200);
    (async () => {
      await instana.sdk.async.startIntermediateSpan('Custom parallel span 1');
      await delay(200);
      (async () => {
        await instana.sdk.async.startIntermediateSpan('Custom parallel span 2');
        await delay(400);
        instana.sdk.async.completeIntermediateSpan();
      })();
      await delay(200);
      instana.sdk.async.completeIntermediateSpan();
    })();
    await delay(200);
    return 'ok';
  }
}

function delay(timeout: number): Promise<void> {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve();
    }, timeout);
  });
}

Node.js Version

NodeJS 14.18.3

package.json

I think only the Instana part is relevant, at least for now:

{
  "dependencies": {
    "@instana/collector": "2.4.0",
    "typescript": "4.7.2"
  }
}

yarn.lock

"@instana/[email protected]":
  version "2.4.0"
  resolved "https://registry.yarnpkg.com/@instana/autoprofile/-/autoprofile-2.4.0.tgz#65f95ef197eba32a72b9e37e891f65a2f79b137c"
  integrity sha512-G55T9RNVPSjnGaT0lKmE+peYFRGn+oiynUvBFo8qf03BRTywLxIp5pK/J3Muj32j4RUE/aZdRvx5TkzU9wxvXw==
  dependencies:
    detect-libc "^1.0.3"
    nan "^2.14.2"
    node-abi "^2.30.0"

"@instana/[email protected]":
  version "2.4.0"
  resolved "https://registry.yarnpkg.com/@instana/collector/-/collector-2.4.0.tgz#bb910c499f3783fa8968b5d44c7723125f8e9210"
  integrity sha512-eM/nmxgJ38C1FN6Y4f+DzDnSUd8X1n0vkmOCihWSr6b7Y6pb01pAT/VX9kumR+Zssug84XDSrPOdals4JLRFGA==
  dependencies:
    "@instana/core" "2.4.0"
    "@instana/shared-metrics" "2.4.0"
    bunyan "^1.8.15"
    semver "7.3.3"
    serialize-error "^3.0.0"
    shimmer "1.2.1"
  optionalDependencies:
    "@instana/autoprofile" "2.4.0"

"@instana/[email protected]":
  version "2.4.0"
  resolved "https://registry.yarnpkg.com/@instana/core/-/core-2.4.0.tgz#ed14f95eb0facc9e52b731f33358e5b0949e31ba"
  integrity sha512-tvBNlT7IVv2z8VsUxYuiwc3CBG/rxKMF9ktR1y7eG7z2wVLeW3s8HguKL/m2m989KZrOP5jbKE0wdhg0TEK/Hg==
  dependencies:
    async-hook-jl "^1.7.6"
    cls-bluebird "^2.1.0"
    lru-cache "6.0.0"
    methods "^1.1.2"
    opentracing "^0.14.5"
    redis-commands "^1.7.0"
    semver "7.3.3"
    shimmer "1.2.1"

"@instana/[email protected]":
  version "2.4.0"
  resolved "https://registry.yarnpkg.com/@instana/shared-metrics/-/shared-metrics-2.4.0.tgz#4036a207f97f878958b7f3af3b074a9dc30adf06"
  integrity sha512-RJil49ji+gdoOiYgeDMdHDOJrHD8roAfRU3HHB8wyT8vctzZDppGZZqeeofmVU7QATWnydHp7Ip/saBVbU9rAQ==
  dependencies:
    "@instana/core" "2.4.0"
    detect-libc "^1.0.3"
    event-loop-lag "^1.4.0"
    recursive-copy "^2.0.13"
    semver "7.3.3"
    tar "^6.1.11"
  optionalDependencies:
    event-loop-stats "1.4.1"
    gcstats.js "1.0.0"

...

[email protected]:
  version "4.7.2"
  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.2.tgz#1f9aa2ceb9af87cca227813b4310fff0b51593c4"
  integrity sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==

Instana cannot find process

Trying to add instana to our Node/Express API and we're getting the following log in our Instana Agent using

require('@instana/collector')();

Version 1.71.2

2019-08-27T13:08:40.420-0700 | INFO  | na-http-thread-4 | LoggerEndpoint                   | 51 - com.instana.agent - 1.1.505 | Node.js collector (pid: 8, reporting pid: 8): Transitioning from agentHostLookup to unannounced
2019-08-27T13:08:40.421-0700 | ERROR | na-http-thread-1 | Nodejs                           | 114 - com.instana.discovery-nodejs - 1.2.11 | Could not find the process NodejsProcess{pid='8', pidFromParentNS='false', name='node', arguments=[app.js], cpuSetFileContent='/ecs/prod-21/89a71c9121a24a0f879dfa0d215ae004/106e69fc7ec0d0bb24c2c80934020d2402608990586186837eece669e79b57c0
', fd='14', inode='socket:[34521786]'}.
2019-08-27T13:08:40.424-0700 | INFO  | na-http-thread-3 | LoggerEndpoint                   | 51 - com.instana.agent - 1.1.505 | Node.js collector (pid: 8, reporting pid: 8): Announce attempt failed: Announce to agent failed with status code 404. 

Not sure what is causing this issue, any ideas?

[Bug]: Instana instrumentation fails in applications using bull repeatable jobs

Problem Description

When the instana collector is loaded in an application using bull repeatable jobs, then the instrumentation fails and makes the application fail with the following error:

Cannot read property 'opts' of null
    TypeError: Cannot read property 'opts' of null
        at instrumentedProcessJob (/opt/xoom/apps/txm/node_modules/@instana/core/src/tracing/instrumentation/messaging/bull.js:188:23)
        at Queue.processJob (/opt/xoom/apps/txm/node_modules/@instana/core/src/tracing/instrumentation/messaging/bull.js:178:14)
        at runMicrotasks (<anonymous>)
        at processTicksAndRejections (internal/process/task_queues.js:95:5)

I looked a bit into this issue and seems to be caused by the fact that the job argument is optional for the Queue.prototype.processJob method which instana instruments considering that fact:

const job = originalArgs[0];
const options = job.opts;
const jobId = options.jobId;
if (!job) {
return originalProcessJob.apply(ctx, originalArgs);
}

However as you can see, the instrumentation unsafely access the optional job argument on L188-L189 before the optional argument check.

Short, Self Contained Example

Not at this time, if necessary I can try to isolate the issue.

Node.js Version

14.17.5

package.json

-

package-lock.json

-

Automatically mask basic-auth url credentials

In the context of a node runtime, some application dependencies that are using a legacy basic-auth in the URL may get exposed in (plain-text) within an account.

For example, a call such as:
https://username:[email protected]/api/health

May expose the username:password. We'd like a regex to detect this well known pattern and mask the sensitive information in the agent. This is already happening within other runtimes (java/go)

Instana pointed to this area for a fix:
https://github.com/instana/nodejs-sensor/blob/main/packages/core/src/tracing/instrumentation/protocols/httpClient.js#L137

@instana/collector 1.119.0 does not find module '../../../../../core/src/tracing/cls'

The recently released @instana/collector 1.119.0 does not work for us anymore (1.118.0 did work):

$ npm install --global --only=production @instana/[email protected]
$ export NODE_PATH=$(npm root --quiet --global)
$ node -e 'require("@instana/collector")'
[...]
Error: Cannot find module '../../../../../core/src/tracing/cls'
Require stack:
- $HOME/.npm-global/lib/node_modules/@instana/collector/src/tracing/instrumentation/process/childProcess.js
- $HOME/.npm-global/lib/node_modules/@instana/collector/src/tracing/index.js
- $HOME/.npm-global/lib/node_modules/@instana/collector/src/index.js
- /tmp/[eval]
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> ($HOME/.npm-global/lib/node_modules/@instana/collector/src/tracing/instrumentation/process/childProcess.js:9:13)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '$HOME/.npm-global/lib/node_modules/@instana/collector/src/tracing/instrumentation/process/childProcess.js',
    '$HOME/.npm-global/lib/node_modules/@instana/collector/src/tracing/index.js',
    '$HOME/.npm-global/lib/node_modules/@instana/collector/src/index.js',
    '/tmp/[eval]'
  ]
}

Apparently @instana/collector/src/tracing/instrumentation/process/childProcess.js assumes that @instana/core is installed at ../../../../../core instead of simply letting Node.js resolve it using @instana/core/[...].

When I create a new `cls-bluebird` context, it fails when require Bluebird

I'm getting an error in my app when I create a new cls-bluebird context, I made an snippet to reproduce it, this snippet works with [email protected], but when I update to [email protected] it fails,

Code:

require('instana-nodejs-sensor')();
var createNamespace = require('cls-hooked').createNamespace;

const clsBluebird = require('cls-bluebird');

createNamespace('test');
clsBluebird(process.namespaces['test']);
console.log(process.namespaces);

Dependencies

[email protected] /Users/huortiz/dev/sandbox/test
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ””โ”€โ”€ [email protected]

Output

/Users/huortiz/dev/sandbox/test/node_modules/cls-bluebird/lib/index.js:48
                if (!Promise) throw new Error('Could not require Bluebird');
                              ^

Error: Could not require Bluebird
    at patchBluebird (/Users/huortiz/dev/sandbox/test/node_modules/cls-bluebird/lib/index.js:48:23)
    at Object.<anonymous> (/Users/huortiz/dev/sandbox/test/instana-sensor.js:8:1)
    at Module._compile (internal/modules/cjs/loader.js:774:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
    at Module.load (internal/modules/cjs/loader.js:641:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Function.Module.runMain (internal/modules/cjs/loader.js:837:10)
    at internal/main/run_main_module.js:17:11

this trace could help

TypeError: require(...) is not a function
    at patchBluebird (/Users/huortiz/dev/sandbox/test/node_modules/@instana/core/src/tracing/instrumentation/control_flow/bluebird.js:19:26)
    at Function.patchedModuleLoad [as _load] (/Users/huortiz/dev/sandbox/test/node_modules/@instana/core/src/util/requireHook.js:58:36)
    at Module.require (internal/modules/cjs/loader.js:681:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at Object.<anonymous> (/Users/huortiz/dev/sandbox/test/node_modules/cls-bluebird/lib/index.js:15:13)
    at Module._compile (internal/modules/cjs/loader.js:774:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
    at Module.load (internal/modules/cjs/loader.js:641:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Function.patchedModuleLoad [as _load] (/Users/huortiz/dev/sandbox/test/node_modules/@instana/core/src/util/requireHook.js:25:32)
    at Module.require (internal/modules/cjs/loader.js:681:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at Object.<anonymous> (/Users/huortiz/dev/sandbox/test/instana-sensor.js:4:21)
    at Module._compile (internal/modules/cjs/loader.js:774:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
    at Module.load (internal/modules/cjs/loader.js:641:32)

I know, I can use clsBluebird(ns, Promise) instead of clsBluebird(ns), but, why require() is not a function? Is there an issue?

Warning and errrors while building angular ssr app

Environment
CentOS Linux release 7.8.2003 (Core)
node.js v12.11.1
yarn v1.22.5

Dependencies:
"@angular/core": "~9.1.7",
"express": "^4.15.2",
"@nguniversal/express-engine": "^9.1.0",
"@instana/collector": "^1.129.0"

Problem:
After adding Instana, as shown below, build ends with warnings, errors. So build doesn't work.

// Instana
// tslint:disable-next-line
import instana from '@instana/collector';
// You need to call the exported function *immediately*, before importing anything else.
instana();

// tslint:disable-next-line
import { APP_BASE_HREF } from '@angular/common';
import { ngExpressEngine as engine } from '@nguniversal/express-engine';
import { REQUEST, RESPONSE } from '@nguniversal/express-engine/tokens';
import { NgExpressEngineDecorator } from '@spartacus/core';
import * as express from 'express';
import { existsSync, readFileSync } from 'fs';
import { createProxyMiddleware } from 'http-proxy-middleware';
import { createServer } from 'https';
import { join } from 'path';
import 'zone.js/dist/zone-node';

import { AppServerModule } from './src/main.server';

const ngExpressEngine = NgExpressEngineDecorator.get(engine);

// The Express app is exported so that it can be used by serverless Functions.
export function app() {
  const server = express();
  const distFolder = join(process.cwd(), 'dist/storefront/browser');
  const indexHtml = existsSync(join(distFolder, 'index.original.html'))
  ...

End of the build log:

Hash: 5272a7f256b5360005e8
Time: 112384ms
Built at: 2021-07-20 16:09:02
  Asset      Size  Chunks                    Chunk Names
main.js  11.5 MiB       0  [emitted]  [big]  main
Entrypoint main [big] = main.js
chunk    {0} main.js (main) 19.5 MiB [entry] [rendered]

WARNING in ./node_modules/@instana/collector/src/index.js 45:52-103
Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/@instana/shared-metrics/src/http.js 22:25-48
Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/@instana/core/src/tracing/index.js 156:51-78
Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/@instana/core/src/metrics/index.js 47:25-64
Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/@instana/shared-metrics/src/util/nativeModuleRetry.js 95:27-49
Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/@instana/shared-metrics/src/util/nativeModuleRetry.js 294:29-67
Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/@instana/autoprofile/lib/auto_profiler.js 9:12-61
Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/@instana/autoprofile/lib/auto_profiler.js 91:19-37
Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/dtrace-provider/dtrace-provider.js
Module not found: Error: Can't resolve './src/build' in '/home/aa.udalov/git/storefront/node_modules/dtrace-provider'

WARNING in ./node_modules/node-gyp/lib/Find-VisualStudio.cs 9:6
Module parse failed: Unexpected token (9:6)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| // This script needs to be compatible with PowerShell v2 to run on Windows 2008R2 and Windows 7.
| 
> using System;
| using System.Text;
| using System.Runtime.InteropServices;
Done in 360.68s.

API doesn't list latest lambda layer version

Using latest lambda layer v1.103.0 gives the following warning:
WARN Invalid configuration: config.tracing.http.extraHttpHeadersToCapture is not an array, the value will be ignored:
Is the versions list for lambda layer on your webpage not up to date? Latest Node module version for @instana/aws-lambda doesn't cause the same warning as it has the fix for this bug looking at the change log. If the lambda layer version isn't updated, when is it likely to be published.

Regards,
Deepak

Support MongoDB tracing

const mongodb = require('mongodb');

Span should be automatically created for calls to MongoDB.

Instana blowing up grpc metadata

We use PubSub and Instana is currently causing issues in our PubSub client by trying to instrument grpc. It seems to inject a ton of metadata and eventually it gets too large and PubSub client can not longer publish.

SEND_INITIAL_METADATA{key=3a 70 61 74 68 ':path' value=2f 67 6f 6f 67 6c 65 2e 70 75 62 73 75 62 2e 76 31 2e 50 75 62 6c 69 73 68 65 72 2f 50 75 62 6c 69 73 68 '/google.pubsub.v1.Publisher/Publish', key=78 2d 67 6f 6f 67 2d 61 70 69 2d 63 6c 69 65 6e 74 'x-goog-api-client' value=67 6c 2d 6e 6f 64 65 2f 76 38 2e 39 2e 34 20 67 72 70 63 2f 31 2e 31 39 2e 30 20 67 61 78 2f 30 2e 32 35 2e 35 20 67 61 70 69 63 2f 30 2e 32 37 2e 30 20 67 63 63 6c 2f 30 2e 32 37 2e 30 'gl-node/v8.9.4 grpc/1.19.0 gax/0.25.5 gapic/0.27.0 gccl/0.27.0', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 61 62 35 38 39 39 37 39 66 62 32 39 31 '000ab589979fb291', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 39 39 37 39 35 33 65 39 34 65 38 37 33 '000997953e94e873', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 66 32 33 62 61 66 61 39 34 36 61 62 62 '000f23bafa946abb', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 35 66 61 30 62 64 32 31 62 31 36 34 66 '0015fa0bd21b164f', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 39 34 31 36 37 39 65 61 32 30 65 66 37 '000941679ea20ef7', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 33 65 30 61 63 66 30 35 65 61 39 37 39 '0003e0acf05ea979', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 30 34 35 39 34 37 35 39 39 30 61 35 39 '0010459475990a59', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 32 32 37 39 38 66 64 66 31 65 61 32 62 '00022798fdf1ea2b', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 35 65 32 37 36 30 64 64 36 64 64 36 66 '0015e2760dd6dd6f', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 38 32 66 39 66 39 30 30 66 31 34 37 37 '00082f9f900f1477', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 32 39 38 34 36 63 38 63 35 63 30 34 39 '00029846c8c5c049', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 30 39 30 30 31 33 66 34 65 62 30 63 35 '000090013f4eb0c5', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 37 66 38 63 37 61 64 65 36 36 62 61 62 '0007f8c7ade66bab', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 37 34 62 62 34 63 65 63 66 35 32 32 31 '00174bb4cecf5221', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 33 35 38 61 36 62 35 35 35 65 65 37 39 '001358a6b555ee79', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 30 39 65 34 62 31 65 31 64 65 64 62 37 '00109e4b1e1dedb7', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 31 34 61 31 33 30 39 65 63 39 36 30 31 '00114a1309ec9601', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 33 34 37 62 31 30 37 61 63 37 30 38 31 '001347b107ac7081', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 38 36 31 31 33 61 66 64 62 63 36 33 37 '00086113afdbc637', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 38 35 34 36 65 33 32 33 61 36 35 31 64 '0018546e323a651d', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 34 34 65 63 35 34 39 63 61 62 31 32 39 '00144ec549cab129', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 34 34 65 63 35 34 39 63 61 62 31 32 39 '00144ec549cab129', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 61 64 36 62 61 34 65 33 39 38 34 34 39 '001ad6ba4e398449', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 61 64 36 62 61 34 65 33 39 38 34 34 39 '001ad6ba4e398449', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 65 34 36 38 37 38 33 34 34 31 61 33 66 '001e468783441a3f', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 65 34 36 38 37 38 33 34 34 31 61 33 66 '001e468783441a3f', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 66 31 38 61 64 35 38 36 31 61 32 37 64 '001f18ad5861a27d', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 66 31 38 61 64 35 38 36 31 61 32 37 64 '001f18ad5861a27d', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 30 61 39 31 36 30 39 34 33 31 61 38 65 31 '000a91609431a8e1', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 30 61 39 31 36 30 39 34 33 31 61 38 65 31 '000a91609431a8e1', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 62 61 35 38 63 65 62 37 62 63 33 62 33 '001ba58ceb7bc3b3', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 62 61 35 38 63 65 62 37 62 63 33 62 33 '001ba58ceb7bc3b3', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 64 65 64 34 33 66 66 39 34 34 30 34 62 '001ded43ff94404b', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 64 65 64 34 33 66 66 39 34 34 30 34 62 '001ded43ff94404b', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 64 66 30 61 65 34 66 33 62 64 39 66 33 '001df0ae4f3bd9f3', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 64 66 30 61 65 34 66 33 62 64 39 66 33 '001df0ae4f3bd9f3', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 31 62 63 35 32 38 65 34 39 61 61 39 33 '0011bc528e49aa93', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 31 62 63 35 32 38 65 34 39 61 61 39 33 '0011bc528e49aa93', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 30 64 39 39 38 33 61 64 33 39 36 30 35 39 '000d9983ad396059', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 30 64 39 39 38 33 61 64 33 39 36 30 35 39 '000d9983ad396059', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1' deadline=113920}
I0327 16:21:54.334408477     177 channel_stack.cc:226]       OP[client-auth:0x3bbd5a8]:  SEND_INITIAL_METADATA{key=3a 61 75 74 68 6f 72 69 74 79 ':authority' value=70 75 62 73 75 62 2e 67 6f 6f 67 6c 65 61 70 69 73 2e 63 6f 6d 3a 34 34 33 'pubsub.googleapis.com:443', key=3a 70 61 74 68 ':path' value=2f 67 6f 6f 67 6c 65 2e 70 75 62 73 75 62 2e 76 31 2e 50 75 62 6c 69 73 68 65 72 2f 50 75 62 6c 69 73 68 '/google.pubsub.v1.Publisher/Publish', key=78 2d 67 6f 6f 67 2d 61 70 69 2d 63 6c 69 65 6e 74 'x-goog-api-client' value=67 6c 2d 6e 6f 64 65 2f 76 38 2e 39 2e 34 20 67 72 70 63 2f 31 2e 31 39 2e 30 20 67 61 78 2f 30 2e 32 35 2e 35 20 67 61 70 69 63 2f 30 2e 32 37 2e 30 20 67 63 63 6c 2f 30 2e 32 37 2e 30 'gl-node/v8.9.4 grpc/1.19.0 gax/0.25.5 gapic/0.27.0 gccl/0.27.0', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 61 62 35 38 39 39 37 39 66 62 32 39 31 '000ab589979fb291', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 39 39 37 39 35 33 65 39 34 65 38 37 33 '000997953e94e873', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 66 32 33 62 61 66 61 39 34 36 61 62 62 '000f23bafa946abb', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 35 66 61 30 62 64 32 31 62 31 36 34 66 '0015fa0bd21b164f', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 39 34 31 36 37 39 65 61 32 30 65 66 37 '000941679ea20ef7', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 33 65 30 61 63 66 30 35 65 61 39 37 39 '0003e0acf05ea979', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 30 34 35 39 34 37 35 39 39 30 61 35 39 '0010459475990a59', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 32 32 37 39 38 66 64 66 31 65 61 32 62 '00022798fdf1ea2b', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 35 65 32 37 36 30 64 64 36 64 64 36 66 '0015e2760dd6dd6f', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 38 32 66 39 66 39 30 30 66 31 34 37 37 '00082f9f900f1477', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 32 39 38 34 36 63 38 63 35 63 30 34 39 '00029846c8c5c049', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 30 39 30 30 31 33 66 34 65 62 30 63 35 '000090013f4eb0c5', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 37 66 38 63 37 61 64 65 36 36 62 61 62 '0007f8c7ade66bab', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 37 34 62 62 34 63 65 63 66 35 32 32 31 '00174bb4cecf5221', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 33 35 38 61 36 62 35 35 35 65 65 37 39 '001358a6b555ee79', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 30 39 65 34 62 31 65 31 64 65 64 62 37 '00109e4b1e1dedb7', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 31 34 61 31 33 30 39 65 63 39 36 30 31 '00114a1309ec9601', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 33 34 37 62 31 30 37 61 63 37 30 38 31 '001347b107ac7081', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 30 38 36 31 31 33 61 66 64 62 63 36 33 37 '00086113afdbc637', key=78 2d 69 6e 73 74 61 6e 61 2d 73 'x-instana-s' value=30 30 31 38 35 34 36 65 33 32 33 61 36 35 31 64 '0018546e323a651d', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 34 34 65 63 35 34 39 63 61 62 31 32 39 '00144ec549cab129', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 34 34 65 63 35 34 39 63 61 62 31 32 39 '00144ec549cab129', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 61 64 36 62 61 34 65 33 39 38 34 34 39 '001ad6ba4e398449', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 61 64 36 62 61 34 65 33 39 38 34 34 39 '001ad6ba4e398449', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 65 34 36 38 37 38 33 34 34 31 61 33 66 '001e468783441a3f', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 65 34 36 38 37 38 33 34 34 31 61 33 66 '001e468783441a3f', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 66 31 38 61 64 35 38 36 31 61 32 37 64 '001f18ad5861a27d', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 66 31 38 61 64 35 38 36 31 61 32 37 64 '001f18ad5861a27d', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 30 61 39 31 36 30 39 34 33 31 61 38 65 31 '000a91609431a8e1', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 30 61 39 31 36 30 39 34 33 31 61 38 65 31 '000a91609431a8e1', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 62 61 35 38 63 65 62 37 62 63 33 62 33 '001ba58ceb7bc3b3', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 62 61 35 38 63 65 62 37 62 63 33 62 33 '001ba58ceb7bc3b3', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 64 65 64 34 33 66 66 39 34 34 30 34 62 '001ded43ff94404b', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 64 65 64 34 33 66 66 39 34 34 30 34 62 '001ded43ff94404b', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 64 66 30 61 65 34 66 33 62 64 39 66 33 '001df0ae4f3bd9f3', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 64 66 30 61 65 34 66 33 62 64 39 66 33 '001df0ae4f3bd9f3', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 31 62 63 35 32 38 65 34 39 61 61 39 33 '0011bc528e49aa93', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 31 31 62 63 35 32 38 65 34 39 61 61 39 33 '0011bc528e49aa93', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 30 64 39 39 38 33 61 64 33 39 36 30 35 39 '000d9983ad396059', key=78 2d 69 6e 73 74 61 6e 61 2d 74 'x-instana-t' value=30 30 30 64 39 39 38 33 61 64 33 39 36 30 35 39 '000d9983ad396059', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1', key=78 2d 69 6e 73 74 61 6e 61 2d 6c 'x-instana-l' value=31 '1' deadline=113920}

Build essentials on centos/redhat

Can you please add "sudo yum groupinstall 'Development Tools' as instructions to add support for event loop monitoring on centos/rhel?

Capture Express route path

It would be nice if Express (http server) spans could include information about the route path so I can use that path (instead of the "raw" URL) to view traces in the Instana GUI.

For example, Instana currently captures requests that look like /people/1234, and I need to manually configure Endpoints in the Instana GUI for every parameterized route in all of my applications.

Instead, I'd like for Instana's NodeJS sensor to capture the parameterized route path (ie. /people/:id) for each request, and have the option to utilize that path instead of the raw URL when mapping endpoints (and viewing traces) in the Instana GUI.

[Bug]: vulnerabilities in the dependencies

Problem Description

GHSA-93q8-gq69-wqmw
Package: ansi-regex
Dependency of: @instana/collector
Path: @instana/collector > @instana/autoprofile > node-gyp > npmlog > gauge > wide-align > string-width > strip-ansi > ansi-regex

Short, Self Contained Example

No response

Node.js Version

v14.16.1

package.json

{}

package-lock.json

{}

nodejs sensor triggers deprecation warning in Fastify

There is an issue with the instana nodejs sensor and Fastify:

When the instana-nodejs-sensor is activated and this is executed
https://github.com/instana/nodejs-sensor/blob/4a9e07fbc46db384f312d6139e2d6679423b28ef/packages/core/src/tracing/instrumentation/frameworks/fastify.js#L100

this deprecation warning in Fastify is triggered over and over:

Warning: basePath is deprecated. Use prefix instead. See: https://www.fastify.io/docs/latest/Server/#prefix

Error: Expected [function execute] to be a GraphQL schema

Hi.
Thank you for awesome APM solution :)
We are using GraphQL schema stitching and got the error:

Error: Expected [function execute] to be a GraphQL schema.
  File "/app/node_modules/graphql/type/schema.js", line 41, col 11, in assertSchema
    throw new Error("Expected ".concat((0, _inspect.default)(schema), " to be a GraphQL schema."));
  File "/app/node_modules/graphql/type/validate.js", line 44, col 28, in validateSchema
    (0, _schema.assertSchema)(schema); // If this Schema has already been validated, return the previous results.
  File "/app/node_modules/graphql/type/validate.js", line 68, col 16, in assertValidSchema
    var errors = validateSchema(schema);
  File "/app/node_modules/graphql/execution/execute.js", line 136, col 35, in assertValidExecutionArguments
    (0, _validate.assertValidSchema)(schema); // Variables, if provided, must be an object.
  File "/app/node_modules/graphql/execution/execute.js", line 86, col 3, in executeImpl
    assertValidExecutionArguments(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments,
  File "/app/node_modules/graphql/execution/execute.js", line 64, col 63, in execute
    return arguments.length === 1 ? executeImpl(argsOrSchema) : executeImpl({
  File "/app/node_modules/@instana/core/src/tracing/instrumentation/protocols/graphql.js", line 128, col 31, in traceQueryOrMutation
    return originalFunction.apply(this, arguments);
  File "/app/node_modules/@instana/core/src/tracing/instrumentation/protocols/graphql.js", line 75, col 14, in Object.instrumentedExecute
    return traceQueryOrMutation(
  File "/app/node_modules/graphql-tools/dist/stitching/delegateToSchema.js", line 96, col 52, in null.<anonymous>
    return [4 /*yield*/, graphql_1.execute(options.schema, processedRequest.document, info.rootValue, options.context, proce {snip}
  File "/app/node_modules/graphql-tools/dist/stitching/delegateToSchema.js", line 31, col 23, in step
    op = body.call(thisArg, _);

[Bug]: Incorrect process identification when pino v7+ transports are used

Problem Description

When the @instana/collector is loaded into a Node.js application, but that application also uses pino v7+ transports, then the Node.js process is sometimes identified as thread-stream instead of using the actual application name. The reproduction also includes a scenario where the same transport is used as a pino destination (omit the MODE env variable), in such cases the process is correctly identified.

Note: I cannot reliable reproduce the problem, sometimes the process is correctly identified even when pino transports are used. The problem may have something to do with the fact that pino transports work by using worker threads, but that is as far as my knowledge of the problem goes.

Short, Self Contained Example

See reproduction repository

Node.js Version

See reproduction

package.json

See reproduction

package-lock.json

See reproduction

Can't handle regex path definitions

https://github.com/instana/nodejs-sensor/blob/626ab3c8258d4e91d42a61d79603532a921b35b4/packages/core/src/tracing/instrumentation/frameworks/koa.js#L79

We use a regex path definition in the koa router and instana throws an error for every call. So we can't start our service.

TypeError: b.path.endsWith is not a function
ย  | at byMostSpecificLayer (/app/node_modules/instana-nodejs-sensor/src/tracing/instrumentation/frameworks/koa.js:79:22)
ย  | at Array.sort (native)
ย  | at /app/node_modules/instana-nodejs-sensor/src/tracing/instrumentation/frameworks/koa.js:50:30
ย  | at process._tickCallback (internal/process/next_tick.js:68:7)
ย ```

```router.all(/.*/, ....);```

Proposal: drop v8-profiler dependency

v8-profiler appears to be unmaintained, and it triggers nsp vulnerabilities via:

We've been adding nsp exceptions on our repos like this, but it's far from ideal.

Furthermore, it appears that v8-profiler is unnecessary on the newest versions of Node due to the inspector core module.

Perhaps in the future a semver major release could drop v8-profiler and adopt Node's inspector module?

Error while instrumenting kafka-node

I found an issue with the instana collector and sinek, the highlevel Kafka Client for nodejs.

Sinek depends on node-rdkafka and kafka-node and especially kafka-node causes an error in combination with the instana package.

/.../node_modules/@instana/core/src/tracing/instrumentation/messaging/kafka.js:25
  shimmer.wrap(kafka.HighLevelConsumer.prototype, 'emit', shimEmit);
                                       ^

TypeError: Cannot read property 'prototype' of undefined
    at instrument (/.../node_modules/@instana/core/src/tracing/instrumentation/messaging/kafka.js:25:40)
    at Function.patchedModuleLoad [as _load] (/.../node_modules/@instana/core/src/util/requireHook.js:58:36)
    at Module.require (internal/modules/cjs/loader.js:690:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/.../test.js:3:15)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:829:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

After a short research I found out that node-kafka does not provide a HighLevelConsumer, but a HighLevelProducer. I also can't find any hint in their repository that there ever was a HighLevelConsumer.

I guess that this is some kind of typo. The HighLevelProducer has an emit and send method, so I would guess that one can fix this bug with the following change in @instana/core/src/tracing/instrumentation/messaging/kafka.js:

function instrument(kafka) {
  shimmer.wrap(Object.getPrototypeOf(kafka.Producer.prototype), 'send', shimSend);
  shimmer.wrap(kafka.Consumer.prototype, 'emit', shimEmit);
  shimmer.wrap(kafka.HighLevelProducer.prototype, 'emit', shimEmit);
  shimmer.wrap(kafka.HighLevelProducer.prototype, 'send', shimSend);
}

I would make a pull-request, but I don't know how your instrumentation and the kafka-node module works. Maybe you can take a look at it and proof and fix it for me?

Redis: Send db KV

For endpoint labeling rules, there is some effort required to unify the K/Vs that instrumentation reports across languages.

The Node Redis instrumentation should be updated to send a db K/V. This is the numerical number for the database the operation is taking place on.

Issue with sequelize and instana

Hello, I use Postgres and instana. I have the following issue: sequelize/sequelize#10521 but I found out that it is related to instana because if I disable tracing everything works fine. I also observed that I hit the connection limit and it seems that every sequelize query that is instrumented by instana opens a new connection.

I am using the latest version of the nodejs-sensor package: "v1.61.2" .
Is it possible to just disable tracing for pg ?

Thank you in advance

Uncaught exception reporting not available with Alpine based docker images

After upgrading instana nodejs sensor to anything after 0.45, Alpine latest official Docker image fails to build the optional nodejs-sensor dependency "netlinkwrapper" and thereby Instana uncaught exception reporting feature gets disabled.

See the Dockerfiles below for a reference. Not sure if there's an easy fix to this build issue or should we assume the uncaught error reporting might stop with the 0.45+ upgrade. Latest sensor still builds good with the 8.x node-jessie image, but would be nice to keep using the Alpine image :)

###################################################
############ Dockerfile.8.12-alpine ###############
############ [email protected] #########
###################################################
# Fails with:
# /node_modules/netlinkwrapper: ../netlink/core.h:64:28: fatal error: sys/unistd.h: No such file or directory
FROM node:8.12.0-alpine
RUN apk update && apk upgrade && apk --no-cache add bash && apk --no-cache --virtual .deps add \
    make gcc g++ python linux-headers && yarn global add node-gyp && yarn --pure-lockfile
RUN yarn add [email protected]
####################################################
############ Dockerfile.8.12-alpine-instana-1.45 ###
############ [email protected] ##########
####################################################
# ALL OK
FROM node:8.12.0-alpine
RUN apk update && apk upgrade && apk --no-cache add bash && apk --no-cache --virtual .deps add \
    make gcc g++ python linux-headers && yarn global add node-gyp && yarn --pure-lockfile
RUN yarn add [email protected]

Node 10 docker build gyp ERR!

Hi,

I'm trying to build docket container with following Dockerfile:

FROM node:10.14

WORKDIR /app

COPY package*.json ./
RUN npm install --only=production

COPY . .

EXPOSE 3000

CMD [ "npm", "start"]

I'm seeing a lot of gyp ERR in output

Sending build context to Docker daemon   2.92MB
Step 1/7 : FROM node:10.14
 ---> d330537fea0f
Step 2/7 : WORKDIR /app
 ---> Running in f3bd76a366d7
Removing intermediate container f3bd76a366d7
 ---> d9e37dce17ee
Step 3/7 : COPY package*.json ./
 ---> 8e08a3fcb50c
Step 4/7 : RUN npm install --only=production
 ---> Running in 3ab24019f136

> @risingstack/[email protected] preinstall /app/node_modules/@risingstack/v8-profiler
> node -e 'process.exit(0)'


> [email protected] install /app/node_modules/dtrace-provider
> node-gyp rebuild || node suppress-error.js

make: Entering directory '/app/node_modules/dtrace-provider/build'
  TOUCH Release/obj.target/DTraceProviderStub.stamp
make: Leaving directory '/app/node_modules/dtrace-provider/build'

> [email protected] install /app/node_modules/event-loop-stats
> node-gyp rebuild

make: Entering directory '/app/node_modules/event-loop-stats/build'
  CXX(target) Release/obj.target/eventLoopStats/src/eventLoopStats.o
In file included from ../../nan/nan_new.h:189:0,
                 from ../../nan/nan.h:203,
                 from ../src/eventLoopStats.cc:1:
../../nan/nan_implementation_12_inl.h: In static member function 'static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)':
../../nan/nan_implementation_12_inl.h:337:37: warning: 'static v8::Local<v8::Value> v8::StringObject::New(v8::Local<v8::String>)' is deprecated: Use Isolate* version [-Wdeprecated-declarations]
   return v8::StringObject::New(value).As<v8::StringObject>();
                                     ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../../nan/nan.h:51,
                 from ../src/eventLoopStats.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:5053:37: note: declared here
                 static Local<Value> New(Local<String> value));
                                     ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../src/eventLoopStats.cc:1:0:
../../nan/nan.h: In constructor 'Nan::Utf8String::Utf8String(v8::Local<v8::Value>)':
../../nan/nan.h:1034:53: warning: 'v8::Local<v8::String> v8::Value::ToString() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
       v8::Local<v8::String> string = from->ToString();
                                                     ^
In file included from /root/.node-gyp/10.14.0/include/node/node.h:63:0,
                 from ../../nan/nan.h:51,
                 from ../src/eventLoopStats.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:10040:15: note: declared here
 Local<String> Value::ToString() const {
               ^~~~~
In file included from ../src/eventLoopStats.cc:1:0:
../../nan/nan.h:1044:74: warning: 'int v8::String::WriteUtf8(char*, int, int*, int) const' is deprecated: Use Isolate* version [-Wdeprecated-declarations]
         length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
                                                                          ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../../nan/nan.h:51,
                 from ../src/eventLoopStats.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:2659:21: note: declared here
                 int WriteUtf8(char* buffer, int length = -1,
                     ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
  SOLINK_MODULE(target) Release/obj.target/eventLoopStats.node
  COPY Release/eventLoopStats.node
make: Leaving directory '/app/node_modules/event-loop-stats/build'

> [email protected] install /app/node_modules/gcstats.js
> node-gyp rebuild

make: Entering directory '/app/node_modules/gcstats.js/build'
  CXX(target) Release/obj.target/gcstats/src/gcstats.o
In file included from ../../nan/nan_new.h:189:0,
                 from ../../nan/nan.h:203,
                 from ../src/gcstats.cc:1:
../../nan/nan_implementation_12_inl.h: In static member function 'static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)':
../../nan/nan_implementation_12_inl.h:337:37: warning: 'static v8::Local<v8::Value> v8::StringObject::New(v8::Local<v8::String>)' is deprecated: Use Isolate* version [-Wdeprecated-declarations]
   return v8::StringObject::New(value).As<v8::StringObject>();
                                     ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../../nan/nan.h:51,
                 from ../src/gcstats.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:5053:37: note: declared here
                 static Local<Value> New(Local<String> value));
                                     ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../src/gcstats.cc:1:0:
../../nan/nan.h: In constructor 'Nan::Utf8String::Utf8String(v8::Local<v8::Value>)':
../../nan/nan.h:1034:53: warning: 'v8::Local<v8::String> v8::Value::ToString() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
       v8::Local<v8::String> string = from->ToString();
                                                     ^
In file included from /root/.node-gyp/10.14.0/include/node/node.h:63:0,
                 from ../../nan/nan.h:51,
                 from ../src/gcstats.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:10040:15: note: declared here
 Local<String> Value::ToString() const {
               ^~~~~
In file included from ../src/gcstats.cc:1:0:
../../nan/nan.h:1044:74: warning: 'int v8::String::WriteUtf8(char*, int, int*, int) const' is deprecated: Use Isolate* version [-Wdeprecated-declarations]
         length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
                                                                          ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../../nan/nan.h:51,
                 from ../src/gcstats.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:2659:21: note: declared here
                 int WriteUtf8(char* buffer, int length = -1,
                     ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/gcstats.cc: In function 'void asyncAfter(uv_work_t*, int)':
../src/gcstats.cc:93:37: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
   afterGCCallback->Call(1, arguments);
                                     ^
In file included from ../src/gcstats.cc:1:0:
../../nan/nan.h:1618:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
  SOLINK_MODULE(target) Release/obj.target/gcstats.node
  COPY Release/gcstats.node
make: Leaving directory '/app/node_modules/gcstats.js/build'

> [email protected] install /app/node_modules/netlinkwrapper
> node-gyp rebuild

make: Entering directory '/app/node_modules/netlinkwrapper/build'
  CXX(target) Release/obj.target/netlinksocket/netlinksocket.o
  CXX(target) Release/obj.target/netlinksocket/netlinkwrapper.o
In file included from ../node_modules/nan/nan_new.h:189:0,
                 from ../node_modules/nan/nan.h:222,
                 from ../netlinkwrapper.cc:1:
../node_modules/nan/nan_implementation_12_inl.h: In static member function 'static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)':
../node_modules/nan/nan_implementation_12_inl.h:337:37: warning: 'static v8::Local<v8::Value> v8::StringObject::New(v8::Local<v8::String>)' is deprecated: Use Isolate* version [-Wdeprecated-declarations]
   return v8::StringObject::New(value).As<v8::StringObject>();
                                     ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../node_modules/nan/nan.h:52,
                 from ../netlinkwrapper.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:5053:37: note: declared here
                 static Local<Value> New(Local<String> value));
                                     ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../netlinkwrapper.cc:1:0:
../node_modules/nan/nan.h: In constructor 'Nan::Utf8String::Utf8String(v8::Local<v8::Value>)':
../node_modules/nan/nan.h:1063:53: warning: 'v8::Local<v8::String> v8::Value::ToString() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
       v8::Local<v8::String> string = from->ToString();
                                                     ^
In file included from /root/.node-gyp/10.14.0/include/node/node.h:63:0,
                 from ../node_modules/nan/nan.h:52,
                 from ../netlinkwrapper.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:10040:15: note: declared here
 Local<String> Value::ToString() const {
               ^~~~~
In file included from ../netlinkwrapper.cc:1:0:
../node_modules/nan/nan.h:1073:74: warning: 'int v8::String::WriteUtf8(char*, int, int*, int) const' is deprecated: Use Isolate* version [-Wdeprecated-declarations]
         length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
                                                                          ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../node_modules/nan/nan.h:52,
                 from ../netlinkwrapper.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:2659:21: note: declared here
                 int WriteUtf8(char* buffer, int length = -1,
                     ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../netlinkwrapper.cc: In static member function 'static void NetLinkWrapper::Connect(const v8::FunctionCallbackInfo<v8::Value>&)':
../netlinkwrapper.cc:81:42: warning: 'double v8::Value::NumberValue() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
     int port = (int)args[0]->NumberValue();
                                          ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../node_modules/nan/nan.h:52,
                 from ../netlinkwrapper.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:2475:45: note: declared here
   V8_DEPRECATED("Use maybe version", double NumberValue() const);
                                             ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../netlinkwrapper.cc:86:56: warning: 'v8::Local<v8::String> v8::Value::ToString() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
         v8::String::Utf8Value param1(args[1]->ToString());
                                                        ^
In file included from /root/.node-gyp/10.14.0/include/node/node.h:63:0,
                 from ../node_modules/nan/nan.h:52,
                 from ../netlinkwrapper.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:10040:15: note: declared here
 Local<String> Value::ToString() const {
               ^~~~~
../netlinkwrapper.cc:86:57: warning: 'v8::String::Utf8Value::Utf8Value(v8::Local<v8::Value>)' is deprecated: Use Isolate version [-Wdeprecated-declarations]
         v8::String::Utf8Value param1(args[1]->ToString());
                                                         ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../node_modules/nan/nan.h:52,
                 from ../netlinkwrapper.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:2892:28: note: declared here
                   explicit Utf8Value(Local<v8::Value> obj));
                            ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../netlinkwrapper.cc: In static member function 'static void NetLinkWrapper::Blocking(const v8::FunctionCallbackInfo<v8::Value>&)':
../netlinkwrapper.cc:132:57: warning: 'bool v8::Value::BooleanValue() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
             obj->socket->blocking(args[0]->BooleanValue());
                                                         ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../node_modules/nan/nan.h:52,
                 from ../netlinkwrapper.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:2474:43: note: declared here
   V8_DEPRECATED("Use maybe version", bool BooleanValue() const);
                                           ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../netlinkwrapper.cc: In static member function 'static void NetLinkWrapper::Read(const v8::FunctionCallbackInfo<v8::Value>&)':
../netlinkwrapper.cc:159:51: warning: 'double v8::Value::NumberValue() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
     size_t bufferSize = (int)args[0]->NumberValue();
                                                   ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../node_modules/nan/nan.h:52,
                 from ../netlinkwrapper.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:2475:45: note: declared here
   V8_DEPRECATED("Use maybe version", double NumberValue() const);
                                             ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../netlinkwrapper.cc:165:57: warning: 'bool v8::Value::BooleanValue() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
             obj->socket->blocking(args[1]->BooleanValue());
                                                         ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../node_modules/nan/nan.h:52,
                 from ../netlinkwrapper.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:2474:43: note: declared here
   V8_DEPRECATED("Use maybe version", bool BooleanValue() const);
                                           ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../netlinkwrapper.cc: In static member function 'static void NetLinkWrapper::Write(const v8::FunctionCallbackInfo<v8::Value>&)':
../netlinkwrapper.cc:207:52: warning: 'v8::Local<v8::String> v8::Value::ToString() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
     v8::String::Utf8Value param1(args[0]->ToString());
                                                    ^
In file included from /root/.node-gyp/10.14.0/include/node/node.h:63:0,
                 from ../node_modules/nan/nan.h:52,
                 from ../netlinkwrapper.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:10040:15: note: declared here
 Local<String> Value::ToString() const {
               ^~~~~
../netlinkwrapper.cc:207:53: warning: 'v8::String::Utf8Value::Utf8Value(v8::Local<v8::Value>)' is deprecated: Use Isolate version [-Wdeprecated-declarations]
     v8::String::Utf8Value param1(args[0]->ToString());
                                                     ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../node_modules/nan/nan.h:52,
                 from ../netlinkwrapper.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:2892:28: note: declared here
                   explicit Utf8Value(Local<v8::Value> obj));
                            ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
  CXX(target) Release/obj.target/netlinksocket/netlink/core.o
  CXX(target) Release/obj.target/netlinksocket/netlink/smart_buffer.o
  CXX(target) Release/obj.target/netlinksocket/netlink/socket.o
  CXX(target) Release/obj.target/netlinksocket/netlink/socket_group.o
  CXX(target) Release/obj.target/netlinksocket/netlink/util.o
  SOLINK_MODULE(target) Release/obj.target/netlinksocket.node
  COPY Release/netlinksocket.node
make: Leaving directory '/app/node_modules/netlinkwrapper/build'

> @risingstack/[email protected] install /app/node_modules/@risingstack/v8-profiler
> node-pre-gyp install --fallback-to-build

node-pre-gyp ERR! Tried to download(404): https://oss.risingstack.com/repo/v1/@risingstack/profiler/dist/v5.7.11/node-v64-linux-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for @risingstack/[email protected] and [email protected] (node-v64 ABI) (falling back to source compile with node-gyp)
node-pre-gyp ERR! Tried to download(undefined): https://oss.risingstack.com/repo/v1/@risingstack/profiler/dist/v5.7.11/node-v64-linux-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for @risingstack/[email protected] and [email protected] (node-v64 ABI) (falling back to source compile with node-gyp)
make: Entering directory '/app/node_modules/@risingstack/v8-profiler/build'
  CXX(target) Release/obj.target/profiler/src/profiler.o
make: Entering directory '/app/node_modules/@risingstack/v8-profiler/build'
  CXX(target) Release/obj.target/profiler/src/profiler.o
In file included from ../../../nan/nan_new.h:189:0,
                 from ../../../nan/nan.h:203,
                 from ../src/profiler.cc:2:
../../../nan/nan_implementation_12_inl.h: In static member function 'static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)':
../../../nan/nan_implementation_12_inl.h:337:37: warning: 'static v8::Local<v8::Value> v8::StringObject::New(v8::Local<v8::String>)' is deprecated: Use Isolate* version [-Wdeprecated-declarations]
   return v8::StringObject::New(value).As<v8::StringObject>();
                                     ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../src/profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:5053:37: note: declared here
                 static Local<Value> New(Local<String> value));
                                     ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../../../nan/nan_new.h:189:0,
                 from ../../../nan/nan.h:203,
                 from ../src/profiler.cc:2:
../../../nan/nan_implementation_12_inl.h: In static member function 'static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)':
../../../nan/nan_implementation_12_inl.h:337:37: warning: 'static v8::Local<v8::Value> v8::StringObject::New(v8::Local<v8::String>)' is deprecated: Use Isolate* version [-Wdeprecated-declarations]
   return v8::StringObject::New(value).As<v8::StringObject>();
                                     ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../src/profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:5053:37: note: declared here
                 static Local<Value> New(Local<String> value));
                                     ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../src/profiler.cc:2:0:
../../../nan/nan.h: In constructor 'Nan::Utf8String::Utf8String(v8::Local<v8::Value>)':
../../../nan/nan.h:1034:53: warning: 'v8::Local<v8::String> v8::Value::ToString() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
       v8::Local<v8::String> string = from->ToString();
                                                     ^
In file included from /root/.node-gyp/10.14.0/include/node/node.h:63:0,
                 from ../src/profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:10040:15: note: declared here
 Local<String> Value::ToString() const {
               ^~~~~
In file included from ../src/profiler.cc:2:0:
../../../nan/nan.h: In constructor 'Nan::Utf8String::Utf8String(v8::Local<v8::Value>)':
../../../nan/nan.h:1034:53: warning: 'v8::Local<v8::String> v8::Value::ToString() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
       v8::Local<v8::String> string = from->ToString();
                                                     ^
In file included from /root/.node-gyp/10.14.0/include/node/node.h:63:0,
                 from ../src/profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:10040:15: note: declared here
 Local<String> Value::ToString() const {
               ^~~~~
In file included from ../src/profiler.cc:2:0:
../../../nan/nan.h:1044:74: warning: 'int v8::String::WriteUtf8(char*, int, int*, int) const' is deprecated: Use Isolate* version [-Wdeprecated-declarations]
         length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
                                                                          ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../src/profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:2659:21: note: declared here
                 int WriteUtf8(char* buffer, int length = -1,
                     ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../src/profiler.cc:2:0:
../../../nan/nan.h:1044:74: warning: 'int v8::String::WriteUtf8(char*, int, int*, int) const' is deprecated: Use Isolate* version [-Wdeprecated-declarations]
         length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
                                                                          ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/node.h:63,
                 from ../src/profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:2659:21: note: declared here
                 int WriteUtf8(char* buffer, int length = -1,
                     ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
  CXX(target) Release/obj.target/profiler/src/cpu_profiler.o
rm: cannot remove './Release/.deps/Release/obj.target/profiler/src/profiler.o.d.raw': No such file or directory
make: *** [Release/obj.target/profiler/src/profiler.o] Error 1
profiler.target.mk:109: recipe for target 'Release/obj.target/profiler/src/profiler.o' failed
make: Leaving directory '/app/node_modules/@risingstack/v8-profiler/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
gyp ERR! System Linux 4.9.125-linuxkit
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/app/node_modules/@risingstack/v8-profiler/build/@risingstack/profiler/v5.7.11/node-v64-linux-x64/profiler.node" "--module_name=profiler" "--module_path=/app/node_modules/@risingstack/v8-profiler/build/@risingstack/profiler/v5.7.11/node-v64-linux-x64"
gyp ERR! cwd /app/node_modules/@risingstack/v8-profiler
gyp ERR! node -v v10.14.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/app/node_modules/@risingstack/v8-profiler/build/@risingstack/profiler/v5.7.11/node-v64-linux-x64/profiler.node --module_name=profiler --module_path=/app/node_modules/@risingstack/v8-profiler/build/@risingstack/profiler/v5.7.11/node-v64-linux-x64' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/app/node_modules/@risingstack/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:962:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
node-pre-gyp ERR! System Linux 4.9.125-linuxkit
node-pre-gyp ERR! command "/usr/local/bin/node" "/app/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /app/node_modules/@risingstack/v8-profiler
node-pre-gyp ERR! node -v v10.14.0
node-pre-gyp ERR! node-pre-gyp -v v0.6.35
node-pre-gyp ERR! not ok
Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/app/node_modules/@risingstack/v8-profiler/build/@risingstack/profiler/v5.7.11/node-v64-linux-x64/profiler.node --module_name=profiler --module_path=/app/node_modules/@risingstack/v8-profiler/build/@risingstack/profiler/v5.7.11/node-v64-linux-x64' (1)
In file included from ../../../nan/nan_new.h:189:0,
                 from ../../../nan/nan.h:203,
                 from ../src/cpu_profiler.h:6,
                 from ../src/cpu_profiler.cc:1:
../../../nan/nan_implementation_12_inl.h: In static member function 'static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)':
../../../nan/nan_implementation_12_inl.h:337:37: warning: 'static v8::Local<v8::Value> v8::StringObject::New(v8::Local<v8::String>)' is deprecated: Use Isolate* version [-Wdeprecated-declarations]
   return v8::StringObject::New(value).As<v8::StringObject>();
                                     ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/v8-profiler.h:10,
                 from ../src/cpu_profiler.h:4,
                 from ../src/cpu_profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:5053:37: note: declared here
                 static Local<Value> New(Local<String> value));
                                     ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../src/cpu_profiler.h:6:0,
                 from ../src/cpu_profiler.cc:1:
../../../nan/nan.h: In constructor 'Nan::Utf8String::Utf8String(v8::Local<v8::Value>)':
../../../nan/nan.h:1034:53: warning: 'v8::Local<v8::String> v8::Value::ToString() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
       v8::Local<v8::String> string = from->ToString();
                                                     ^
In file included from /root/.node-gyp/10.14.0/include/node/v8-profiler.h:10:0,
                 from ../src/cpu_profiler.h:4,
                 from ../src/cpu_profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:10040:15: note: declared here
 Local<String> Value::ToString() const {
               ^~~~~
In file included from ../src/cpu_profiler.h:6:0,
                 from ../src/cpu_profiler.cc:1:
../../../nan/nan.h:1044:74: warning: 'int v8::String::WriteUtf8(char*, int, int*, int) const' is deprecated: Use Isolate* version [-Wdeprecated-declarations]
         length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
                                                                          ^
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/v8-profiler.h:10,
                 from ../src/cpu_profiler.h:4,
                 from ../src/cpu_profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:2659:21: note: declared here
                 int WriteUtf8(char* buffer, int length = -1,
                     ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/cpu_profiler.cc: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE nodex::CpuProfiler::StartProfiling(Nan::NAN_METHOD_ARGS_TYPE)':
../src/cpu_profiler.cc:31:45: warning: 'v8::Local<v8::String> v8::Value::ToString() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
In file included from /root/.node-gyp/10.14.0/include/node/v8-profiler.h:10:0,
                 from ../src/cpu_profiler.h:4,
                 from ../src/cpu_profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:10040:15: note: declared here
 Local<String> Value::ToString() const {
               ^~~~~
../src/cpu_profiler.cc:34:42: warning: 'v8::Local<v8::Boolean> v8::Value::ToBoolean() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
In file included from /root/.node-gyp/10.14.0/include/node/v8-profiler.h:10:0,
                 from ../src/cpu_profiler.h:4,
                 from ../src/cpu_profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:10034:16: note: declared here
 Local<Boolean> Value::ToBoolean() const {
                ^~~~~
../src/cpu_profiler.cc:35:47: warning: 'v8::CpuProfiler* v8::Isolate::GetCpuProfiler()' is deprecated: CpuProfiler should be created with CpuProfiler::New call. [-Wdeprecated-declarations]
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/v8-profiler.h:10,
                 from ../src/cpu_profiler.h:4,
                 from ../src/cpu_profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:7485:30: note: declared here
                 CpuProfiler* GetCpuProfiler());
                              ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/cpu_profiler.cc: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE nodex::CpuProfiler::StopProfiling(Nan::NAN_METHOD_ARGS_TYPE)':
../src/cpu_profiler.cc:47:35: warning: 'v8::Local<v8::String> v8::Value::ToString() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
In file included from /root/.node-gyp/10.14.0/include/node/v8-profiler.h:10:0,
                 from ../src/cpu_profiler.h:4,
                 from ../src/cpu_profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:10040:15: note: declared here
 Local<String> Value::ToString() const {
               ^~~~~
../src/cpu_profiler.cc:54:57: warning: 'v8::CpuProfiler* v8::Isolate::GetCpuProfiler()' is deprecated: CpuProfiler should be created with CpuProfiler::New call. [-Wdeprecated-declarations]
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/v8-profiler.h:10,
                 from ../src/cpu_profiler.h:4,
                 from ../src/cpu_profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:7485:30: note: declared here
                 CpuProfiler* GetCpuProfiler());
                              ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/cpu_profiler.cc: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE nodex::CpuProfiler::SetSamplingInterval(Nan::NAN_METHOD_ARGS_TYPE)':
../src/cpu_profiler.cc:64:47: warning: 'v8::CpuProfiler* v8::Isolate::GetCpuProfiler()' is deprecated: CpuProfiler should be created with CpuProfiler::New call. [-Wdeprecated-declarations]
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/v8-profiler.h:10,
                 from ../src/cpu_profiler.h:4,
                 from ../src/cpu_profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:7485:30: note: declared here
                 CpuProfiler* GetCpuProfiler());
                              ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/cpu_profiler.cc:64:91: warning: 'uint32_t v8::Value::Uint32Value() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
In file included from /root/.node-gyp/10.14.0/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.14.0/include/node/v8-profiler.h:10,
                 from ../src/cpu_profiler.h:4,
                 from ../src/cpu_profiler.cc:1:
/root/.node-gyp/10.14.0/include/node/v8.h:2477:47: note: declared here
   V8_DEPRECATED("Use maybe version", uint32_t Uint32Value() const);
                                               ^
/root/.node-gyp/10.14.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/cpu_profiler.cc: At global scope:
../src/cpu_profiler.cc:67:1: fatal error: opening dependency file ./Release/.deps/Release/obj.target/profiler/src/cpu_profiler.o.d.raw: No such file or directory
compilation terminated.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @risingstack/[email protected] (node_modules/@risingstack/v8-profiler):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @risingstack/[email protected] install: `node-pre-gyp install --fallback-to-build`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

profiler.target.mk:109: recipe for target 'Release/obj.target/profiler/src/cpu_profiler.o' failed
make: Leaving directory '/app/node_modules/@risingstack/v8-profiler/build'
make: *** [Release/obj.target/profiler/src/cpu_profiler.o] Error 1
added 370 packages from 320 contributors and audited 25932 packages in 22.195s
found 8 low severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
gyp ERR! System Linux 4.9.125-linuxkit
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/app/node_modules/@risingstack/v8-profiler/build/@risingstack/profiler/v5.7.11/node-v64-linux-x64/profiler.node" "--module_name=profiler" "--module_path=/app/node_modules/@risingstack/v8-profiler/build/@risingstack/profiler/v5.7.11/node-v64-linux-x64"
gyp ERR! cwd /app/node_modules/@risingstack/v8-profiler
gyp ERR! node -v v10.14.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
Removing intermediate container 3ab24019f136
 ---> c01e5a6cc659
Step 5/7 : COPY . .
 ---> 24d95632cf68
Step 6/7 : EXPOSE 3000
 ---> Running in 6029b0515264
Removing intermediate container 6029b0515264
 ---> 0a9a53388363
Step 7/7 : CMD [ "npm", "run", "read" ]
 ---> Running in f26db1009baa
Removing intermediate container f26db1009baa
 ---> ad78242e80fe
Successfully built ad78242e80fe

I tried with node:10.6 version mentioned in dockerfile-examples, but still I get gyp ERR!:

Sending build context to Docker daemon   2.92MB
Step 1/7 : FROM node:10.6
 ---> 745543c62d8d
Step 2/7 : WORKDIR /app
 ---> Running in 828b9871d1f3
Removing intermediate container 828b9871d1f3
 ---> 6fd4f0ab5484
Step 3/7 : COPY package*.json ./
 ---> 80a0afd43266
Step 4/7 : RUN npm install --only=production
 ---> Running in 5eafb4716841

> @risingstack/[email protected] preinstall /app/node_modules/@risingstack/v8-profiler
> node -e 'process.exit(0)'


> [email protected] install /app/node_modules/dtrace-provider
> node-gyp rebuild || node suppress-error.js

make: Entering directory '/app/node_modules/dtrace-provider/build'
  TOUCH Release/obj.target/DTraceProviderStub.stamp
make: Leaving directory '/app/node_modules/dtrace-provider/build'

> [email protected] install /app/node_modules/event-loop-stats
> node-gyp rebuild

make: Entering directory '/app/node_modules/event-loop-stats/build'
  CXX(target) Release/obj.target/eventLoopStats/src/eventLoopStats.o
  SOLINK_MODULE(target) Release/obj.target/eventLoopStats.node
  COPY Release/eventLoopStats.node
make: Leaving directory '/app/node_modules/event-loop-stats/build'

> [email protected] install /app/node_modules/gcstats.js
> node-gyp rebuild

make: Entering directory '/app/node_modules/gcstats.js/build'
  CXX(target) Release/obj.target/gcstats/src/gcstats.o
../src/gcstats.cc: In function 'void asyncAfter(uv_work_t*, int)':
../src/gcstats.cc:93:37: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated (declared at ../../nan/nan.h:1618) [-Wdeprecated-declarations]
   afterGCCallback->Call(1, arguments);
                                     ^
  SOLINK_MODULE(target) Release/obj.target/gcstats.node
  COPY Release/gcstats.node
make: Leaving directory '/app/node_modules/gcstats.js/build'

> [email protected] install /app/node_modules/netlinkwrapper
> node-gyp rebuild

make: Entering directory '/app/node_modules/netlinkwrapper/build'
  CXX(target) Release/obj.target/netlinksocket/netlinksocket.o
  CXX(target) Release/obj.target/netlinksocket/netlinkwrapper.o
../netlinkwrapper.cc: In static member function 'static void NetLinkWrapper::Connect(const v8::FunctionCallbackInfo<v8::Value>&)':
../netlinkwrapper.cc:86:57: warning: 'v8::String::Utf8Value::Utf8Value(v8::Local<v8::Value>)' is deprecated (declared at /root/.node-gyp/10.6.0/include/node/v8.h:2851): Use Isolate version [-Wdeprecated-declarations]
         v8::String::Utf8Value param1(args[1]->ToString());
                                                         ^
../netlinkwrapper.cc: In static member function 'static void NetLinkWrapper::Write(const v8::FunctionCallbackInfo<v8::Value>&)':
../netlinkwrapper.cc:207:53: warning: 'v8::String::Utf8Value::Utf8Value(v8::Local<v8::Value>)' is deprecated (declared at /root/.node-gyp/10.6.0/include/node/v8.h:2851): Use Isolate version [-Wdeprecated-declarations]
     v8::String::Utf8Value param1(args[0]->ToString());
                                                     ^
  CXX(target) Release/obj.target/netlinksocket/netlink/core.o
  CXX(target) Release/obj.target/netlinksocket/netlink/smart_buffer.o
  CXX(target) Release/obj.target/netlinksocket/netlink/socket.o
  CXX(target) Release/obj.target/netlinksocket/netlink/socket_group.o
  CXX(target) Release/obj.target/netlinksocket/netlink/util.o
  SOLINK_MODULE(target) Release/obj.target/netlinksocket.node
  COPY Release/netlinksocket.node
make: Leaving directory '/app/node_modules/netlinkwrapper/build'

> @risingstack/[email protected] install /app/node_modules/@risingstack/v8-profiler
> node-pre-gyp install --fallback-to-build

node-pre-gyp ERR! Tried to download(404): https://oss.risingstack.com/repo/v1/@risingstack/profiler/dist/v5.7.11/node-v64-linux-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for @risingstack/[email protected] and [email protected] (node-v64 ABI) (falling back to source compile with node-gyp)
node-pre-gyp ERR! Tried to download(undefined): https://oss.risingstack.com/repo/v1/@risingstack/profiler/dist/v5.7.11/node-v64-linux-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for @risingstack/[email protected] and [email protected] (node-v64 ABI) (falling back to source compile with node-gyp)
make: Entering directory '/app/node_modules/@risingstack/v8-profiler/build'
  CXX(target) Release/obj.target/profiler/src/profiler.o
make: Entering directory '/app/node_modules/@risingstack/v8-profiler/build'
  CXX(target) Release/obj.target/profiler/src/profiler.o
  CXX(target) Release/obj.target/profiler/src/cpu_profiler.o
  CXX(target) Release/obj.target/profiler/src/cpu_profiler.o
../src/cpu_profiler.cc: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE nodex::CpuProfiler::StartProfiling(Nan::NAN_METHOD_ARGS_TYPE)':
../src/cpu_profiler.cc:35:47: warning: 'v8::CpuProfiler* v8::Isolate::GetCpuProfiler()' is deprecated (declared at /root/.node-gyp/10.6.0/include/node/v8.h:7354): CpuProfiler should be created with CpuProfiler::New call. [-Wdeprecated-declarations]
     v8::Isolate::GetCurrent()->GetCpuProfiler()->StartProfiling(title, recsamples);
                                               ^
../src/cpu_profiler.cc: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE nodex::CpuProfiler::StopProfiling(Nan::NAN_METHOD_ARGS_TYPE)':
../src/cpu_profiler.cc:54:57: warning: 'v8::CpuProfiler* v8::Isolate::GetCpuProfiler()' is deprecated (declared at /root/.node-gyp/10.6.0/include/node/v8.h:7354): CpuProfiler should be created with CpuProfiler::New call. [-Wdeprecated-declarations]
     profile = v8::Isolate::GetCurrent()->GetCpuProfiler()->StopProfiling(title);
                                                         ^
../src/cpu_profiler.cc: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE nodex::CpuProfiler::SetSamplingInterval(Nan::NAN_METHOD_ARGS_TYPE)':
../src/cpu_profiler.cc:64:47: warning: 'v8::CpuProfiler* v8::Isolate::GetCpuProfiler()' is deprecated (declared at /root/.node-gyp/10.6.0/include/node/v8.h:7354): CpuProfiler should be created with CpuProfiler::New call. [-Wdeprecated-declarations]
     v8::Isolate::GetCurrent()->GetCpuProfiler()->SetSamplingInterval(info[0]->Uint32Value());
                                               ^
../src/cpu_profiler.cc: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE nodex::CpuProfiler::StartProfiling(Nan::NAN_METHOD_ARGS_TYPE)':
../src/cpu_profiler.cc:35:47: warning: 'v8::CpuProfiler* v8::Isolate::GetCpuProfiler()' is deprecated (declared at /root/.node-gyp/10.6.0/include/node/v8.h:7354): CpuProfiler should be created with CpuProfiler::New call. [-Wdeprecated-declarations]
     v8::Isolate::GetCurrent()->GetCpuProfiler()->StartProfiling(title, recsamples);
                                               ^
../src/cpu_profiler.cc: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE nodex::CpuProfiler::StopProfiling(Nan::NAN_METHOD_ARGS_TYPE)':
../src/cpu_profiler.cc:54:57: warning: 'v8::CpuProfiler* v8::Isolate::GetCpuProfiler()' is deprecated (declared at /root/.node-gyp/10.6.0/include/node/v8.h:7354): CpuProfiler should be created with CpuProfiler::New call. [-Wdeprecated-declarations]
     profile = v8::Isolate::GetCurrent()->GetCpuProfiler()->StopProfiling(title);
                                                         ^
../src/cpu_profiler.cc: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE nodex::CpuProfiler::SetSamplingInterval(Nan::NAN_METHOD_ARGS_TYPE)':
../src/cpu_profiler.cc:64:47: warning: 'v8::CpuProfiler* v8::Isolate::GetCpuProfiler()' is deprecated (declared at /root/.node-gyp/10.6.0/include/node/v8.h:7354): CpuProfiler should be created with CpuProfiler::New call. [-Wdeprecated-declarations]
     v8::Isolate::GetCurrent()->GetCpuProfiler()->SetSamplingInterval(info[0]->Uint32Value());
                                               ^
  CXX(target) Release/obj.target/profiler/src/cpu_profile.o
  CXX(target) Release/obj.target/profiler/src/cpu_profile.o
  CXX(target) Release/obj.target/profiler/src/cpu_profile_node.o
sed: can't read ./Release/.deps/Release/obj.target/profiler/src/cpu_profile.o.d.raw: No such file or directory
rm: cannot remove './Release/.deps/Release/obj.target/profiler/src/cpu_profile.o.d.raw': No such file or directory
profiler.target.mk:103: recipe for target 'Release/obj.target/profiler/src/cpu_profile.o' failed
make: Leaving directory '/app/node_modules/@risingstack/v8-profiler/build'
make: *** [Release/obj.target/profiler/src/cpu_profile.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:237:12)
gyp ERR! System Linux 4.9.125-linuxkit
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/app/node_modules/@risingstack/v8-profiler/build/@risingstack/profiler/v5.7.11/node-v64-linux-x64/profiler.node" "--module_name=profiler" "--module_path=/app/node_modules/@risingstack/v8-profiler/build/@risingstack/profiler/v5.7.11/node-v64-linux-x64"
gyp ERR! cwd /app/node_modules/@risingstack/v8-profiler
gyp ERR! node -v v10.6.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/app/node_modules/@risingstack/v8-profiler/build/@risingstack/profiler/v5.7.11/node-v64-linux-x64/profiler.node --module_name=profiler --module_path=/app/node_modules/@risingstack/v8-profiler/build/@risingstack/profiler/v5.7.11/node-v64-linux-x64' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/app/node_modules/@risingstack/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:961:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:248:5)
node-pre-gyp ERR! System Linux 4.9.125-linuxkit
node-pre-gyp ERR! command "/usr/local/bin/node" "/app/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /app/node_modules/@risingstack/v8-profiler
node-pre-gyp ERR! node -v v10.6.0
node-pre-gyp ERR! node-pre-gyp -v v0.6.35
node-pre-gyp ERR! not ok
Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/app/node_modules/@risingstack/v8-profiler/build/@risingstack/profiler/v5.7.11/node-v64-linux-x64/profiler.node --module_name=profiler --module_path=/app/node_modules/@risingstack/v8-profiler/build/@risingstack/profiler/v5.7.11/node-v64-linux-x64' (1)
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @risingstack/[email protected] (node_modules/@risingstack/v8-profiler):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @risingstack/[email protected] install: `node-pre-gyp install --fallback-to-build`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

added 370 packages from 320 contributors and audited 25932 packages in 24.004s
found 8 low severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details
Removing intermediate container 5eafb4716841
 ---> fbe5c86a68f6
Step 5/7 : COPY . .
 ---> 2902be52f544
Step 6/7 : EXPOSE 3000
 ---> Running in fc06039ce64b
Removing intermediate container fc06039ce64b
 ---> 3f8820d25644
Step 7/7 : CMD [ "npm", "start"]
 ---> Running in 8593b8b635d0
Removing intermediate container 8593b8b635d0
 ---> f1b19dd67acc
Successfully built f1b19dd67acc

The only version that worked without any gyp ERR is node:8, but would really like to use node 10 if possible. Any suggestions how to get it to work with node 10?

enable the sensor transparent to the app

As per the doc, currently the Node.js sensor is enabled by modifying the application thus:

require('@instana/collector')();

Node.js provides at least two ways to source the module into the app without modifying the source:

both preload the module into the app, after the core module bootstrap, but before any app module is loaded.

The only caveat is that the () part of require('@instana/collector')() needs to be refactored - which function is being invoked here, needs to be executed outside of that function, at the time of sourcing the module itself.

Hope this make sense?

Windows: `Pre-built version of AutoProfile is not available (ABI not found), fallback to node-gyp. node-gyp not found.`

Hello,

I added dependency to @instana/autoprofile package inside my app. On Unix/Mac everything seems fine. However on Windows while doing npm install I get following error:

Pre-built version of AutoProfile is not available (ABI not found), fallback to node-gyp.
node-gyp not found.

This prevents people developing on Windows to setup app locally. I checked couple of times that node-gyp works fine on my machine, I am able to build some popular packages using node-gyp (for example: node-sass, bcrypt).

I am not an expert, but I figured out that spawning process inside https://github.com/instana/nodejs-sensor/blob/master/packages/autoprofile/node-gyp-fallback.js#L20 does not work as expected. I figured out two potential fixes:

var command = os.platform() === 'win32' ? 'node-gyp.cmd' : 'node-gyp';
var gyp = child_process.spawn(command, ['rebuild'], { cwd: process.cwd(), env: process.env, stdio: 'inherit' });

OR

var gyp = child_process.spawn('node-gyp', ['rebuild'], { cwd: process.cwd(), env: process.env, stdio: 'inherit', shell: true });

If I need to provide some more info, please let me know, I would be happy to help.

Can't enable tracing.

Can't get tracing feature working. Error message:

{"name":"instana-nodejs-sensor","hostname":"platform-2337947661-4hs1r","pid":6,"module":"tracing","level":40,"msg":"Could not enable tracing feature due to an error while loading async-hook { error: \n   { Error: Cannot find module 'async-hook'\n       at Function.Module._resolveFilename (module.js:470:15)\n       at Function.Module._load (module.js:418:25)\n       at Function.Module._load (/tmp/node_modules/instana-nodejs-sensor/src/util/requireHook.js:13:34)\n       at Module.require (module.js:498:17)\n       at require (internal/module.js:20:19)\n       at checkPrerequisites (/tmp/node_modules/instana-nodejs-sensor/src/tracing/index.js:47:5)\n       at Object.exports.init (/tmp/node_modules/instana-nodejs-sensor/src/tracing/index.js:11:27)\n       at start (/tmp/node_modules/instana-nodejs-sensor/src/index.js:17:24)\n       at Object.<anonymous> (/app/dist/index.js:27:35)\n       at Module._compile (module.js:571:32) code: 'MODULE_NOT_FOUND' } }","time":"2017-05-29T04:04:54.577Z","v":0}

I can see async-hook is declared as optional dependency. Should I have to change my build scripts? Please help.

Decorate errors with non-enumerable properties

When this library is enabled, seems like http errors gets decorated with the current request information if available.

See:

However, if for some reason, an application which prints the error (e.g in an express error handler), with a method that inspects all enumerable properties, then the current request object may be printed, and that may be a problem for a couple of reasons:

  • Users could be using JSON.stringify which by default don't limit the recursion levels and it may cause recursion calls problems with request which has circular references
  • The request object may container sensitive information, (sessions identifiers, users identifiers, or other secret information that developers may attach to it)

Would it make sense to change those properties to be non enumerable by default?

Typescript

Would it be possible to convert this codebase to typescript? I'd be happy to do the heavy lifting and make a pull request. It'd allow type safety and also make the codebase easier to reason about / introspect.

[Bug]: @instana/collector doesn't find the main package.json when the entry point is an ECMAScript Module

Problem Description

We're currently switching a microservice to ECMAScript Modules and noticed, that Instana can't find the main package.json anymore.

It logs:

The Instana Node.js collector is now fully initialized.
Main package.json could not be found after 20 retries. Looking for node_modules folder now.
Neither the package.json file nor the node_modules folder could be found. Stopping dependency analysis.
Main package.json could not be found. This Node.js app will be labeled "Unknown" in Instana.

Short, Self Contained Example

register-instana.cjs:

require('@instana/collector')();

index.js:

http.createServer((req, res) => {
    res.writeHead(404, { 'content-type': 'text/plain' });
    res.write('Not found');
    res.end();
});

Then run node --require register-instana.cjs index.js.

Node.js Version

v16.16.0

package.json

{
  "name": "repro",
  "type": "module",
  "dependencies": {
    "@instana/collector": "^2.6.0"
  }
}

package-lock.json

{
  "name": "repro",
  "lockfileVersion": 2,
  "requires": true,
  "packages": {
    "": {
      "name": "repro",
      "dependencies": {
        "@instana/collector": "^2.6.0"
      }
    },
    "node_modules/@instana/autoprofile": {
      "version": "2.6.0",
      "resolved": "https://registry.npmjs.org/@instana/autoprofile/-/autoprofile-2.6.0.tgz",
      "integrity": "sha512-L3V9g0vFr+V5lFR6JuTpfmn60kWF5E37ta5FyYcZUlL8Sxiuyf1d+KxwwQC9Zsil0mnBsS0J97FnG9Dj+/kuXA==",
      "hasInstallScript": true,
      "optional": true,
      "dependencies": {
        "detect-libc": "^1.0.3",
        "nan": "^2.14.2",
        "node-abi": "^2.30.0"
      }
    },
    "node_modules/@instana/collector": {
      "version": "2.6.0",
      "resolved": "https://registry.npmjs.org/@instana/collector/-/collector-2.6.0.tgz",
      "integrity": "sha512-BTBvFp0LYvJ3E6VcimK2ONcx6U4pSn+Th/tOfBHF00EsQNYMdgZKJoW/YoH3phQsqP8LPQrdaxLgRFKvp3FxuA==",
      "dependencies": {
        "@instana/core": "2.6.0",
        "@instana/shared-metrics": "2.6.0",
        "bunyan": "^1.8.15",
        "semver": "7.3.3",
        "serialize-error": "^3.0.0",
        "shimmer": "1.2.1"
      },
      "bin": {
        "instana-instrument-edgemicro-cli": "src/bin/instrument-edgemicro-cli.js"
      },
      "engines": {
        "node": ">=10.4.0"
      },
      "optionalDependencies": {
        "@instana/autoprofile": "2.6.0"
      }
    },
    "node_modules/@instana/core": {
      "version": "2.6.0",
      "resolved": "https://registry.npmjs.org/@instana/core/-/core-2.6.0.tgz",
      "integrity": "sha512-fFvgLIwCcDnxAGNrNjHLss2XoRuLUg0af/B9mGo5oBovjkMyPHTuG599yD3RfYDXN2OpJNQiBROS14Usg/rR+w==",
      "dependencies": {
        "async-hook-jl": "^1.7.6",
        "cls-bluebird": "^2.1.0",
        "lru-cache": "6.0.0",
        "methods": "^1.1.2",
        "opentracing": "^0.14.5",
        "redis-commands": "^1.7.0",
        "semver": "7.3.3",
        "shimmer": "1.2.1"
      }
    },
    "node_modules/@instana/shared-metrics": {
      "version": "2.6.0",
      "resolved": "https://registry.npmjs.org/@instana/shared-metrics/-/shared-metrics-2.6.0.tgz",
      "integrity": "sha512-bbRrCwMe0GCyAq9P6h5TbqP7Yevu5vmgVgrhAwEceHGstsJI/GrXsBZsyfoZXug7ypCs939USAcc6FLzM76pGA==",
      "dependencies": {
        "@instana/core": "2.6.0",
        "detect-libc": "^1.0.3",
        "event-loop-lag": "^1.4.0",
        "recursive-copy": "^2.0.13",
        "semver": "7.3.3",
        "tar": "^6.1.11"
      },
      "optionalDependencies": {
        "event-loop-stats": "1.4.1",
        "gcstats.js": "1.0.0"
      }
    },
    "node_modules/array-differ": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
      "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/array-union": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
      "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
      "dependencies": {
        "array-uniq": "^1.0.1"
      },
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/array-uniq": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
      "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/arrify": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
      "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/asap": {
      "version": "2.0.6",
      "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
      "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
    },
    "node_modules/async-hook-jl": {
      "version": "1.7.6",
      "resolved": "https://registry.npmjs.org/async-hook-jl/-/async-hook-jl-1.7.6.tgz",
      "integrity": "sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==",
      "dependencies": {
        "stack-chain": "^1.3.7"
      },
      "engines": {
        "node": "^4.7 || >=6.9 || >=7.3"
      }
    },
    "node_modules/balanced-match": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
    },
    "node_modules/brace-expansion": {
      "version": "1.1.11",
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
      "dependencies": {
        "balanced-match": "^1.0.0",
        "concat-map": "0.0.1"
      }
    },
    "node_modules/bunyan": {
      "version": "1.8.15",
      "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz",
      "integrity": "sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==",
      "engines": [
        "node >=0.10.0"
      ],
      "bin": {
        "bunyan": "bin/bunyan"
      },
      "optionalDependencies": {
        "dtrace-provider": "~0.8",
        "moment": "^2.19.3",
        "mv": "~2",
        "safe-json-stringify": "~1"
      }
    },
    "node_modules/chownr": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
      "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
      "engines": {
        "node": ">=10"
      }
    },
    "node_modules/cls-bluebird": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/cls-bluebird/-/cls-bluebird-2.1.0.tgz",
      "integrity": "sha512-XVb0RPmHQyy35Tz9z34gvtUcBKUK8A/1xkGCyeFc9B0C7Zr5SysgFaswRVdwI5NEMcO+3JKlIDGIOgERSn9NdA==",
      "dependencies": {
        "is-bluebird": "^1.0.2",
        "shimmer": "^1.1.0"
      }
    },
    "node_modules/concat-map": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
    },
    "node_modules/debug": {
      "version": "3.2.7",
      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
      "dependencies": {
        "ms": "^2.1.1"
      }
    },
    "node_modules/detect-libc": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
      "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
      "bin": {
        "detect-libc": "bin/detect-libc.js"
      },
      "engines": {
        "node": ">=0.10"
      }
    },
    "node_modules/dtrace-provider": {
      "version": "0.8.8",
      "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz",
      "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==",
      "hasInstallScript": true,
      "optional": true,
      "dependencies": {
        "nan": "^2.14.0"
      },
      "engines": {
        "node": ">=0.10"
      }
    },
    "node_modules/errno": {
      "version": "0.1.8",
      "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
      "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
      "dependencies": {
        "prr": "~1.0.1"
      },
      "bin": {
        "errno": "cli.js"
      }
    },
    "node_modules/event-loop-lag": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/event-loop-lag/-/event-loop-lag-1.4.0.tgz",
      "integrity": "sha512-uNAYTAexGyPI7rms2jSES20nhUoCtjkmxgaOcAfaoaOQ6h3q1+fw6d5MfyfV0zMJpR//+GUYPVXrh2Wbv+E0sQ==",
      "dependencies": {
        "debug": "^3.1.0"
      }
    },
    "node_modules/event-loop-stats": {
      "version": "1.4.1",
      "resolved": "https://registry.npmjs.org/event-loop-stats/-/event-loop-stats-1.4.1.tgz",
      "integrity": "sha512-Wzohoz1JrQOBjt/shh5Z3/8Ti6SVoGl5nyX952Vcp5N56QVOtjPuJsQa+dEhsDJHu4QAFz45ePXRFq01skb9xA==",
      "hasInstallScript": true,
      "optional": true,
      "dependencies": {
        "nan": "^2.14.0"
      },
      "engines": {
        "node": ">=4.0.0"
      }
    },
    "node_modules/fs-minipass": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
      "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
      "dependencies": {
        "minipass": "^3.0.0"
      },
      "engines": {
        "node": ">= 8"
      }
    },
    "node_modules/fs.realpath": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
    },
    "node_modules/gcstats.js": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/gcstats.js/-/gcstats.js-1.0.0.tgz",
      "integrity": "sha512-gY4x4gWpZtXwIot2js62z4xNNZd+skNzfr4zpK5lVvDqZcqWKP/LhMKKi1Q/VFszJgqPz8ZQpO/OG4SHRgiTng==",
      "hasInstallScript": true,
      "optional": true,
      "dependencies": {
        "nan": "^2.0.5"
      }
    },
    "node_modules/glob": {
      "version": "6.0.4",
      "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
      "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==",
      "optional": true,
      "dependencies": {
        "inflight": "^1.0.4",
        "inherits": "2",
        "minimatch": "2 || 3",
        "once": "^1.3.0",
        "path-is-absolute": "^1.0.0"
      },
      "engines": {
        "node": "*"
      }
    },
    "node_modules/graceful-fs": {
      "version": "4.2.10",
      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
      "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
    },
    "node_modules/inflight": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
      "dependencies": {
        "once": "^1.3.0",
        "wrappy": "1"
      }
    },
    "node_modules/inherits": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
    },
    "node_modules/is-bluebird": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/is-bluebird/-/is-bluebird-1.0.2.tgz",
      "integrity": "sha512-PDRu1vVip5dGQg5tfn2qVCCyxbBYu5MhYUJwSfL/RoGBI97n1fxvilVazxzptZW0gcmsMH17H4EVZZI5E/RSeA==",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/junk": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz",
      "integrity": "sha512-3KF80UaaSSxo8jVnRYtMKNGFOoVPBdkkVPsw+Ad0y4oxKXPduS6G6iHkrf69yJVff/VAaYXkV42rtZ7daJxU3w==",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/lru-cache": {
      "version": "6.0.0",
      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
      "dependencies": {
        "yallist": "^4.0.0"
      },
      "engines": {
        "node": ">=10"
      }
    },
    "node_modules/maximatch": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz",
      "integrity": "sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==",
      "dependencies": {
        "array-differ": "^1.0.0",
        "array-union": "^1.0.1",
        "arrify": "^1.0.0",
        "minimatch": "^3.0.0"
      },
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/methods": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
      "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/minimatch": {
      "version": "3.1.2",
      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
      "dependencies": {
        "brace-expansion": "^1.1.7"
      },
      "engines": {
        "node": "*"
      }
    },
    "node_modules/minimist": {
      "version": "1.2.6",
      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
      "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
    },
    "node_modules/minipass": {
      "version": "3.3.4",
      "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz",
      "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==",
      "dependencies": {
        "yallist": "^4.0.0"
      },
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/minizlib": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
      "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
      "dependencies": {
        "minipass": "^3.0.0",
        "yallist": "^4.0.0"
      },
      "engines": {
        "node": ">= 8"
      }
    },
    "node_modules/mkdirp": {
      "version": "0.5.6",
      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
      "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
      "dependencies": {
        "minimist": "^1.2.6"
      },
      "bin": {
        "mkdirp": "bin/cmd.js"
      }
    },
    "node_modules/moment": {
      "version": "2.29.4",
      "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
      "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
      "optional": true,
      "engines": {
        "node": "*"
      }
    },
    "node_modules/ms": {
      "version": "2.1.3",
      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
    },
    "node_modules/mv": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
      "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==",
      "optional": true,
      "dependencies": {
        "mkdirp": "~0.5.1",
        "ncp": "~2.0.0",
        "rimraf": "~2.4.0"
      },
      "engines": {
        "node": ">=0.8.0"
      }
    },
    "node_modules/nan": {
      "version": "2.16.0",
      "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz",
      "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==",
      "optional": true
    },
    "node_modules/ncp": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
      "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==",
      "optional": true,
      "bin": {
        "ncp": "bin/ncp"
      }
    },
    "node_modules/node-abi": {
      "version": "2.30.1",
      "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
      "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==",
      "optional": true,
      "dependencies": {
        "semver": "^5.4.1"
      }
    },
    "node_modules/node-abi/node_modules/semver": {
      "version": "5.7.1",
      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
      "optional": true,
      "bin": {
        "semver": "bin/semver"
      }
    },
    "node_modules/once": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
      "dependencies": {
        "wrappy": "1"
      }
    },
    "node_modules/opentracing": {
      "version": "0.14.7",
      "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz",
      "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==",
      "engines": {
        "node": ">=0.10"
      }
    },
    "node_modules/path-is-absolute": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/pify": {
      "version": "2.3.0",
      "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
      "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/promise": {
      "version": "7.3.1",
      "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
      "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
      "dependencies": {
        "asap": "~2.0.3"
      }
    },
    "node_modules/prr": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
      "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw=="
    },
    "node_modules/pseudomap": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
      "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
    },
    "node_modules/recursive-copy": {
      "version": "2.0.14",
      "resolved": "https://registry.npmjs.org/recursive-copy/-/recursive-copy-2.0.14.tgz",
      "integrity": "sha512-K8WNY8f8naTpfbA+RaXmkaQuD1IeW9EgNEfyGxSqqTQukpVtoOKros9jUqbpEsSw59YOmpd8nCBgtqJZy5nvog==",
      "dependencies": {
        "errno": "^0.1.2",
        "graceful-fs": "^4.1.4",
        "junk": "^1.0.1",
        "maximatch": "^0.1.0",
        "mkdirp": "^0.5.1",
        "pify": "^2.3.0",
        "promise": "^7.0.1",
        "rimraf": "^2.7.1",
        "slash": "^1.0.0"
      }
    },
    "node_modules/recursive-copy/node_modules/glob": {
      "version": "7.2.3",
      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
      "dependencies": {
        "fs.realpath": "^1.0.0",
        "inflight": "^1.0.4",
        "inherits": "2",
        "minimatch": "^3.1.1",
        "once": "^1.3.0",
        "path-is-absolute": "^1.0.0"
      },
      "engines": {
        "node": "*"
      },
      "funding": {
        "url": "https://github.com/sponsors/isaacs"
      }
    },
    "node_modules/recursive-copy/node_modules/rimraf": {
      "version": "2.7.1",
      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
      "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
      "dependencies": {
        "glob": "^7.1.3"
      },
      "bin": {
        "rimraf": "bin.js"
      }
    },
    "node_modules/redis-commands": {
      "version": "1.7.0",
      "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz",
      "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ=="
    },
    "node_modules/rimraf": {
      "version": "2.4.5",
      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
      "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==",
      "optional": true,
      "dependencies": {
        "glob": "^6.0.1"
      },
      "bin": {
        "rimraf": "bin.js"
      }
    },
    "node_modules/safe-json-stringify": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
      "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
      "optional": true
    },
    "node_modules/semver": {
      "version": "7.3.3",
      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.3.tgz",
      "integrity": "sha512-kBGrn+sE2tyi6f4c9aFrrYRSTTF5yNOEVRBCdpcgykFp3jt2ZGlBwzIwWER9J9HZnQa9IF1TrR8Xy2UU+eaUhQ==",
      "dependencies": {
        "lru-cache": "^4.1.5"
      },
      "bin": {
        "semver": "bin/semver.js"
      },
      "engines": {
        "node": ">=10"
      }
    },
    "node_modules/semver/node_modules/lru-cache": {
      "version": "4.1.5",
      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
      "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
      "dependencies": {
        "pseudomap": "^1.0.2",
        "yallist": "^2.1.2"
      }
    },
    "node_modules/semver/node_modules/yallist": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
      "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="
    },
    "node_modules/serialize-error": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-3.0.0.tgz",
      "integrity": "sha512-+y3nkkG/go1Vdw+2f/+XUXM1DXX1XcxTl99FfiD/OEPUNw4uo0i6FKABfTAN5ZcgGtjTRZcEbxcE/jtXbEY19A==",
      "engines": {
        "node": ">=6"
      }
    },
    "node_modules/shimmer": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
      "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw=="
    },
    "node_modules/slash": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
      "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/stack-chain": {
      "version": "1.3.7",
      "resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-1.3.7.tgz",
      "integrity": "sha512-D8cWtWVdIe/jBA7v5p5Hwl5yOSOrmZPWDPe2KxQ5UAGD+nxbxU0lKXA4h85Ta6+qgdKVL3vUxsbIZjc1kBG7ug=="
    },
    "node_modules/tar": {
      "version": "6.1.11",
      "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
      "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
      "dependencies": {
        "chownr": "^2.0.0",
        "fs-minipass": "^2.0.0",
        "minipass": "^3.0.0",
        "minizlib": "^2.1.1",
        "mkdirp": "^1.0.3",
        "yallist": "^4.0.0"
      },
      "engines": {
        "node": ">= 10"
      }
    },
    "node_modules/tar/node_modules/mkdirp": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
      "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
      "bin": {
        "mkdirp": "bin/cmd.js"
      },
      "engines": {
        "node": ">=10"
      }
    },
    "node_modules/wrappy": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
    },
    "node_modules/yallist": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
    }
  },
  "dependencies": {
    "@instana/autoprofile": {
      "version": "2.6.0",
      "resolved": "https://registry.npmjs.org/@instana/autoprofile/-/autoprofile-2.6.0.tgz",
      "integrity": "sha512-L3V9g0vFr+V5lFR6JuTpfmn60kWF5E37ta5FyYcZUlL8Sxiuyf1d+KxwwQC9Zsil0mnBsS0J97FnG9Dj+/kuXA==",
      "optional": true,
      "requires": {
        "detect-libc": "^1.0.3",
        "nan": "^2.14.2",
        "node-abi": "^2.30.0"
      }
    },
    "@instana/collector": {
      "version": "2.6.0",
      "resolved": "https://registry.npmjs.org/@instana/collector/-/collector-2.6.0.tgz",
      "integrity": "sha512-BTBvFp0LYvJ3E6VcimK2ONcx6U4pSn+Th/tOfBHF00EsQNYMdgZKJoW/YoH3phQsqP8LPQrdaxLgRFKvp3FxuA==",
      "requires": {
        "@instana/autoprofile": "2.6.0",
        "@instana/core": "2.6.0",
        "@instana/shared-metrics": "2.6.0",
        "bunyan": "^1.8.15",
        "semver": "7.3.3",
        "serialize-error": "^3.0.0",
        "shimmer": "1.2.1"
      }
    },
    "@instana/core": {
      "version": "2.6.0",
      "resolved": "https://registry.npmjs.org/@instana/core/-/core-2.6.0.tgz",
      "integrity": "sha512-fFvgLIwCcDnxAGNrNjHLss2XoRuLUg0af/B9mGo5oBovjkMyPHTuG599yD3RfYDXN2OpJNQiBROS14Usg/rR+w==",
      "requires": {
        "async-hook-jl": "^1.7.6",
        "cls-bluebird": "^2.1.0",
        "lru-cache": "6.0.0",
        "methods": "^1.1.2",
        "opentracing": "^0.14.5",
        "redis-commands": "^1.7.0",
        "semver": "7.3.3",
        "shimmer": "1.2.1"
      }
    },
    "@instana/shared-metrics": {
      "version": "2.6.0",
      "resolved": "https://registry.npmjs.org/@instana/shared-metrics/-/shared-metrics-2.6.0.tgz",
      "integrity": "sha512-bbRrCwMe0GCyAq9P6h5TbqP7Yevu5vmgVgrhAwEceHGstsJI/GrXsBZsyfoZXug7ypCs939USAcc6FLzM76pGA==",
      "requires": {
        "@instana/core": "2.6.0",
        "detect-libc": "^1.0.3",
        "event-loop-lag": "^1.4.0",
        "event-loop-stats": "1.4.1",
        "gcstats.js": "1.0.0",
        "recursive-copy": "^2.0.13",
        "semver": "7.3.3",
        "tar": "^6.1.11"
      }
    },
    "array-differ": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
      "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ=="
    },
    "array-union": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
      "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
      "requires": {
        "array-uniq": "^1.0.1"
      }
    },
    "array-uniq": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
      "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q=="
    },
    "arrify": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
      "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA=="
    },
    "asap": {
      "version": "2.0.6",
      "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
      "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
    },
    "async-hook-jl": {
      "version": "1.7.6",
      "resolved": "https://registry.npmjs.org/async-hook-jl/-/async-hook-jl-1.7.6.tgz",
      "integrity": "sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==",
      "requires": {
        "stack-chain": "^1.3.7"
      }
    },
    "balanced-match": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
    },
    "brace-expansion": {
      "version": "1.1.11",
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
      "requires": {
        "balanced-match": "^1.0.0",
        "concat-map": "0.0.1"
      }
    },
    "bunyan": {
      "version": "1.8.15",
      "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz",
      "integrity": "sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==",
      "requires": {
        "dtrace-provider": "~0.8",
        "moment": "^2.19.3",
        "mv": "~2",
        "safe-json-stringify": "~1"
      }
    },
    "chownr": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
      "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
    },
    "cls-bluebird": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/cls-bluebird/-/cls-bluebird-2.1.0.tgz",
      "integrity": "sha512-XVb0RPmHQyy35Tz9z34gvtUcBKUK8A/1xkGCyeFc9B0C7Zr5SysgFaswRVdwI5NEMcO+3JKlIDGIOgERSn9NdA==",
      "requires": {
        "is-bluebird": "^1.0.2",
        "shimmer": "^1.1.0"
      }
    },
    "concat-map": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
    },
    "debug": {
      "version": "3.2.7",
      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
      "requires": {
        "ms": "^2.1.1"
      }
    },
    "detect-libc": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
      "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg=="
    },
    "dtrace-provider": {
      "version": "0.8.8",
      "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz",
      "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==",
      "optional": true,
      "requires": {
        "nan": "^2.14.0"
      }
    },
    "errno": {
      "version": "0.1.8",
      "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
      "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
      "requires": {
        "prr": "~1.0.1"
      }
    },
    "event-loop-lag": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/event-loop-lag/-/event-loop-lag-1.4.0.tgz",
      "integrity": "sha512-uNAYTAexGyPI7rms2jSES20nhUoCtjkmxgaOcAfaoaOQ6h3q1+fw6d5MfyfV0zMJpR//+GUYPVXrh2Wbv+E0sQ==",
      "requires": {
        "debug": "^3.1.0"
      }
    },
    "event-loop-stats": {
      "version": "1.4.1",
      "resolved": "https://registry.npmjs.org/event-loop-stats/-/event-loop-stats-1.4.1.tgz",
      "integrity": "sha512-Wzohoz1JrQOBjt/shh5Z3/8Ti6SVoGl5nyX952Vcp5N56QVOtjPuJsQa+dEhsDJHu4QAFz45ePXRFq01skb9xA==",
      "optional": true,
      "requires": {
        "nan": "^2.14.0"
      }
    },
    "fs-minipass": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
      "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
      "requires": {
        "minipass": "^3.0.0"
      }
    },
    "fs.realpath": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
    },
    "gcstats.js": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/gcstats.js/-/gcstats.js-1.0.0.tgz",
      "integrity": "sha512-gY4x4gWpZtXwIot2js62z4xNNZd+skNzfr4zpK5lVvDqZcqWKP/LhMKKi1Q/VFszJgqPz8ZQpO/OG4SHRgiTng==",
      "optional": true,
      "requires": {
        "nan": "^2.0.5"
      }
    },
    "glob": {
      "version": "6.0.4",
      "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
      "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==",
      "optional": true,
      "requires": {
        "inflight": "^1.0.4",
        "inherits": "2",
        "minimatch": "2 || 3",
        "once": "^1.3.0",
        "path-is-absolute": "^1.0.0"
      }
    },
    "graceful-fs": {
      "version": "4.2.10",
      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
      "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
    },
    "inflight": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
      "requires": {
        "once": "^1.3.0",
        "wrappy": "1"
      }
    },
    "inherits": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
    },
    "is-bluebird": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/is-bluebird/-/is-bluebird-1.0.2.tgz",
      "integrity": "sha512-PDRu1vVip5dGQg5tfn2qVCCyxbBYu5MhYUJwSfL/RoGBI97n1fxvilVazxzptZW0gcmsMH17H4EVZZI5E/RSeA=="
    },
    "junk": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz",
      "integrity": "sha512-3KF80UaaSSxo8jVnRYtMKNGFOoVPBdkkVPsw+Ad0y4oxKXPduS6G6iHkrf69yJVff/VAaYXkV42rtZ7daJxU3w=="
    },
    "lru-cache": {
      "version": "6.0.0",
      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
      "requires": {
        "yallist": "^4.0.0"
      }
    },
    "maximatch": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz",
      "integrity": "sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==",
      "requires": {
        "array-differ": "^1.0.0",
        "array-union": "^1.0.1",
        "arrify": "^1.0.0",
        "minimatch": "^3.0.0"
      }
    },
    "methods": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
      "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
    },
    "minimatch": {
      "version": "3.1.2",
      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
      "requires": {
        "brace-expansion": "^1.1.7"
      }
    },
    "minimist": {
      "version": "1.2.6",
      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
      "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
    },
    "minipass": {
      "version": "3.3.4",
      "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz",
      "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==",
      "requires": {
        "yallist": "^4.0.0"
      }
    },
    "minizlib": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
      "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
      "requires": {
        "minipass": "^3.0.0",
        "yallist": "^4.0.0"
      }
    },
    "mkdirp": {
      "version": "0.5.6",
      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
      "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
      "requires": {
        "minimist": "^1.2.6"
      }
    },
    "moment": {
      "version": "2.29.4",
      "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
      "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
      "optional": true
    },
    "ms": {
      "version": "2.1.3",
      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
    },
    "mv": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
      "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==",
      "optional": true,
      "requires": {
        "mkdirp": "~0.5.1",
        "ncp": "~2.0.0",
        "rimraf": "~2.4.0"
      }
    },
    "nan": {
      "version": "2.16.0",
      "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz",
      "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==",
      "optional": true
    },
    "ncp": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
      "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==",
      "optional": true
    },
    "node-abi": {
      "version": "2.30.1",
      "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
      "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==",
      "optional": true,
      "requires": {
        "semver": "^5.4.1"
      },
      "dependencies": {
        "semver": {
          "version": "5.7.1",
          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
          "optional": true
        }
      }
    },
    "once": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
      "requires": {
        "wrappy": "1"
      }
    },
    "opentracing": {
      "version": "0.14.7",
      "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz",
      "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q=="
    },
    "path-is-absolute": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
    },
    "pify": {
      "version": "2.3.0",
      "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
      "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
    },
    "promise": {
      "version": "7.3.1",
      "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
      "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
      "requires": {
        "asap": "~2.0.3"
      }
    },
    "prr": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
      "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw=="
    },
    "pseudomap": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
      "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
    },
    "recursive-copy": {
      "version": "2.0.14",
      "resolved": "https://registry.npmjs.org/recursive-copy/-/recursive-copy-2.0.14.tgz",
      "integrity": "sha512-K8WNY8f8naTpfbA+RaXmkaQuD1IeW9EgNEfyGxSqqTQukpVtoOKros9jUqbpEsSw59YOmpd8nCBgtqJZy5nvog==",
      "requires": {
        "errno": "^0.1.2",
        "graceful-fs": "^4.1.4",
        "junk": "^1.0.1",
        "maximatch": "^0.1.0",
        "mkdirp": "^0.5.1",
        "pify": "^2.3.0",
        "promise": "^7.0.1",
        "rimraf": "^2.7.1",
        "slash": "^1.0.0"
      },
      "dependencies": {
        "glob": {
          "version": "7.2.3",
          "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
          "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
          "requires": {
            "fs.realpath": "^1.0.0",
            "inflight": "^1.0.4",
            "inherits": "2",
            "minimatch": "^3.1.1",
            "once": "^1.3.0",
            "path-is-absolute": "^1.0.0"
          }
        },
        "rimraf": {
          "version": "2.7.1",
          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
          "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
          "requires": {
            "glob": "^7.1.3"
          }
        }
      }
    },
    "redis-commands": {
      "version": "1.7.0",
      "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz",
      "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ=="
    },
    "rimraf": {
      "version": "2.4.5",
      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
      "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==",
      "optional": true,
      "requires": {
        "glob": "^6.0.1"
      }
    },
    "safe-json-stringify": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
      "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
      "optional": true
    },
    "semver": {
      "version": "7.3.3",
      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.3.tgz",
      "integrity": "sha512-kBGrn+sE2tyi6f4c9aFrrYRSTTF5yNOEVRBCdpcgykFp3jt2ZGlBwzIwWER9J9HZnQa9IF1TrR8Xy2UU+eaUhQ==",
      "requires": {
        "lru-cache": "^4.1.5"
      },
      "dependencies": {
        "lru-cache": {
          "version": "4.1.5",
          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
          "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
          "requires": {
            "pseudomap": "^1.0.2",
            "yallist": "^2.1.2"
          }
        },
        "yallist": {
          "version": "2.1.2",
          "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
          "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="
        }
      }
    },
    "serialize-error": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-3.0.0.tgz",
      "integrity": "sha512-+y3nkkG/go1Vdw+2f/+XUXM1DXX1XcxTl99FfiD/OEPUNw4uo0i6FKABfTAN5ZcgGtjTRZcEbxcE/jtXbEY19A=="
    },
    "shimmer": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
      "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw=="
    },
    "slash": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
      "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg=="
    },
    "stack-chain": {
      "version": "1.3.7",
      "resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-1.3.7.tgz",
      "integrity": "sha512-D8cWtWVdIe/jBA7v5p5Hwl5yOSOrmZPWDPe2KxQ5UAGD+nxbxU0lKXA4h85Ta6+qgdKVL3vUxsbIZjc1kBG7ug=="
    },
    "tar": {
      "version": "6.1.11",
      "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
      "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
      "requires": {
        "chownr": "^2.0.0",
        "fs-minipass": "^2.0.0",
        "minipass": "^3.0.0",
        "minizlib": "^2.1.1",
        "mkdirp": "^1.0.3",
        "yallist": "^4.0.0"
      },
      "dependencies": {
        "mkdirp": {
          "version": "1.0.4",
          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
          "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
        }
      }
    },
    "wrappy": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
    },
    "yallist": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
    }
  }
}

vulnerability in tar package

Source: https://snyk.io/vuln/SNYK-JS-TAR-1536758

Severity: low
Fixed in Version: 6.1.4
Description: tar is a full-featured Tar for Node.js. Affected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS). When stripping the trailing slash from files arguments, the f.replace(/\/+$/, '') performance of this function can exponentially degrade when f contains many / characters resulting in ReDoS.

Logger infers Pino as Bunyan due to shared prototype (.child() method)

Hi,

I tried to use Pino logger with the 1.60.0 version of the package and noticed that src/logger.js gets into conflict with it. On the following lines, logger tries to determine whether Bunyan logger or another logger is provided based on existence of .child() method.

https://github.com/instana/nodejs-sensor/blob/9e224cbce35837a34b147c5de886c5d54fc4ce56/src/logger.js#L13-L19

However, Pino also has a that function.

The problem arises when Bunyan is incorrectly inferred, and then follows up trying to call Bunyan-specific .addStream():

https://github.com/instana/nodejs-sensor/blob/9e224cbce35837a34b147c5de886c5d54fc4ce56/src/logger.js#L33-L34

Determining whether the logger is Bunyan would need to be more reliable, or perhaps the additional check for .addStream() could be introduced.

Example workaround in the meanwhile (in JavaScript, replace (logger as any) with just logger):

const child = logger.child;
(logger as any).child = undefined; // Remove for initialization
instana({ logger }); // or instana.setLogger(logger)
logger.child = child; // Restore

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.