From 4e438b52bfd738e6cb3d4892fa29ff9fc484dd47 Mon Sep 17 00:00:00 2001 From: Dori Aviram Date: Wed, 12 Aug 2020 15:36:09 +0300 Subject: [PATCH] fix: fix mongodb imports + global improve --- jest.config.js | 1 + src/globals.js | 8 ++------ src/globals.test.js | 36 ------------------------------------ src/hooks/mongodb.js | 3 +++ src/logger.js | 10 ++-------- src/utils.js | 18 +++++++++++++----- src/utils.test.js | 23 ++++++++++++++++++++++- webpack.config.js | 5 ++++- 8 files changed, 47 insertions(+), 57 deletions(-) diff --git a/jest.config.js b/jest.config.js index 12f48372..7d539e9c 100644 --- a/jest.config.js +++ b/jest.config.js @@ -7,6 +7,7 @@ module.exports = { '**/src/**/**/**/**.js', '!./src/tools/xmlToJson.js', '!./src/testdata/functions/**/**.js', + '!./d_example/**/**', ], coverageThreshold: { global: { diff --git a/src/globals.js b/src/globals.js index 99721c77..6c75cd47 100644 --- a/src/globals.js +++ b/src/globals.js @@ -110,13 +110,9 @@ export const TracerGlobals = (() => { }) => Object.assign(tracerInputs, { token: token || process.env.LUMIGO_TRACER_TOKEN, - debug: - debug || - !!(process.env['LUMIGO_DEBUG'] && process.env.LUMIGO_DEBUG.toUpperCase() === 'TRUE'), + debug: debug, edgeHost: edgeHost || process.env.LUMIGO_TRACER_HOST, - switchOff: - switchOff || - !!(process.env['LUMIGO_SWITCH_OFF'] && process.env.LUMIGO_SWITCH_OFF === 'TRUE'), + switchOff: switchOff, isStepFunction: stepFunction || !!( diff --git a/src/globals.test.js b/src/globals.test.js index db10a316..6722940d 100644 --- a/src/globals.test.js +++ b/src/globals.test.js @@ -132,54 +132,18 @@ describe('globals', () => { }); test('setGlobals debug', () => { - process.env.LUMIGO_DEBUG = 'TRUE'; globals.TracerGlobals.setTracerInputs({ debug: true }); expect(globals.TracerGlobals.getTracerInputs().debug).toEqual(true); - process.env.LUMIGO_DEBUG = 'TRUE'; globals.TracerGlobals.setTracerInputs({ debug: false }); - expect(globals.TracerGlobals.getTracerInputs().debug).toEqual(true); - - process.env.LUMIGO_DEBUG = 'TRUE'; - globals.TracerGlobals.setTracerInputs({}); - expect(globals.TracerGlobals.getTracerInputs().debug).toEqual(true); - - process.env.LUMIGO_DEBUG = ''; - globals.TracerGlobals.setTracerInputs({ debug: true }); - expect(globals.TracerGlobals.getTracerInputs().debug).toEqual(true); - - process.env.LUMIGO_DEBUG = ''; - globals.TracerGlobals.setTracerInputs({ debug: false }); - expect(globals.TracerGlobals.getTracerInputs().debug).toEqual(false); - - process.env.LUMIGO_DEBUG = ''; - globals.TracerGlobals.setTracerInputs({}); expect(globals.TracerGlobals.getTracerInputs().debug).toEqual(false); }); test('setGlobals switchOff', () => { - process.env.LUMIGO_SWITCH_OFF = 'TRUE'; globals.TracerGlobals.setTracerInputs({ switchOff: true }); expect(globals.TracerGlobals.getTracerInputs().switchOff).toEqual(true); - process.env.LUMIGO_SWITCH_OFF = 'TRUE'; globals.TracerGlobals.setTracerInputs({ switchOff: false }); - expect(globals.TracerGlobals.getTracerInputs().switchOff).toEqual(true); - - process.env.LUMIGO_SWITCH_OFF = 'TRUE'; - globals.TracerGlobals.setTracerInputs({}); - expect(globals.TracerGlobals.getTracerInputs().switchOff).toEqual(true); - - process.env.LUMIGO_SWITCH_OFF = ''; - globals.TracerGlobals.setTracerInputs({ switchOff: true }); - expect(globals.TracerGlobals.getTracerInputs().switchOff).toEqual(true); - - process.env.LUMIGO_SWITCH_OFF = ''; - globals.TracerGlobals.setTracerInputs({ switchOff: false }); - expect(globals.TracerGlobals.getTracerInputs().switchOff).toEqual(false); - - process.env.LUMIGO_SWITCH_OFF = ''; - globals.TracerGlobals.setTracerInputs({}); expect(globals.TracerGlobals.getTracerInputs().switchOff).toEqual(false); }); diff --git a/src/hooks/mongodb.js b/src/hooks/mongodb.js index bb15d9fd..ff4d02ae 100644 --- a/src/hooks/mongodb.js +++ b/src/hooks/mongodb.js @@ -82,5 +82,8 @@ export const hookMongoDb = mongoLib => { listener.on('succeeded', safeSucceededHook); listener.on('failed', safeFailedHook); })(); + logger.info('MongoDB instrumentation done'); + } else { + logger.debug('MongoDB SDK not found'); } }; diff --git a/src/logger.js b/src/logger.js index 1e16ce42..388e4bac 100644 --- a/src/logger.js +++ b/src/logger.js @@ -1,5 +1,4 @@ -import { TracerGlobals } from './globals'; -import { isStoreLogs } from './utils'; +import { isDebug, isStoreLogs } from './utils'; const LOG_PREFIX = '#LUMIGO#'; const WARN_CLIENT_PREFIX = 'Lumigo Warning'; @@ -42,11 +41,6 @@ export const LogStore = (() => { return { addLog, clean }; })(); -export const isDebug = () => { - let tracerInputs = TracerGlobals.getTracerInputs(); - return tracerInputs.debug; -}; - const invokeLog = type => (msg, obj = undefined) => log(type, msg, obj); export const info = invokeLog('INFO'); @@ -60,7 +54,7 @@ export const debug = invokeLog('DEBUG'); export const log = (levelname, message, obj) => { const storeLogsIsOn = isStoreLogs(); storeLogsIsOn && LogStore.addLog(levelname, message, obj); - if (exports.isDebug() && !storeLogsIsOn) { + if (isDebug() && !storeLogsIsOn) { forceLog(levelname, message, obj); } }; diff --git a/src/utils.js b/src/utils.js index e0f69e97..941bd5d5 100644 --- a/src/utils.js +++ b/src/utils.js @@ -139,6 +139,9 @@ const TIMEOUT_MIN_DURATION = 'LUMIGO_TIMEOUT_MIN_DURATION'; const TIMEOUT_BUFFER_FLAG_MS = 'LUMIGO_TIMEOUT_BUFFER_MS'; const AGENT_KEEPALIVE = 'LUMIGO_AGENT_KEEPALIVE_MS'; const REUSE_CONNECTION = 'LUMIGO_REUSE_HTTP_CONNECTION'; +const DEBUG_FLAG = 'LUMIGO_DEBUG'; +const SWITCH_OFF_FLAG = 'LUMIGO_SWITCH_OFF'; +const IS_STEP_FUNCTION_FLAG = 'LUMIGO_STEP_FUNCTION'; const validateEnvVar = (envVar, value = 'TRUE') => !!(process.env[envVar] && process.env[envVar].toUpperCase() === value.toUpperCase()); @@ -187,6 +190,8 @@ export const isVerboseMode = () => validateEnvVar(VERBOSE_FLAG); export const isWarm = () => validateEnvVar(WARM_FLAG); +export const isDebug = () => validateEnvVar(DEBUG_FLAG) || TracerGlobals.getTracerInputs().debug; + export const isLambdaWrapped = () => validateEnvVar(WRAPPED_FLAG); export const setLambdaWrapped = () => (process.env[WRAPPED_FLAG] = 'TRUE'); @@ -200,12 +205,15 @@ export const isSendOnlyIfErrors = () => validateEnvVar(SEND_ONLY_IF_ERROR_FLAG); export const isPruneTraceOff = () => validateEnvVar(PRUNE_TRACE_OFF_FLAG); export const isSwitchedOff = () => - safeExecute(() => { - return TracerGlobals.getTracerInputs().switchOff || !isValidAlias(); - })(); + safeExecute( + () => + validateEnvVar(SWITCH_OFF_FLAG) || + TracerGlobals.getTracerInputs().switchOff || + !isValidAlias() + )(); export const isStepFunction = () => - safeExecute(() => TracerGlobals.getTracerInputs().isStepFunction)(); + validateEnvVar(IS_STEP_FUNCTION_FLAG) || TracerGlobals.getTracerInputs().isStepFunction; export const getValidAliases = () => safeExecute(() => { @@ -228,7 +236,7 @@ export const isValidAlias = () => { const validAlias = !currentAlias || validAliases.length === 0 || validAliases.includes(currentAlias); if (!validAlias) { - logger.info(`Alias is invalid, alias: ${currentAlias}`); + logger.debug(`Alias is invalid, alias: ${currentAlias}`); } return validAlias; }; diff --git a/src/utils.test.js b/src/utils.test.js index 1da957c5..f20f33b3 100644 --- a/src/utils.test.js +++ b/src/utils.test.js @@ -9,14 +9,15 @@ import { recursiveGetKey, md5Hash, safeGet, + isDebug, } from './utils'; import { TracerGlobals } from './globals'; import crypto from 'crypto'; -import { isDebug } from './logger'; import { GET_KEY_DEPTH_ENV_KEY } from './utils'; import { ConsoleWritesForTesting } from '../testUtils/consoleMocker'; import { getEnvVarAsList, isEncodingType, isEmptyString, runOneTimeWrapper } from './utils'; import { DEFAULT_TIMEOUT_MIN_DURATION } from './utils'; +import * as globals from './globals'; describe('utils', () => { const spies = {}; @@ -158,6 +159,18 @@ describe('utils', () => { expect(utils.isWarm()).toBe(true); }); + test('isDebug -> ENV VAR', () => { + expect(utils.isDebug()).toBe(false); + process.env.LUMIGO_DEBUG = 'TRUE'; + expect(utils.isDebug()).toBe(true); + }); + + test('isDebug -> TracerInputs', () => { + expect(utils.isDebug()).toBe(false); + globals.TracerGlobals.setTracerInputs({ debug: true }); + expect(utils.isDebug()).toBe(true); + }); + test('isLambdaWrapped', () => { expect(utils.isLambdaWrapped()).toBe(false); process.env.LUMIGO_IS_WRAPPED = 'TRUE'; @@ -245,6 +258,14 @@ describe('utils', () => { TracerGlobals.clearHandlerInputs(); }); + test('isSwitchedOff -> TracerInputs', () => { + expect(utils.isSwitchedOff()).toBe(false); + TracerGlobals.setTracerInputs({ + switchOff: true, + }); + expect(utils.isSwitchedOff()).toBe(true); + }); + test('isSwitchedOffInvalidAlias', () => { expect(utils.isSwitchedOff()).toBe(false); TracerGlobals.setHandlerInputs({ diff --git a/webpack.config.js b/webpack.config.js index 573629e9..59d04269 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -2,6 +2,9 @@ module.exports = () => { return { target: 'node', mode: 'production', - output: { libraryTarget: 'umd' }, + output: { libraryTarget: 'commonjs2' }, + externals: { + mongodb: 'mongodb', + }, }; };