newrelic
Version:
New Relic agent
30 lines (23 loc) • 993 B
JavaScript
/*
* Copyright 2020 New Relic Corporation. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*/
const EXTERNAL = require('../../metrics/names').EXTERNAL
function recordExternal(host, library) {
return function externalRecorder(segment, scope, transaction) {
const duration = segment.getDurationInMillis()
const exclusive = segment.getExclusiveDurationInMillis(transaction.trace)
const metricName = EXTERNAL.PREFIX + host + '/' + library
const rollupType = transaction.isWeb() ? EXTERNAL.WEB : EXTERNAL.OTHER
const rollupHost = EXTERNAL.PREFIX + host + '/all'
if (scope) {
transaction.measure(metricName, scope, duration, exclusive)
}
transaction.measure(metricName, null, duration, exclusive)
transaction.measure(rollupType, null, duration, exclusive)
transaction.measure(rollupHost, null, duration, exclusive)
transaction.measure(EXTERNAL.ALL, null, duration, exclusive)
}
}
module.exports = recordExternal