Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@supertenant/core / src / tracing / index.js
Size: Mime:
// (c) Copyright 2023 Supertenant Ltd. - all rights reserved.
// See LICENSE file in project root for license terms.
"use strict";const sdk=require("./sdk"),constants=require("./constants"),tracingMetrics=require("./metrics"),opentracing=require("./opentracing"),spanHandle=require("./spanHandle"),tracingHeaders=require("./tracingHeaders"),tracingUtil=require("./tracingUtil"),spanBuffer=require("./spanBuffer"),supportedVersion=require("./supportedVersion");let tracingEnabled=!1,tracingActivated=!1,instrumenationsInitialized=!1,automaticTracingEnabled=!1,cls=null,config=null,processIdentityProvider=null;const instrumentations=["./instrumentation/control_flow/bluebird","./instrumentation/control_flow/clsHooked","./instrumentation/database/ioredis","./instrumentation/database/mongodb","./instrumentation/database/mysql","./instrumentation/database/redis","./instrumentation/frameworks/express","./instrumentation/protocols/http2Client","./instrumentation/protocols/http2Server","./instrumentation/protocols/httpClient","./instrumentation/protocols/httpServer","./instrumentation/protocols/nativeFetch","./instrumentation/protocols/superagent"];let additionalInstrumentationModules=[];const instrumentationModules={};function initInstrumenations(_config){instrumenationsInitialized?instrumentations.forEach(instrumentationKey=>{instrumentationModules[instrumentationKey].updateConfig&&instrumentationModules[instrumentationKey].updateConfig(_config)}):(instrumentations.forEach(instrumentationKey=>{instrumentationModules[instrumentationKey]=require(instrumentationKey),instrumentationModules[instrumentationKey].init(_config),instrumentationModules[instrumentationKey].batchable&&instrumentationModules[instrumentationKey].spanName&&spanBuffer.addBatchableSpanName(instrumentationModules[instrumentationKey].spanName)}),additionalInstrumentationModules.forEach(instrumentationModule=>{instrumentationModule.init(_config)}),instrumenationsInitialized=!0)}exports.constants=constants,exports.tracingHeaders=tracingHeaders,exports.opentracing=opentracing,exports.sdk=sdk,exports.spanBuffer=spanBuffer,exports.supportedVersion=supportedVersion,exports.util=tracingUtil,exports.registerAdditionalInstrumentations=function(_additionalInstrumentationModules){additionalInstrumentationModules=additionalInstrumentationModules.concat(_additionalInstrumentationModules)},exports.preInit=function(preliminaryConfig){initInstrumenations(preliminaryConfig)},exports.init=function(_config,downstreamConnection,_processIdentityProvider){config=_config,processIdentityProvider=_processIdentityProvider,tracingEnabled=config.tracing.enabled,automaticTracingEnabled=config.tracing.automaticTracingEnabled,tracingEnabled&&(tracingUtil.init(config),tracingHeaders.init(config),"true"===process.env.ST_INSTANA_ENABLED&&(spanBuffer.init(config,downstreamConnection),opentracing.init(config,automaticTracingEnabled,processIdentityProvider)),(cls=require("./cls")).init(config,processIdentityProvider),sdk.init(cls),automaticTracingEnabled)&&initInstrumenations(config),config.tracing.activateImmediately&&exports.activate()},exports.activate=function(extraConfig={}){tracingEnabled&&!tracingActivated&&(tracingActivated=!0,"true"===process.env.ST_INSTANA_ENABLED&&(spanBuffer.activate(extraConfig),opentracing.activate(),sdk.activate()),automaticTracingEnabled)&&instrumentations.forEach(instrumentationKey=>{const instrumentationName=/.\/instrumentation\/[^/]*\/(.*)/.exec(instrumentationKey)[1];-1===config.tracing.disabledTracers.findIndex(disabledKey=>instrumentationName.toLowerCase()===disabledKey)&&instrumentationModules[instrumentationKey].activate(extraConfig)})},exports.deactivate=function(){tracingEnabled&&tracingActivated&&(tracingActivated=!1,automaticTracingEnabled&&instrumentations.forEach(instrumentationKey=>{instrumentationModules[instrumentationKey].deactivate()}),"true"===process.env.ST_INSTANA_ENABLED)&&(opentracing.deactivate(),spanBuffer.deactivate(),sdk.deactivate())},exports.getHandleForCurrentSpan=function(){return spanHandle.getHandleForCurrentSpan(cls)},exports.getCls=function(){return cls},exports._getAndResetTracingMetrics=function(){return{pid:processIdentityProvider&&"function"==typeof processIdentityProvider.getEntityId?processIdentityProvider.getEntityId():void 0,metrics:tracingMetrics.getAndReset()}},exports._instrument=function(name,module_){if("superagent"!==name)throw new Error("An unknown or unsupported instrumentation has been requested: "+name);require("./instrumentation/protocols/superagent").instrument(module_)},exports._debugCurrentSpanName=function(){var s;return cls?(s=cls.ns.get("com.supertenant.span"))?"current: "+s.n:"current: no span":"current: no cls"};