Repository URL to install this package:
|
Version:
0.8.2 ▾
|
// (c) Copyright 2023 Supertenant Ltd. - all rights reserved.
// See LICENSE file in project root for license terms.
"use strict";const{isNodeJsTooOld,minimumNodeJsVersion}=require("@supertenant/core/src/util/nodeJsVersionCheck");if(isNodeJsTooOld())console.error(`The package @supertenant/collector requires at least Node.js ${minimumNodeJsVersion} but this process is `+`running on Node.js ${process.version}. This process will not be monitored by SuperTenant.`),module.exports=function(){};else{let isMainThread=!0;try{isMainThread=require("worker_threads").isMainThread}catch(err){}const path=require("path"),stNodeJsCore=require("@supertenant/core"),stSharedMetrics=require("@supertenant/shared-metrics"),log=(require("./tracing"),require("./logger")),normalizeConfig=require("./util/normalizeConfig"),experimental=require("./experimental");let agentConnection,config;function init(_config){if(global.__SUPERMETER_INITIALIZED){let collectorIndexCacheKey=Object.keys(require.cache).find(cacheKey=>0<=cacheKey.indexOf("/@supertenant/collector/src/index.js"));return(collectorIndexCacheKey="test"===process.env.NODE_ENV?Object.keys(require.cache).find(cacheKey=>0<=cacheKey.indexOf("collector/src/index.js")):collectorIndexCacheKey)?require.cache[collectorIndexCacheKey].exports:(console.error("Warning: Supermeter has already been initialized but the module @supertenant/collector is not present in Node.js' module cache. The Supermeter API will not be available."),init)}global.__SUPERMETER_INITIALIZED=!0,config=normalizeConfig(_config),agentConnection=require("./agentConnection");var _config=require("./agent/opts"),pidStore=require("./pidStore"),uncaught=require("./uncaught");let logger;return logger=log.getLogger("index",newLogger=>{logger=newLogger}),config.logger=logger,_config.init(config),stNodeJsCore.init(config,agentConnection,pidStore),stSharedMetrics.setLogger(logger),isMainThread&&(uncaught.init(config,agentConnection,pidStore),require("./metrics").init(config)),logger.info("@supertenant/collector module version:",require(path.join(__dirname,"..","package.json")).version),"true"===process.env.ST_INSTANA_ENABLED&&require("./announceCycle").start(),init}init.currentSpan=function(){return stNodeJsCore.tracing.getHandleForCurrentSpan()},init.isTracing=function(){return!!stNodeJsCore.tracing.getCls()&&stNodeJsCore.tracing.getCls().isTracing()},init.isConnected=function(){return agentConnection&&agentConnection.isConnected()},init.setLogger=function(logger){config.logger=logger,log.init(config,stNodeJsCore.superbrainLogger,!0)},init.core=stNodeJsCore,init.sharedMetrics=stSharedMetrics,init.experimental=experimental,init.opentracing=stNodeJsCore.tracing.opentracing,init.sdk=stNodeJsCore.tracing.sdk,null!=process.env.INSTANA_IMMEDIATE_INIT&&"true"===process.env.INSTANA_IMMEDIATE_INIT.toLowerCase()?init():null!=process.env.INSTANA_EARLY_INSTRUMENTATION&&"true"===process.env.INSTANA_EARLY_INSTRUMENTATION.toLowerCase()&&stNodeJsCore.preInit(),module.exports=init}