@opentelemetry/api
Version:
Public API for OpenTelemetry
1 lines • 3.7 kB
Source Map (JSON)
{"version":3,"file":"trace.cjs","names":["ProxyTracerProvider","wrapSpanContext","isSpanContextValid","deleteSpan","getSpan","getActiveSpan","getSpanContext","setSpan","setSpanContext","registerGlobal","DiagAPI","getGlobal"],"sources":["../../src/api/trace.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { ProxyTracerProvider } from '../trace/ProxyTracerProvider';\nimport {\n isSpanContextValid,\n wrapSpanContext,\n} from '../trace/spancontext-utils';\nimport type { Tracer } from '../trace/tracer';\nimport type { TracerProvider } from '../trace/tracer_provider';\nimport {\n deleteSpan,\n getActiveSpan,\n getSpan,\n getSpanContext,\n setSpan,\n setSpanContext,\n} from '../trace/context-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'trace';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Tracing API\n *\n * @since 1.0.0\n */\nexport class TraceAPI {\n private static _instance?: TraceAPI;\n\n private _proxyTracerProvider = new ProxyTracerProvider();\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Trace API */\n public static getInstance(): TraceAPI {\n if (!this._instance) {\n this._instance = new TraceAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current global tracer.\n *\n * @returns true if the tracer provider was successfully registered, else false\n */\n public setGlobalTracerProvider(provider: TracerProvider): boolean {\n const success = registerGlobal(\n API_NAME,\n this._proxyTracerProvider,\n DiagAPI.instance()\n );\n if (success) {\n this._proxyTracerProvider.setDelegate(provider);\n }\n return success;\n }\n\n /**\n * Returns the global tracer provider.\n */\n public getTracerProvider(): TracerProvider {\n return getGlobal(API_NAME) || this._proxyTracerProvider;\n }\n\n /**\n * Returns a tracer from the global tracer provider.\n */\n public getTracer(name: string, version?: string): Tracer {\n return this.getTracerProvider().getTracer(name, version);\n }\n\n /** Remove the global tracer provider */\n public disable() {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n this._proxyTracerProvider = new ProxyTracerProvider();\n }\n\n public wrapSpanContext = wrapSpanContext;\n\n public isSpanContextValid = isSpanContextValid;\n\n public deleteSpan = deleteSpan;\n\n public getSpan = getSpan;\n\n /** @since 1.2.0 */\n public getActiveSpan = getActiveSpan;\n\n public getSpanContext = getSpanContext;\n\n public setSpan = setSpan;\n\n public setSpanContext = setSpanContext;\n}\n"],"mappings":";;;;;;AA2BA,MAAM,WAAW;;;;;;AAOjB,IAAa,WAAb,MAAa,SAAS;;CAMpB,cAAsB;EAHtB,KAAQ,uBAAuB,IAAIA,4BAAAA,oBAAoB;EAmDvD,KAAO,kBAAkBC,0BAAAA;EAEzB,KAAO,qBAAqBC,0BAAAA;EAE5B,KAAO,aAAaC,sBAAAA;EAEpB,KAAO,UAAUC,sBAAAA;EAGjB,KAAO,gBAAgBC,sBAAAA;EAEvB,KAAO,iBAAiBC,sBAAAA;EAExB,KAAO,UAAUC,sBAAAA;EAEjB,KAAO,iBAAiBC,sBAAAA;CA/DD;;CAGvB,OAAc,cAAwB;EACpC,IAAI,CAAC,KAAK,WACR,KAAK,YAAY,IAAI,SAAS;EAGhC,OAAO,KAAK;CACd;;;;;;CAOA,wBAA+B,UAAmC;EAChE,MAAM,UAAUC,qBAAAA,eACd,UACA,KAAK,sBACLC,aAAAA,QAAQ,SAAS,CACnB;EACA,IAAI,SACF,KAAK,qBAAqB,YAAY,QAAQ;EAEhD,OAAO;CACT;;;;CAKA,oBAA2C;EACzC,OAAOC,qBAAAA,UAAU,QAAQ,KAAK,KAAK;CACrC;;;;CAKA,UAAiB,MAAc,SAA0B;EACvD,OAAO,KAAK,kBAAkB,CAAC,CAAC,UAAU,MAAM,OAAO;CACzD;;CAGA,UAAiB;EACf,qBAAA,iBAAiB,UAAUD,aAAAA,QAAQ,SAAS,CAAC;EAC7C,KAAK,uBAAuB,IAAIV,4BAAAA,oBAAoB;CACtD;AAkBF"}