newrelic 6.13.2 → 7.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NEWS.md +80 -7
- package/README.md +14 -5
- package/ROADMAP_Node.md +1 -1
- package/THIRD_PARTY_NOTICES.md +10 -12
- package/api.js +0 -32
- package/bin/run-versioned-tests.sh +3 -8
- package/index.js +5 -3
- package/lib/agent.js +4 -0
- package/lib/collector/api.js +2 -2
- package/lib/collector/http-agents.js +1 -1
- package/lib/collector/remote-method.js +18 -12
- package/lib/config/attribute-filter.js +1 -1
- package/lib/config/default.js +3 -11
- package/lib/config/env.js +0 -1
- package/lib/config/index.js +2 -23
- package/lib/db/parse-sql.js +1 -1
- package/lib/db/query-parsers/sql.js +1 -1
- package/lib/errors/error-collector.js +6 -1
- package/lib/errors/index.js +14 -1
- package/lib/grpc/connection.js +28 -4
- package/lib/instrumentation/core/http.js +34 -82
- package/lib/instrumentation/fastify/spec-builders.js +1 -1
- package/lib/metrics/names.js +4 -1
- package/lib/parse-proc-cpuinfo.js +1 -1
- package/lib/proxy/grpc.js +1 -1
- package/lib/serverless/aws-lambda.js +9 -23
- package/lib/shim/promise-shim.js +1 -1
- package/lib/shim/shim.js +3 -3
- package/lib/shim/transaction-shim.js +1 -1
- package/lib/shim/webframework-shim.js +1 -1
- package/lib/shimmer.js +1 -1
- package/lib/spans/create-span-event-aggregator.js +1 -1
- package/lib/spans/span-context.js +18 -0
- package/lib/spans/span-event.js +13 -2
- package/lib/spans/span-streamer.js +24 -13
- package/lib/spans/streaming-span-event-aggregator.js +4 -0
- package/lib/spans/streaming-span-event.js +13 -1
- package/lib/timer.js +1 -1
- package/lib/transaction/dt-payload.js +2 -2
- package/lib/transaction/handle.js +0 -54
- package/lib/transaction/index.js +25 -39
- package/lib/transaction/tracecontext.js +19 -4
- package/lib/util/byte-limit.js +1 -1
- package/lib/utilization/common.js +1 -1
- package/newrelic.js +1 -1
- package/package.json +11 -11
- package/stub_api.js +1 -1
- package/third_party_manifest.json +36 -36
|
@@ -5,9 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
'use strict'
|
|
7
7
|
|
|
8
|
-
const util = require('util')
|
|
9
8
|
const logger = require('../logger').child({component: 'transactionHandle'})
|
|
10
|
-
const DistributedTracePayloadStub = require('./dt-payload').Stub
|
|
11
9
|
|
|
12
10
|
const NAMES = require('../../lib/metrics/names')
|
|
13
11
|
|
|
@@ -61,7 +59,6 @@ class TransactionHandle {
|
|
|
61
59
|
*/
|
|
62
60
|
acceptDistributedTraceHeaders(transportType, headers) {
|
|
63
61
|
incrementApiSupportMetric(this._metrics, 'acceptDistributedTraceHeaders')
|
|
64
|
-
|
|
65
62
|
return this._transaction.acceptDistributedTraceHeaders(transportType, headers)
|
|
66
63
|
}
|
|
67
64
|
|
|
@@ -71,48 +68,10 @@ class TransactionHandle {
|
|
|
71
68
|
*/
|
|
72
69
|
insertDistributedTraceHeaders(headers) {
|
|
73
70
|
incrementApiSupportMetric(this._metrics, 'insertDistributedTraceHeaders')
|
|
74
|
-
|
|
75
71
|
return this._transaction.insertDistributedTraceHeaders(headers)
|
|
76
72
|
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
*
|
|
80
|
-
* Proxy method for Transaction#createDistrubtedTracePayload.
|
|
81
|
-
*
|
|
82
|
-
* @returns {DistributedTracePayload} The created payload object.
|
|
83
|
-
*
|
|
84
|
-
*/
|
|
85
|
-
createDistributedTracePayload() {
|
|
86
|
-
return this._transaction.createDistributedTracePayload()
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
*
|
|
91
|
-
* Proxy method for Transaction#acceptDistributedTracePayload
|
|
92
|
-
*
|
|
93
|
-
* @param {String} The payload to accept as the parent to the current trace
|
|
94
|
-
*
|
|
95
|
-
*/
|
|
96
|
-
acceptDistributedTracePayload(payload) {
|
|
97
|
-
return this._transaction.acceptDistributedTracePayload(payload)
|
|
98
|
-
}
|
|
99
73
|
}
|
|
100
74
|
|
|
101
|
-
// TODO: Fully remove functions in future Major release. v7.0.0?
|
|
102
|
-
TransactionHandle.prototype.acceptDistributedTracePayload = util.deprecate(
|
|
103
|
-
TransactionHandle.prototype.acceptDistributedTracePayload,
|
|
104
|
-
'TransactionHandle#acceptDistributedTracePayload has been deprecated! ' +
|
|
105
|
-
'Please use TransactionHandle#acceptDistributedTraceHeaders ' +
|
|
106
|
-
'which supports multiple distributed trace formats.'
|
|
107
|
-
)
|
|
108
|
-
|
|
109
|
-
TransactionHandle.prototype.createDistributedTracePayload = util.deprecate(
|
|
110
|
-
TransactionHandle.prototype.createDistributedTracePayload,
|
|
111
|
-
'TransactionHandle#createDistributedTracePayload has been deprecated! ' +
|
|
112
|
-
'Please use TransactionHandle#insertDistributedTraceHeaders ' +
|
|
113
|
-
'which supports multiple distributed trace formats.'
|
|
114
|
-
)
|
|
115
|
-
|
|
116
75
|
module.exports = TransactionHandle
|
|
117
76
|
|
|
118
77
|
function incrementApiSupportMetric(metrics, functionName) {
|
|
@@ -147,19 +106,6 @@ module.exports.Stub = class TransactionHandleStub {
|
|
|
147
106
|
logger.debug("No transaction found when calling Transaction.isSampled")
|
|
148
107
|
}
|
|
149
108
|
|
|
150
|
-
createDistributedTracePayload() {
|
|
151
|
-
logger.debug(
|
|
152
|
-
"No transaction found when calling Transaction.createDistributedTracePayload"
|
|
153
|
-
)
|
|
154
|
-
return new DistributedTracePayloadStub()
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
acceptDistributedTracePayload() {
|
|
158
|
-
logger.debug(
|
|
159
|
-
"No transaction found when calling Transaction.acceptDistributedTracePayload"
|
|
160
|
-
)
|
|
161
|
-
}
|
|
162
|
-
|
|
163
109
|
acceptDistributedTraceHeaders() {
|
|
164
110
|
logger.debug("No transaction found when calling Transaction.acceptDistributedTraceHeaders")
|
|
165
111
|
}
|
package/lib/transaction/index.js
CHANGED
|
@@ -509,7 +509,7 @@ Transaction.prototype._markAsWeb = function _markAsWeb(rawURL) {
|
|
|
509
509
|
* Sets the transaction's name and determines if it will be ignored.
|
|
510
510
|
*
|
|
511
511
|
* @param {string} [name]
|
|
512
|
-
* Optional. The partial name to use for the finalized transaction. If
|
|
512
|
+
* Optional. The partial name to use for the finalized transaction. If omitted
|
|
513
513
|
* the current partial name is used.
|
|
514
514
|
*/
|
|
515
515
|
Transaction.prototype.finalizeName = function finalizeName(name) {
|
|
@@ -679,7 +679,6 @@ Transaction.prototype.measure = function measure(name, scope, duration, exclusiv
|
|
|
679
679
|
Transaction.prototype._setApdex = function _setApdex(name, duration, keyApdexInMillis) {
|
|
680
680
|
var apdexStats = this.metrics.getOrCreateApdexMetric(name, null, keyApdexInMillis)
|
|
681
681
|
|
|
682
|
-
|
|
683
682
|
// if we have an error-like status code, and all the errors are
|
|
684
683
|
// expected, we know the status code was caused by an expected
|
|
685
684
|
// error, so we will not report "frustrating". Otherwise, we
|
|
@@ -747,19 +746,13 @@ function _linkExceptionToSegment(exception) {
|
|
|
747
746
|
return
|
|
748
747
|
}
|
|
749
748
|
|
|
750
|
-
const
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
const isExpected =
|
|
758
|
-
errorHelper.isExpectedErrorClass(config, details.type) ||
|
|
759
|
-
errorHelper.isExpectedErrorMessage(config, details.type, details.message)
|
|
760
|
-
|
|
761
|
-
if (isExpected) {
|
|
762
|
-
segment.addSpanAttribute('error.expected', isExpected)
|
|
749
|
+
const spanContext = segment.getSpanContext()
|
|
750
|
+
if (spanContext) {
|
|
751
|
+
// Exception attributes will be added to span unless transaction
|
|
752
|
+
// status code has been ignored. Last error wins.
|
|
753
|
+
const config = this.agent.config
|
|
754
|
+
const details = exception.getErrorDetails(config)
|
|
755
|
+
spanContext.setError(details)
|
|
763
756
|
}
|
|
764
757
|
|
|
765
758
|
// Add the span/segment ID to the exception as agent attributes
|
|
@@ -793,6 +786,14 @@ function _addUserError(exception) {
|
|
|
793
786
|
this.userErrors.push(exception)
|
|
794
787
|
}
|
|
795
788
|
|
|
789
|
+
/**
|
|
790
|
+
* Returns if the transaction's current status code is errored
|
|
791
|
+
* but considered ignored via the config.
|
|
792
|
+
*/
|
|
793
|
+
Transaction.prototype.hasIgnoredErrorStatusCode = function _hasIgnoredErrorStatusCode() {
|
|
794
|
+
return urltils.isIgnoredError(this.agent.config, this.statusCode)
|
|
795
|
+
}
|
|
796
|
+
|
|
796
797
|
/**
|
|
797
798
|
* Returns true if an error happened during the transaction or if the transaction itself is
|
|
798
799
|
* considered to be an error.
|
|
@@ -812,7 +813,7 @@ Transaction.prototype.hasOnlyExpectedErrors = function hasOnlyExpectedErrors() {
|
|
|
812
813
|
|
|
813
814
|
for (let i = 0;i < this.exceptions.length;i++) {
|
|
814
815
|
const exception = this.exceptions[i]
|
|
815
|
-
// this
|
|
816
|
+
// this exception is neither expected nor ignored
|
|
816
817
|
const isUnexpected = !(
|
|
817
818
|
errorHelper.isExpectedException(
|
|
818
819
|
this,
|
|
@@ -885,19 +886,14 @@ function acceptDistributedTraceHeaders(transportType, headers) {
|
|
|
885
886
|
|
|
886
887
|
if (traceparent) {
|
|
887
888
|
logger.trace('Accepting trace context DT payload for transaction %s', this.id)
|
|
888
|
-
|
|
889
889
|
// assumes header keys already lowercase
|
|
890
890
|
const tracestate = headers[TRACE_CONTEXT_STATE_HEADER]
|
|
891
|
-
|
|
892
891
|
this.acceptTraceContextPayload(traceparent, tracestate, transport)
|
|
893
|
-
} else {
|
|
892
|
+
} else if (NEWRELIC_TRACE_HEADER in headers) {
|
|
893
|
+
logger.trace('Accepting newrelic DT payload for transaction %s', this.id)
|
|
894
894
|
// assumes header keys already lowercase
|
|
895
895
|
const payload = headers[NEWRELIC_TRACE_HEADER]
|
|
896
|
-
|
|
897
|
-
logger.trace('Accepting newrelic DT payload for transaction %s', this.id)
|
|
898
|
-
|
|
899
|
-
this.acceptDistributedTracePayload(payload, transport)
|
|
900
|
-
}
|
|
896
|
+
this._acceptDistributedTracePayload(payload, transport)
|
|
901
897
|
}
|
|
902
898
|
}
|
|
903
899
|
|
|
@@ -928,7 +924,7 @@ function insertDistributedTraceHeaders(headers) {
|
|
|
928
924
|
}
|
|
929
925
|
|
|
930
926
|
try {
|
|
931
|
-
const newrelicFormatData = this.
|
|
927
|
+
const newrelicFormatData = this._createDistributedTracePayload().httpSafe()
|
|
932
928
|
headers[NEWRELIC_TRACE_HEADER] = newrelicFormatData
|
|
933
929
|
logger.trace('Added outbound request distributed tracing headers in transaction %s', this.id)
|
|
934
930
|
} catch (error) {
|
|
@@ -992,8 +988,8 @@ function acceptTraceContextPayload(traceparent, tracestate, transport) {
|
|
|
992
988
|
* @param {object} payload - The distributed trace payload to accept.
|
|
993
989
|
* @param {string} [transport='Unknown'] - The transport type that delivered the payload.
|
|
994
990
|
*/
|
|
995
|
-
Transaction.prototype.
|
|
996
|
-
function
|
|
991
|
+
Transaction.prototype._acceptDistributedTracePayload = _acceptDistributedTracePayload
|
|
992
|
+
function _acceptDistributedTracePayload(payload, transport) {
|
|
997
993
|
if (!payload) {
|
|
998
994
|
this.agent.recordSupportability('DistributedTrace/AcceptPayload/Ignored/Null')
|
|
999
995
|
return
|
|
@@ -1088,11 +1084,6 @@ function acceptDistributedTracePayload(payload, transport) {
|
|
|
1088
1084
|
return
|
|
1089
1085
|
}
|
|
1090
1086
|
|
|
1091
|
-
// TODO: This should be removable / covered by acceptDistributedTraceHeaders
|
|
1092
|
-
// once the Transaction#acceptDistributedTracePayload API that directly invokes
|
|
1093
|
-
// this acceptDistributedTracePayload is fully removed in a future Major version.
|
|
1094
|
-
transport = TRANSPORT_TYPES_SET[transport] ? transport : TRANSPORT_TYPES.UNKNOWN
|
|
1095
|
-
|
|
1096
1087
|
this.parentType = data.ty
|
|
1097
1088
|
this.parentApp = data.ap
|
|
1098
1089
|
this.parentAcct = data.ac
|
|
@@ -1162,9 +1153,9 @@ Transaction.prototype._getParsedPayload = function _getParsedPayload(payload) {
|
|
|
1162
1153
|
/**
|
|
1163
1154
|
* Creates a distributed trace payload.
|
|
1164
1155
|
*/
|
|
1165
|
-
Transaction.prototype.
|
|
1156
|
+
Transaction.prototype._createDistributedTracePayload = _createDistributedTracePayload
|
|
1166
1157
|
|
|
1167
|
-
function
|
|
1158
|
+
function _createDistributedTracePayload() {
|
|
1168
1159
|
const config = this.agent.config
|
|
1169
1160
|
const accountId = config.account_id
|
|
1170
1161
|
const appId = config.primary_application_id
|
|
@@ -1184,11 +1175,6 @@ function createDistributedTracePayload() {
|
|
|
1184
1175
|
return new DTPayloadStub()
|
|
1185
1176
|
}
|
|
1186
1177
|
|
|
1187
|
-
// TODO: This should be removable / covered by insertDistributedTraceHeaders
|
|
1188
|
-
// once the Transaction#createDistributedTracePayload API that directly invokes
|
|
1189
|
-
// this createDistributedTracePayload is fully removed in a future Major version.
|
|
1190
|
-
this._calculatePriority()
|
|
1191
|
-
|
|
1192
1178
|
const currSegment = this.agent.tracer.getSegment()
|
|
1193
1179
|
const data = {
|
|
1194
1180
|
ty: 'App',
|
|
@@ -27,7 +27,7 @@ const FLAGS = {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
-
* The class
|
|
30
|
+
* The class responsible for accepting, validating, and producing w3c tracecontext headers.
|
|
31
31
|
*/
|
|
32
32
|
class TraceContext {
|
|
33
33
|
/**
|
|
@@ -63,7 +63,14 @@ class TraceContext {
|
|
|
63
63
|
// If no segment/span is in context, generate one so we can have a valid traceparent
|
|
64
64
|
const segment = this.transaction.agent.tracer.getSegment()
|
|
65
65
|
let parentId = segment && segment.id
|
|
66
|
-
|
|
66
|
+
if (!parentId) {
|
|
67
|
+
parentId = hashes.makeId(16)
|
|
68
|
+
logger.debug(
|
|
69
|
+
'No segment/span in context. Generated new traceparent parentId (%s) for traceId (%s)',
|
|
70
|
+
parentId,
|
|
71
|
+
traceId
|
|
72
|
+
)
|
|
73
|
+
}
|
|
67
74
|
|
|
68
75
|
return `${W3C_TRACEPARENT_VERSION}-${traceId}-${parentId}-${this.createFlagsHex()}`
|
|
69
76
|
}
|
|
@@ -103,7 +110,11 @@ class TraceContext {
|
|
|
103
110
|
const segment = this.transaction.agent.tracer.getSegment()
|
|
104
111
|
if (segment) {
|
|
105
112
|
spanId = segment.id
|
|
113
|
+
} else {
|
|
114
|
+
logger.debug('No segment/span in context. Not sending spanId in tracestate.')
|
|
106
115
|
}
|
|
116
|
+
} else {
|
|
117
|
+
logger.trace('Span events disabled. Not sending spanId in tracestate.')
|
|
107
118
|
}
|
|
108
119
|
|
|
109
120
|
const transactionId = config.transaction_events.enabled ? this.transaction.id : ''
|
|
@@ -130,11 +141,15 @@ class TraceContext {
|
|
|
130
141
|
return
|
|
131
142
|
}
|
|
132
143
|
|
|
133
|
-
|
|
144
|
+
const traceParent = this.createTraceparent()
|
|
145
|
+
headers[TRACE_CONTEXT_PARENT_HEADER] = traceParent
|
|
146
|
+
|
|
147
|
+
logger.trace('traceparent added with %s', traceParent)
|
|
134
148
|
|
|
135
149
|
const tracestate = this.createTracestate()
|
|
136
150
|
if (tracestate) {
|
|
137
151
|
headers[TRACE_CONTEXT_STATE_HEADER] = tracestate
|
|
152
|
+
logger.trace('tracestate added with %s', tracestate)
|
|
138
153
|
}
|
|
139
154
|
|
|
140
155
|
this.transaction.agent.recordSupportability('TraceContext/Create/Success')
|
|
@@ -240,7 +255,7 @@ class TraceContext {
|
|
|
240
255
|
return traceContextData
|
|
241
256
|
}
|
|
242
257
|
|
|
243
|
-
// Keep the raw, non-NewRelic tracestate string stored so that we can
|
|
258
|
+
// Keep the raw, non-NewRelic tracestate string stored so that we can propagate it
|
|
244
259
|
this._traceStateRaw = parsedState.newTraceState
|
|
245
260
|
|
|
246
261
|
// These need to be kept to be added to root span events as an attribute
|
package/lib/util/byte-limit.js
CHANGED
|
@@ -55,7 +55,7 @@ function truncate(val, limit) {
|
|
|
55
55
|
|
|
56
56
|
// Continue the binary search till:
|
|
57
57
|
// 1) The string is the desired length (i.e. cmpVal = 0) OR
|
|
58
|
-
// 2) The desired string must split a character to
|
|
58
|
+
// 2) The desired string must split a character to achieve the desired byte length
|
|
59
59
|
// In this case, we should cut the character that would be split.
|
|
60
60
|
// (i.e. delta > 1 character OR the string is larger than the limit)
|
|
61
61
|
var substr
|
|
@@ -81,7 +81,7 @@ exports.request = function request(opts, agent, cb) {
|
|
|
81
81
|
return cb(new Error('Request for metadata failed.'))
|
|
82
82
|
} else if (!data) {
|
|
83
83
|
logger.debug('Got no response data?')
|
|
84
|
-
return cb(new Error('No
|
|
84
|
+
return cb(new Error('No response data received.'))
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
cb(null, data.toString('utf8'))
|
package/newrelic.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "newrelic",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.2",
|
|
4
4
|
"author": "New Relic Node.js agent team <nodejs@newrelic.com>",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"contributors": [
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
],
|
|
112
112
|
"homepage": "http://github.com/newrelic/node-newrelic",
|
|
113
113
|
"engines": {
|
|
114
|
-
"node": ">=
|
|
114
|
+
"node": ">=10.0.0",
|
|
115
115
|
"npm": ">=3.0.0"
|
|
116
116
|
},
|
|
117
117
|
"directories": {
|
|
@@ -142,11 +142,11 @@
|
|
|
142
142
|
"newrelic-naming-rules": "./bin/test-naming-rules.js"
|
|
143
143
|
},
|
|
144
144
|
"dependencies": {
|
|
145
|
-
"@grpc/grpc-js": "1.0
|
|
146
|
-
"@grpc/proto-loader": "^0.5.
|
|
147
|
-
"@newrelic/aws-sdk": "^
|
|
148
|
-
"@newrelic/koa": "^
|
|
149
|
-
"@newrelic/superagent": "^
|
|
145
|
+
"@grpc/grpc-js": "1.2.0",
|
|
146
|
+
"@grpc/proto-loader": "^0.5.5",
|
|
147
|
+
"@newrelic/aws-sdk": "^3.0.0",
|
|
148
|
+
"@newrelic/koa": "^5.0.0",
|
|
149
|
+
"@newrelic/superagent": "^4.0.0",
|
|
150
150
|
"@tyriar/fibonacci-heap": "^2.0.7",
|
|
151
151
|
"async": "^3.2.0",
|
|
152
152
|
"concat-stream": "^2.0.0",
|
|
@@ -156,12 +156,11 @@
|
|
|
156
156
|
"semver": "^5.3.0"
|
|
157
157
|
},
|
|
158
158
|
"optionalDependencies": {
|
|
159
|
-
"@newrelic/native-metrics": "^
|
|
159
|
+
"@newrelic/native-metrics": "^6.0.0"
|
|
160
160
|
},
|
|
161
161
|
"devDependencies": {
|
|
162
162
|
"@newrelic/proxy": "^2.0.0",
|
|
163
|
-
"@newrelic/test-utilities": "^
|
|
164
|
-
"JSV": "~4.0.2",
|
|
163
|
+
"@newrelic/test-utilities": "^5.0.0",
|
|
165
164
|
"architect": "*",
|
|
166
165
|
"benchmark": "^2.1.4",
|
|
167
166
|
"bluebird": "^3.4.7",
|
|
@@ -174,6 +173,7 @@
|
|
|
174
173
|
"got": "^8.0.1",
|
|
175
174
|
"http-errors": "^1.7.3",
|
|
176
175
|
"jsdoc": "^3.6.3",
|
|
176
|
+
"JSV": "~4.0.2",
|
|
177
177
|
"memcached": ">=0.2.8",
|
|
178
178
|
"minami": "^1.1.1",
|
|
179
179
|
"mongodb": "^3.3.3",
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
"rimraf": "^2.6.3",
|
|
188
188
|
"should": "*",
|
|
189
189
|
"sinon": "^4.5.0",
|
|
190
|
-
"tap": "^14.10.
|
|
190
|
+
"tap": "^14.10.8",
|
|
191
191
|
"temp": "^0.8.1",
|
|
192
192
|
"through": "^2.3.6",
|
|
193
193
|
"when": "*"
|
package/stub_api.js
CHANGED
|
@@ -61,7 +61,7 @@ function setLambdaHandler(callback) {
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
function startSegment(name, record, handler, callback) {
|
|
64
|
-
logger.debug('Not calling `startSegment`
|
|
64
|
+
logger.debug('Not calling `startSegment` because New Relic is disabled.')
|
|
65
65
|
if (typeof handler === 'function') {
|
|
66
66
|
return handler(callback)
|
|
67
67
|
}
|
|
@@ -1,68 +1,68 @@
|
|
|
1
1
|
{
|
|
2
|
-
"lastUpdated": "Tue
|
|
2
|
+
"lastUpdated": "Tue Nov 17 2020 14:58:13 GMT-0800 (Pacific Standard Time)",
|
|
3
3
|
"projectName": "New Relic Node Agent",
|
|
4
4
|
"projectUrl": "https://github.com/newrelic/node-newrelic",
|
|
5
5
|
"includeDev": true,
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@grpc/grpc-js@1.0
|
|
7
|
+
"@grpc/grpc-js@1.2.0": {
|
|
8
8
|
"name": "@grpc/grpc-js",
|
|
9
|
-
"version": "1.0
|
|
10
|
-
"range": "1.0
|
|
9
|
+
"version": "1.2.0",
|
|
10
|
+
"range": "1.2.0",
|
|
11
11
|
"licenses": "Apache-2.0",
|
|
12
12
|
"repoUrl": "https://github.com/grpc/grpc-node/tree/master/packages/grpc-js",
|
|
13
|
-
"versionedRepoUrl": "https://github.com/grpc/grpc-node/tree/master/packages/grpc-js/tree/v1.0
|
|
13
|
+
"versionedRepoUrl": "https://github.com/grpc/grpc-node/tree/master/packages/grpc-js/tree/v1.2.0",
|
|
14
14
|
"licenseFile": "node_modules/@grpc/grpc-js/LICENSE",
|
|
15
|
-
"licenseUrl": "https://github.com/grpc/grpc-node/tree/master/packages/grpc-js/blob/v1.0
|
|
15
|
+
"licenseUrl": "https://github.com/grpc/grpc-node/tree/master/packages/grpc-js/blob/v1.2.0/LICENSE",
|
|
16
16
|
"licenseTextSource": "file",
|
|
17
17
|
"publisher": "Google Inc."
|
|
18
18
|
},
|
|
19
|
-
"@grpc/proto-loader@0.5.
|
|
19
|
+
"@grpc/proto-loader@0.5.5": {
|
|
20
20
|
"name": "@grpc/proto-loader",
|
|
21
|
-
"version": "0.5.
|
|
22
|
-
"range": "^0.5.
|
|
21
|
+
"version": "0.5.5",
|
|
22
|
+
"range": "^0.5.5",
|
|
23
23
|
"licenses": "Apache-2.0",
|
|
24
24
|
"repoUrl": "https://github.com/grpc/grpc-node",
|
|
25
|
-
"versionedRepoUrl": "https://github.com/grpc/grpc-node/tree/v0.5.
|
|
25
|
+
"versionedRepoUrl": "https://github.com/grpc/grpc-node/tree/v0.5.5",
|
|
26
26
|
"licenseFile": "node_modules/@grpc/proto-loader/LICENSE",
|
|
27
|
-
"licenseUrl": "https://github.com/grpc/grpc-node/blob/v0.5.
|
|
27
|
+
"licenseUrl": "https://github.com/grpc/grpc-node/blob/v0.5.5/LICENSE",
|
|
28
28
|
"licenseTextSource": "file",
|
|
29
29
|
"publisher": "Google Inc."
|
|
30
30
|
},
|
|
31
|
-
"@newrelic/aws-sdk@
|
|
31
|
+
"@newrelic/aws-sdk@3.0.0": {
|
|
32
32
|
"name": "@newrelic/aws-sdk",
|
|
33
|
-
"version": "
|
|
34
|
-
"range": "^
|
|
33
|
+
"version": "3.0.0",
|
|
34
|
+
"range": "^3.0.0",
|
|
35
35
|
"licenses": "Apache-2.0",
|
|
36
36
|
"repoUrl": "https://github.com/newrelic/node-newrelic-aws-sdk",
|
|
37
|
-
"versionedRepoUrl": "https://github.com/newrelic/node-newrelic-aws-sdk/tree/
|
|
37
|
+
"versionedRepoUrl": "https://github.com/newrelic/node-newrelic-aws-sdk/tree/v3.0.0",
|
|
38
38
|
"licenseFile": "node_modules/@newrelic/aws-sdk/LICENSE",
|
|
39
|
-
"licenseUrl": "https://github.com/newrelic/node-newrelic-aws-sdk/blob/
|
|
39
|
+
"licenseUrl": "https://github.com/newrelic/node-newrelic-aws-sdk/blob/v3.0.0/LICENSE",
|
|
40
40
|
"licenseTextSource": "file",
|
|
41
41
|
"publisher": "New Relic Node.js agent team",
|
|
42
42
|
"email": "nodejs@newrelic.com"
|
|
43
43
|
},
|
|
44
|
-
"@newrelic/koa@
|
|
44
|
+
"@newrelic/koa@5.0.0": {
|
|
45
45
|
"name": "@newrelic/koa",
|
|
46
|
-
"version": "
|
|
47
|
-
"range": "^
|
|
46
|
+
"version": "5.0.0",
|
|
47
|
+
"range": "^5.0.0",
|
|
48
48
|
"licenses": "Apache-2.0",
|
|
49
49
|
"repoUrl": "https://github.com/newrelic/node-newrelic-koa",
|
|
50
|
-
"versionedRepoUrl": "https://github.com/newrelic/node-newrelic-koa/tree/
|
|
50
|
+
"versionedRepoUrl": "https://github.com/newrelic/node-newrelic-koa/tree/v5.0.0",
|
|
51
51
|
"licenseFile": "node_modules/@newrelic/koa/LICENSE",
|
|
52
|
-
"licenseUrl": "https://github.com/newrelic/node-newrelic-koa/blob/
|
|
52
|
+
"licenseUrl": "https://github.com/newrelic/node-newrelic-koa/blob/v5.0.0/LICENSE",
|
|
53
53
|
"licenseTextSource": "file",
|
|
54
54
|
"publisher": "New Relic Node.js agent team",
|
|
55
55
|
"email": "nodejs@newrelic.com"
|
|
56
56
|
},
|
|
57
|
-
"@newrelic/superagent@
|
|
57
|
+
"@newrelic/superagent@4.0.0": {
|
|
58
58
|
"name": "@newrelic/superagent",
|
|
59
|
-
"version": "
|
|
60
|
-
"range": "^
|
|
59
|
+
"version": "4.0.0",
|
|
60
|
+
"range": "^4.0.0",
|
|
61
61
|
"licenses": "Apache-2.0",
|
|
62
62
|
"repoUrl": "https://github.com/newrelic/node-newrelic-superagent",
|
|
63
|
-
"versionedRepoUrl": "https://github.com/newrelic/node-newrelic-superagent/tree/
|
|
63
|
+
"versionedRepoUrl": "https://github.com/newrelic/node-newrelic-superagent/tree/v4.0.0",
|
|
64
64
|
"licenseFile": "node_modules/@newrelic/superagent/LICENSE",
|
|
65
|
-
"licenseUrl": "https://github.com/newrelic/node-newrelic-superagent/blob/
|
|
65
|
+
"licenseUrl": "https://github.com/newrelic/node-newrelic-superagent/blob/v4.0.0/LICENSE",
|
|
66
66
|
"licenseTextSource": "file",
|
|
67
67
|
"publisher": "New Relic Node.js Agent Team",
|
|
68
68
|
"email": "nodejs@newrelic.com"
|
|
@@ -171,15 +171,15 @@
|
|
|
171
171
|
"email": "nathan@tootallnate.net",
|
|
172
172
|
"url": "http://n8.io/"
|
|
173
173
|
},
|
|
174
|
-
"@newrelic/test-utilities@
|
|
174
|
+
"@newrelic/test-utilities@5.0.0": {
|
|
175
175
|
"name": "@newrelic/test-utilities",
|
|
176
|
-
"version": "
|
|
177
|
-
"range": "^
|
|
176
|
+
"version": "5.0.0",
|
|
177
|
+
"range": "^5.0.0",
|
|
178
178
|
"licenses": "Apache-2.0",
|
|
179
179
|
"repoUrl": "https://github.com/newrelic/node-test-utilities",
|
|
180
|
-
"versionedRepoUrl": "https://github.com/newrelic/node-test-utilities/tree/
|
|
180
|
+
"versionedRepoUrl": "https://github.com/newrelic/node-test-utilities/tree/v5.0.0",
|
|
181
181
|
"licenseFile": "node_modules/@newrelic/test-utilities/LICENSE",
|
|
182
|
-
"licenseUrl": "https://github.com/newrelic/node-test-utilities/blob/
|
|
182
|
+
"licenseUrl": "https://github.com/newrelic/node-test-utilities/blob/v5.0.0/LICENSE",
|
|
183
183
|
"licenseTextSource": "file",
|
|
184
184
|
"publisher": "New Relic Node.js agent team",
|
|
185
185
|
"email": "nodejs@newrelic.com"
|
|
@@ -552,15 +552,15 @@
|
|
|
552
552
|
"licenseTextSource": "file",
|
|
553
553
|
"publisher": "Christian Johansen"
|
|
554
554
|
},
|
|
555
|
-
"tap@14.10.
|
|
555
|
+
"tap@14.10.8": {
|
|
556
556
|
"name": "tap",
|
|
557
|
-
"version": "14.10.
|
|
558
|
-
"range": "^14.10.
|
|
557
|
+
"version": "14.10.8",
|
|
558
|
+
"range": "^14.10.8",
|
|
559
559
|
"licenses": "ISC",
|
|
560
560
|
"repoUrl": "https://github.com/tapjs/node-tap",
|
|
561
|
-
"versionedRepoUrl": "https://github.com/tapjs/node-tap/tree/v14.10.
|
|
561
|
+
"versionedRepoUrl": "https://github.com/tapjs/node-tap/tree/v14.10.8",
|
|
562
562
|
"licenseFile": "node_modules/tap/LICENSE",
|
|
563
|
-
"licenseUrl": "https://github.com/tapjs/node-tap/blob/v14.10.
|
|
563
|
+
"licenseUrl": "https://github.com/tapjs/node-tap/blob/v14.10.8/LICENSE",
|
|
564
564
|
"licenseTextSource": "file",
|
|
565
565
|
"publisher": "Isaac Z. Schlueter",
|
|
566
566
|
"email": "i@izs.me",
|