ca-apm-probe
Version:
CA APM Node.js Agent monitors real-time health and performance of Node.js applications
84 lines (66 loc) • 2.63 kB
JavaScript
/**
* Copyright (c) 2016 CA. All rights reserved.
*
* This software and all information contained therein is confidential and proprietary and
* shall not be duplicated, used, disclosed or disseminated in any way except as authorized
* by the applicable license agreement, without the express written permission of CA. All
* authorized reproductions must be marked with this language.
*
* EXCEPT AS SET FORTH IN THE APPLICABLE LICENSE AGREEMENT, TO THE EXTENT
* PERMITTED BY APPLICABLE LAW, CA PROVIDES THIS SOFTWARE WITHOUT WARRANTY
* OF ANY KIND, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL CA BE
* LIABLE TO THE END USER OR ANY THIRD PARTY FOR ANY LOSS OR DAMAGE, DIRECT OR
* INDIRECT, FROM THE USE OF THIS SOFTWARE, INCLUDING WITHOUT LIMITATION, LOST
* PROFITS, BUSINESS INTERRUPTION, GOODWILL, OR LOST DATA, EVEN IF CA IS
* EXPRESSLY ADVISED OF SUCH LOSS OR DAMAGE.
*/
;
// truncate parameter value string to this limit
var MAX_ARG_VALUE_LENGTH = 100;
// value expected to be string
function truncateEventArgValue(value) {
var strValue = value;
//truncation logic
if (strValue && strValue.length > MAX_ARG_VALUE_LENGTH) {
strValue = strValue.substr(0, MAX_ARG_VALUE_LENGTH) + ' ...(truncated)';
}
return strValue;
}
// always returns a string value
function formatEventArgValueObject(object) {
if (object) {
return truncateEventArgValue((JSON.stringify(object)));
}
return '';
}
function createErrorObject(errorClass, errMsg) {
var errorObject = {
class: errorClass,
msg: formatEventArgValueObject(errMsg)
}
return errorObject;
}
function getFormattedErrorObject(err) {
return (err instanceof Error) ? {
class: err.name,
msg: truncateEventArgValue(err.message)
} : null;
}
function checkCallbackArgsForError(args, defaultErrorClass) {
// based on callback calling conventions, first argument to callback is error
var err = args[0];
if (err != null) {
var object = getFormattedErrorObject(err);
if (!object && defaultErrorClass) {
object = createErrorObject(defaultErrorClass, err);
}
return object;
}
return null;
}
module.exports.truncateEventArgValue = truncateEventArgValue;
module.exports.formatEventArgValueObject = formatEventArgValueObject;
module.exports.createErrorObject = createErrorObject;
module.exports.getFormattedErrorObject = getFormattedErrorObject;
module.exports.checkCallbackArgsForError = checkCallbackArgsForError;