@azure/core-tracing 1.0.0-preview.8 → 1.0.0-preview.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/index.js +14 -10
  3. package/dist/index.js.map +1 -1
  4. package/dist-esm/src/index.js +2 -2
  5. package/dist-esm/src/index.js.map +1 -1
  6. package/dist-esm/src/interfaces.js +2 -2
  7. package/dist-esm/src/interfaces.js.map +1 -1
  8. package/dist-esm/src/tracerProxy.js +2 -2
  9. package/dist-esm/src/tracerProxy.js.map +1 -1
  10. package/dist-esm/src/tracers/noop/noOpSpan.js +2 -2
  11. package/dist-esm/src/tracers/noop/noOpSpan.js.map +1 -1
  12. package/dist-esm/src/tracers/noop/noOpTracer.js +2 -2
  13. package/dist-esm/src/tracers/noop/noOpTracer.js.map +1 -1
  14. package/dist-esm/src/tracers/opencensus/openCensusSpanWrapper.js +2 -0
  15. package/dist-esm/src/tracers/opencensus/openCensusSpanWrapper.js.map +1 -1
  16. package/dist-esm/src/tracers/opencensus/openCensusTraceStateWrapper.js +2 -2
  17. package/dist-esm/src/tracers/opencensus/openCensusTraceStateWrapper.js.map +1 -1
  18. package/dist-esm/src/tracers/opencensus/openCensusTracerWrapper.js +2 -0
  19. package/dist-esm/src/tracers/opencensus/openCensusTracerWrapper.js.map +1 -1
  20. package/dist-esm/src/tracers/test/testSpan.js +2 -2
  21. package/dist-esm/src/tracers/test/testSpan.js.map +1 -1
  22. package/dist-esm/src/tracers/test/testTracer.js +2 -2
  23. package/dist-esm/src/tracers/test/testTracer.js.map +1 -1
  24. package/dist-esm/src/utils/cache.js +2 -2
  25. package/dist-esm/src/utils/cache.js.map +1 -1
  26. package/dist-esm/src/utils/global.browser.js +2 -2
  27. package/dist-esm/src/utils/global.browser.js.map +1 -1
  28. package/dist-esm/src/utils/global.js +2 -2
  29. package/dist-esm/src/utils/global.js.map +1 -1
  30. package/dist-esm/src/utils/traceParentHeader.js +2 -2
  31. package/dist-esm/src/utils/traceParentHeader.js.map +1 -1
  32. package/package.json +19 -17
  33. package/types/core-tracing.d.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Release History
2
2
 
3
+ ## 1.0.0-preview.9 (2020-08-04)
4
+
5
+ - Update `@opentelemetry/api` to version 0.10.2 [PR 10393](https://github.com/Azure/azure-sdk-for-js/pull/10393)
6
+
3
7
  ## 1.0.0-preview.8 (2020-04-28)
4
8
 
5
9
  - Update `TestSpan` to allow setting span attributes [PR link](https://github.com/Azure/azure-sdk-for-js/pull/6565).
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var api = require('@opentelemetry/api');
6
6
  var tslib = require('tslib');
7
7
 
8
- // Copyright (c) Microsoft Corporation. All rights reserved.
8
+ // Copyright (c) Microsoft Corporation.
9
9
  /**
10
10
  * A no-op implementation of Span that can safely be used without side-effects.
11
11
  */
@@ -76,7 +76,7 @@ var NoOpSpan = /** @class */ (function () {
76
76
  return NoOpSpan;
77
77
  }());
78
78
 
79
- // Copyright (c) Microsoft Corporation. All rights reserved.
79
+ // Copyright (c) Microsoft Corporation.
80
80
  /**
81
81
  * A no-op implementation of Tracer that can be used when tracing
82
82
  * is disabled.
@@ -117,13 +117,13 @@ var NoOpTracer = /** @class */ (function () {
117
117
  return NoOpTracer;
118
118
  }());
119
119
 
120
- // Copyright (c) Microsoft Corporation. All rights reserved.
121
- // Licensed under the MIT License.
120
+ // Copyright (c) Microsoft Corporation.
121
+ // Licensed under the MIT license.
122
122
  function getGlobalObject() {
123
123
  return global;
124
124
  }
125
125
 
126
- // Copyright (c) Microsoft Corporation. All rights reserved.
126
+ // Copyright (c) Microsoft Corporation.
127
127
  // V1 = OpenTelemetry 0.1
128
128
  // V2 = OpenTelemetry 0.2
129
129
  // V3 = OpenTelemetry 0.6.1
@@ -164,7 +164,7 @@ function getCache() {
164
164
  return cache;
165
165
  }
166
166
 
167
- // Copyright (c) Microsoft Corporation. All rights reserved.
167
+ // Copyright (c) Microsoft Corporation.
168
168
  var defaultTracer;
169
169
  function getDefaultTracer() {
170
170
  if (!defaultTracer) {
@@ -192,8 +192,8 @@ function getTracer() {
192
192
  return cache.tracer;
193
193
  }
194
194
 
195
- // Copyright (c) Microsoft Corporation. All rights reserved.
196
- // Licensed under the MIT License.
195
+ // Copyright (c) Microsoft Corporation.
196
+ // Licensed under the MIT license.
197
197
  /**
198
198
  * @ignore
199
199
  * @internal
@@ -217,6 +217,7 @@ var OpenCensusTraceStateWrapper = /** @class */ (function () {
217
217
  return OpenCensusTraceStateWrapper;
218
218
  }());
219
219
 
220
+ // Copyright (c) Microsoft Corporation.
220
221
  function isWrappedSpan(span) {
221
222
  return !!span && span.getWrappedSpan !== undefined;
222
223
  }
@@ -326,6 +327,7 @@ var OpenCensusSpanWrapper = /** @class */ (function () {
326
327
  return OpenCensusSpanWrapper;
327
328
  }());
328
329
 
330
+ // Copyright (c) Microsoft Corporation.
329
331
  /**
330
332
  * An implementation of OpenTelemetry Tracer that wraps an OpenCensus Tracer.
331
333
  */
@@ -376,6 +378,7 @@ var OpenCensusTracerWrapper = /** @class */ (function () {
376
378
  return OpenCensusTracerWrapper;
377
379
  }());
378
380
 
381
+ // Copyright (c) Microsoft Corporation.
379
382
  /**
380
383
  * A mock span useful for testing.
381
384
  */
@@ -463,6 +466,7 @@ var TestSpan = /** @class */ (function (_super) {
463
466
  return TestSpan;
464
467
  }(NoOpSpan));
465
468
 
469
+ // Copyright (c) Microsoft Corporation.
466
470
  /**
467
471
  * A mock tracer useful for testing
468
472
  */
@@ -583,8 +587,8 @@ var TestTracer = /** @class */ (function (_super) {
583
587
  return TestTracer;
584
588
  }(NoOpTracer));
585
589
 
586
- // Copyright (c) Microsoft Corporation. All rights reserved.
587
- // Licensed under the MIT License.
590
+ // Copyright (c) Microsoft Corporation.
591
+ // Licensed under the MIT license.
588
592
  var VERSION = "00";
589
593
  /**
590
594
  * Generates a `SpanContext` given a `traceparent` header value.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/tracers/noop/noOpSpan.ts","../src/tracers/noop/noOpTracer.ts","../src/utils/global.ts","../src/utils/cache.ts","../src/tracerProxy.ts","../src/tracers/opencensus/openCensusTraceStateWrapper.ts","../src/tracers/opencensus/openCensusSpanWrapper.ts","../src/tracers/opencensus/openCensusTracerWrapper.ts","../src/tracers/test/testSpan.ts","../src/tracers/test/testTracer.ts","../src/utils/traceParentHeader.ts"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { Span, SpanContext, Attributes, Status, TraceFlags } from \"@opentelemetry/api\";\n\n/**\n * A no-op implementation of Span that can safely be used without side-effects.\n */\nexport class NoOpSpan implements Span {\n /**\n * Returns the SpanContext associated with this Span.\n */\n context(): SpanContext {\n return {\n spanId: \"\",\n traceId: \"\",\n traceFlags: TraceFlags.NONE\n };\n }\n\n /**\n * Marks the end of Span execution.\n * @param _endTime The time to use as the Span's end time. Defaults to\n * the current time.\n */\n end(_endTime?: number): void {\n /* Noop */\n }\n\n /**\n * Sets an attribute on the Span\n * @param _key the attribute key\n * @param _value the attribute value\n */\n setAttribute(_key: string, _value: unknown): this {\n return this;\n }\n\n /**\n * Sets attributes on the Span\n * @param _attributes the attributes to add\n */\n setAttributes(_attributes: Attributes): this {\n return this;\n }\n\n /**\n * Adds an event to the Span\n * @param _name The name of the event\n * @param _attributes The associated attributes to add for this event\n */\n addEvent(_name: string, _attributes?: Attributes): this {\n return this;\n }\n\n /**\n * Sets a status on the span. Overrides the default of CanonicalCode.OK.\n * @param _status The status to set.\n */\n setStatus(_status: Status): this {\n return this;\n }\n\n /**\n * Updates the name of the Span\n * @param _name the new Span name\n */\n updateName(_name: string): this {\n return this;\n }\n\n /**\n * Returns whether this span will be recorded\n */\n isRecording(): boolean {\n return false;\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { NoOpSpan } from \"./noOpSpan\";\nimport { Tracer, Span, SpanOptions } from \"@opentelemetry/api\";\n\n/**\n * A no-op implementation of Tracer that can be used when tracing\n * is disabled.\n */\nexport class NoOpTracer implements Tracer {\n /**\n * Starts a new Span.\n * @param _name The name of the span.\n * @param _options The SpanOptions used during Span creation.\n */\n startSpan(_name: string, _options?: SpanOptions): Span {\n return new NoOpSpan();\n }\n\n /**\n * Returns the current Span from the current context, if available.\n */\n getCurrentSpan(): Span {\n return new NoOpSpan();\n }\n\n /**\n * Executes the given function within the context provided by a Span.\n * @param _span The span that provides the context.\n * @param fn The function to be executed.\n */\n withSpan<T extends (...args: unknown[]) => ReturnType<T>>(_span: Span, fn: T): ReturnType<T> {\n return fn();\n }\n\n /**\n * Bind a Span as the target's scope\n * @param target An object to bind the scope.\n * @param _span A specific Span to use. Otherwise, use the current one.\n */\n bind<T>(target: T, _span?: Span): T {\n return target;\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nexport function getGlobalObject(): any {\n return global;\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { Tracer } from \"@opentelemetry/api\";\nimport { getGlobalObject } from \"./global\";\n\n// V1 = OpenTelemetry 0.1\n// V2 = OpenTelemetry 0.2\n// V3 = OpenTelemetry 0.6.1\nconst GLOBAL_TRACER_VERSION = 3;\n// preview5 shipped with @azure/core-tracing.tracerCache\n// and didn't have smart detection for collisions\nconst GLOBAL_TRACER_SYMBOL = Symbol.for(\"@azure/core-tracing.tracerCache2\");\n\nexport interface TracerCache {\n version: number;\n tracer?: Tracer;\n}\n\nlet cache: TracerCache;\n\nfunction loadTracerCache(): void {\n const globalObj = getGlobalObject();\n const existingCache: TracerCache = globalObj[GLOBAL_TRACER_SYMBOL];\n let setGlobalCache = true;\n if (existingCache) {\n if (existingCache.version === GLOBAL_TRACER_VERSION) {\n cache = existingCache;\n } else {\n setGlobalCache = false;\n if (existingCache.tracer) {\n throw new Error(\n `Two incompatible versions of @azure/core-tracing have been loaded.\n This library is ${GLOBAL_TRACER_VERSION}, existing is ${existingCache.version}.`\n );\n }\n }\n }\n\n if (!cache) {\n cache = {\n tracer: undefined,\n version: GLOBAL_TRACER_VERSION\n };\n }\n if (setGlobalCache) {\n globalObj[GLOBAL_TRACER_SYMBOL] = cache;\n }\n}\n\nexport function getCache(): TracerCache {\n if (!cache) {\n loadTracerCache();\n }\n return cache;\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { NoOpTracer } from \"./tracers/noop/noOpTracer\";\nimport { Tracer } from \"@opentelemetry/api\";\nimport { getCache } from \"./utils/cache\";\n\nlet defaultTracer: Tracer;\n\nfunction getDefaultTracer(): Tracer {\n if (!defaultTracer) {\n defaultTracer = new NoOpTracer();\n }\n return defaultTracer;\n}\n\n/**\n * Sets the global tracer, enabling tracing for the Azure SDK.\n * @param tracer An OpenTelemetry Tracer instance.\n */\nexport function setTracer(tracer: Tracer) {\n const cache = getCache();\n cache.tracer = tracer;\n}\n\n/**\n * Retrieves the active tracer, or returns a\n * no-op implementation if one is not set.\n */\nexport function getTracer() {\n const cache = getCache();\n if (!cache.tracer) {\n return getDefaultTracer();\n }\n return cache.tracer;\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { TraceState } from \"@opentelemetry/api\";\n\n/**\n * @ignore\n * @internal\n */\nexport class OpenCensusTraceStateWrapper implements TraceState {\n private readonly _state?: string;\n\n constructor(state?: string) {\n this._state = state;\n }\n\n get(_key: string): string | undefined {\n throw new Error(\"Method not implemented.\");\n }\n\n set(_key: string, _value: string): void {\n throw new Error(\"Method not implemented.\");\n }\n\n unset(_key: string): void {\n throw new Error(\"Method not implemented\");\n }\n\n serialize(): string {\n return this._state || \"\";\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { SpanContext, Span, SpanOptions, Attributes, Status, TraceFlags } from \"@opentelemetry/api\";\nimport { OpenCensusTraceStateWrapper } from \"./openCensusTraceStateWrapper\";\nimport { OpenCensusTracerWrapper } from \"./openCensusTracerWrapper\";\nimport { Attributes as OpenCensusAttributes, Span as OpenCensusSpan } from \"@opencensus/web-types\";\n\nfunction isWrappedSpan(span?: Span | SpanContext | null): span is OpenCensusSpanWrapper {\n return !!span && (span as OpenCensusSpanWrapper).getWrappedSpan !== undefined;\n}\n\nfunction isTracer(\n tracerOrSpan: OpenCensusTracerWrapper | OpenCensusSpan\n): tracerOrSpan is OpenCensusTracerWrapper {\n return (tracerOrSpan as OpenCensusTracerWrapper).getWrappedTracer !== undefined;\n}\n\n/**\n * An implementation of OpenTelemetry Span that wraps an OpenCensus Span.\n */\nexport class OpenCensusSpanWrapper implements Span {\n private _span: OpenCensusSpan;\n\n /**\n * The underlying OpenCensus Span\n */\n public getWrappedSpan() {\n return this._span;\n }\n\n /**\n * Wraps an existing OpenCensus Span\n * @param span A Span or RootSpan from OpenCensus\n */\n constructor(span: OpenCensusSpan);\n /**\n * Create a new OpenCensus Span and wrap it.\n * @param tracer The OpenCensus tracer that has been wrapped in OpenCensusTracerWrapper\n * @param name The name of the Span\n * @param options Options for the Span\n */\n constructor(tracer: OpenCensusTracerWrapper, name: string, options?: SpanOptions);\n constructor(\n tracerOrSpan: OpenCensusTracerWrapper | OpenCensusSpan,\n name: string = \"\",\n options: SpanOptions = {}\n ) {\n if (isTracer(tracerOrSpan)) {\n const parent = isWrappedSpan(options.parent) ? options.parent.getWrappedSpan() : undefined;\n this._span = tracerOrSpan.getWrappedTracer().startChildSpan({\n name,\n childOf: parent\n });\n this._span.start();\n if (options.links) {\n for (const link of options.links) {\n // Since there is no way to set the link relationship, leave it as Unspecified.\n this._span.addLink(\n link.context.traceId,\n link.context.spanId,\n 0 /* LinkType.UNSPECIFIED */,\n link.attributes as OpenCensusAttributes\n );\n }\n }\n } else {\n this._span = tracerOrSpan;\n }\n }\n\n /**\n * Marks the end of Span execution.\n * @param endTime The time to use as the Span's end time. Defaults to\n * the current time.\n */\n end(_endTime?: number): void {\n this._span.end();\n }\n\n /**\n * Returns the SpanContext associated with this Span.\n */\n context(): SpanContext {\n const openCensusSpanContext = this._span.spanContext;\n\n return {\n spanId: openCensusSpanContext.spanId,\n traceId: openCensusSpanContext.traceId,\n traceFlags: openCensusSpanContext.options as TraceFlags,\n traceState: new OpenCensusTraceStateWrapper(openCensusSpanContext.traceState)\n };\n }\n\n /**\n * Sets an attribute on the Span\n * @param key the attribute key\n * @param value the attribute value\n */\n setAttribute(key: string, value: unknown): this {\n this._span.addAttribute(key, value as any);\n return this;\n }\n\n /**\n * Sets attributes on the Span\n * @param attributes the attributes to add\n */\n setAttributes(attributes: Attributes): this {\n this._span.attributes = attributes as OpenCensusAttributes;\n return this;\n }\n\n /**\n * Adds an event to the Span\n * @param name The name of the event\n * @param attributes The associated attributes to add for this event\n */\n addEvent(_name: string, _attributes?: Attributes): this {\n throw new Error(\"Method not implemented.\");\n }\n\n /**\n * Sets a status on the span. Overrides the default of CanonicalCode.OK.\n * @param status The status to set.\n */\n setStatus(status: Status): this {\n this._span.setStatus(status.code, status.message);\n return this;\n }\n\n /**\n * Updates the name of the Span\n * @param name the new Span name\n */\n updateName(name: string): this {\n this._span.name = name;\n return this;\n }\n\n /**\n * Returns whether this span will be recorded\n */\n isRecording(): boolean {\n // NoRecordSpans have an empty traceId\n return !!this._span.traceId;\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { Tracer, Span, SpanOptions } from \"@opentelemetry/api\";\nimport { OpenCensusSpanWrapper } from \"./openCensusSpanWrapper\";\nimport { TracerBase as OpenCensusTracer } from \"@opencensus/web-types\";\n\n/**\n * An implementation of OpenTelemetry Tracer that wraps an OpenCensus Tracer.\n */\nexport class OpenCensusTracerWrapper implements Tracer {\n private _tracer: OpenCensusTracer;\n\n /**\n * The wrapped OpenCensus Tracer\n */\n public getWrappedTracer() {\n return this._tracer;\n }\n\n /**\n * Create a new wrapper around a given OpenCensus Tracer.\n * @param tracer The OpenCensus Tracer to wrap.\n */\n public constructor(tracer: OpenCensusTracer) {\n this._tracer = tracer;\n }\n\n /**\n * Starts a new Span.\n * @param name The name of the span.\n * @param options The SpanOptions used during Span creation.\n */\n startSpan(name: string, options?: SpanOptions): Span {\n return new OpenCensusSpanWrapper(this, name, options);\n }\n\n /**\n * Returns the current Span from the current context, if available.\n */\n getCurrentSpan(): Span | undefined {\n return undefined;\n }\n\n /**\n * Executes the given function within the context provided by a Span.\n * @param _span The span that provides the context.\n * @param _fn The function to be executed.\n */\n withSpan<T extends (...args: unknown[]) => unknown>(_span: Span, _fn: T): ReturnType<T> {\n throw new Error(\"Method not implemented.\");\n }\n\n /**\n * Bind a Span as the target's scope\n * @param target An object to bind the scope.\n * @param _span A specific Span to use. Otherwise, use the current one.\n */\n bind<T>(_target: T, _span?: Span): T {\n throw new Error(\"Method not implemented.\");\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport {\n TimeInput,\n Tracer,\n SpanKind,\n Status,\n SpanContext,\n CanonicalCode,\n Attributes\n} from \"@opentelemetry/api\";\nimport { NoOpSpan } from \"../noop/noOpSpan\";\nimport { TestTracer } from \"./testTracer\";\n\n/**\n * A mock span useful for testing.\n */\nexport class TestSpan extends NoOpSpan {\n /**\n * The Span's current name\n */\n name: string;\n\n /**\n * The Span's current status\n */\n status: Status;\n\n /**\n * The Span's kind\n */\n kind: SpanKind;\n\n /**\n * True if end() has been called on the Span\n */\n endCalled: boolean;\n\n /**\n * The start time of the Span\n */\n readonly startTime: TimeInput;\n\n /**\n * The id of the parent Span, if any.\n */\n readonly parentSpanId?: string;\n\n /**\n * Known attributes, if any.\n */\n readonly attributes: Attributes;\n\n private _context: SpanContext;\n private readonly _tracer: Tracer;\n\n /**\n * Starts a new Span.\n * @param parentTracer The tracer that created this Span\n * @param name The name of the span.\n * @param context The SpanContext this span belongs to\n * @param kind The SpanKind of this Span\n * @param parentSpanId The identifier of the parent Span\n * @param startTime The startTime of the event (defaults to now)\n */\n constructor(\n parentTracer: TestTracer,\n name: string,\n context: SpanContext,\n kind: SpanKind,\n parentSpanId?: string,\n startTime: TimeInput = Date.now()\n ) {\n super();\n this._tracer = parentTracer;\n this.name = name;\n this.kind = kind;\n this.startTime = startTime;\n this.parentSpanId = parentSpanId;\n this.status = {\n code: CanonicalCode.OK\n };\n this.endCalled = false;\n this._context = context;\n this.attributes = {};\n }\n\n /**\n * Returns the Tracer that created this Span\n */\n tracer(): Tracer {\n return this._tracer;\n }\n\n /**\n * Returns the SpanContext associated with this Span.\n */\n context(): SpanContext {\n return this._context;\n }\n\n /**\n * Marks the end of Span execution.\n * @param _endTime The time to use as the Span's end time. Defaults to\n * the current time.\n */\n end(_endTime?: number): void {\n this.endCalled = true;\n }\n\n /**\n * Sets a status on the span. Overrides the default of CanonicalCode.OK.\n * @param status The status to set.\n */\n setStatus(status: Status): this {\n this.status = status;\n return this;\n }\n\n /**\n * Returns whether this span will be recorded\n */\n isRecording(): boolean {\n return true;\n }\n\n /**\n * Sets an attribute on the Span\n * @param key the attribute key\n * @param value the attribute value\n */\n setAttribute(key: string, value: unknown): this {\n this.attributes[key] = value;\n return this;\n }\n\n /**\n * Sets attributes on the Span\n * @param attributes the attributes to add\n */\n setAttributes(attributes: Attributes): this {\n for (const key of Object.keys(attributes)) {\n this.attributes[key] = attributes[key];\n }\n return this;\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { TestSpan } from \"./testSpan\";\nimport { NoOpTracer } from \"../noop/noOpTracer\";\nimport { SpanContext, SpanKind, SpanOptions, TraceFlags } from \"@opentelemetry/api\";\n\n/**\n * Simple representation of a Span that only has name and child relationships.\n * Children should be arranged in the order they were created.\n */\nexport interface SpanGraphNode {\n /**\n * The Span name\n */\n name: string;\n /**\n * All child Spans of this Span\n */\n children: SpanGraphNode[];\n}\n\n/**\n * Contains all the spans for a particular TraceID\n * starting at unparented roots\n */\nexport interface SpanGraph {\n /**\n * All Spans without a parentSpanId\n */\n roots: SpanGraphNode[];\n}\n\n/**\n * A mock tracer useful for testing\n */\nexport class TestTracer extends NoOpTracer {\n private traceIdCounter = 0;\n private getNextTraceId(): string {\n this.traceIdCounter++;\n return String(this.traceIdCounter);\n }\n\n private spanIdCounter = 0;\n private getNextSpanId(): string {\n this.spanIdCounter++;\n return String(this.spanIdCounter);\n }\n\n private rootSpans: TestSpan[] = [];\n private knownSpans: TestSpan[] = [];\n\n /**\n * Returns all Spans that were created without a parent\n */\n getRootSpans(): TestSpan[] {\n return this.rootSpans;\n }\n\n /**\n * Returns all Spans this Tracer knows about\n */\n getKnownSpans(): TestSpan[] {\n return this.knownSpans;\n }\n\n /**\n * Returns all Spans where end() has not been called\n */\n getActiveSpans(): TestSpan[] {\n return this.knownSpans.filter((span) => {\n return !span.endCalled;\n });\n }\n\n /**\n * Return all Spans for a particular trace, grouped by their\n * parent Span in a tree-like structure\n * @param traceId The traceId to return the graph for\n */\n getSpanGraph(traceId: string): SpanGraph {\n const traceSpans = this.knownSpans.filter((span) => {\n return span.context().traceId === traceId;\n });\n\n const roots: SpanGraphNode[] = [];\n const nodeMap: Map<string, SpanGraphNode> = new Map<string, SpanGraphNode>();\n\n for (const span of traceSpans) {\n const spanId = span.context().spanId;\n const node: SpanGraphNode = {\n name: span.name,\n children: []\n };\n nodeMap.set(spanId, node);\n if (span.parentSpanId) {\n const parent = nodeMap.get(span.parentSpanId);\n if (!parent) {\n throw new Error(\n `Span with name ${node.name} has an unknown parentSpan with id ${span.parentSpanId}`\n );\n }\n parent.children.push(node);\n } else {\n roots.push(node);\n }\n }\n\n return {\n roots\n };\n }\n\n /**\n * Starts a new Span.\n * @param name The name of the span.\n * @param options The SpanOptions used during Span creation.\n */\n startSpan(name: string, options: SpanOptions = {}): TestSpan {\n const parentContext = this._getParentContext(options);\n\n let traceId: string;\n let isRootSpan = false;\n\n if (parentContext && parentContext.traceId) {\n traceId = parentContext.traceId;\n } else {\n traceId = this.getNextTraceId();\n isRootSpan = true;\n }\n\n const context: SpanContext = {\n traceId,\n spanId: this.getNextSpanId(),\n traceFlags: TraceFlags.NONE\n };\n const span = new TestSpan(\n this,\n name,\n context,\n options.kind || SpanKind.INTERNAL,\n parentContext ? parentContext.spanId : undefined,\n options.startTime\n );\n this.knownSpans.push(span);\n if (isRootSpan) {\n this.rootSpans.push(span);\n }\n return span;\n }\n\n private _getParentContext(options: SpanOptions): SpanContext | undefined {\n const parent = options.parent;\n let result: SpanContext | undefined;\n if (parent) {\n if (\"traceId\" in parent) {\n result = parent;\n } else {\n result = parent.context();\n }\n }\n return result;\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { SpanContext, TraceFlags } from \"../interfaces\";\n\nconst VERSION = \"00\";\n\n/**\n * Generates a `SpanContext` given a `traceparent` header value.\n * @param traceParent Serialized span context data as a `traceparent` header value.\n * @returns The `SpanContext` generated from the `traceparent` value.\n */\nexport function extractSpanContextFromTraceParentHeader(\n traceParentHeader: string\n): SpanContext | undefined {\n const parts = traceParentHeader.split(\"-\");\n\n if (parts.length !== 4) {\n return;\n }\n\n const [version, traceId, spanId, traceOptions] = parts;\n\n if (version !== VERSION) {\n return;\n }\n\n const traceFlags = parseInt(traceOptions, 16);\n\n const spanContext: SpanContext = {\n spanId,\n traceId,\n traceFlags\n };\n\n return spanContext;\n}\n\n/**\n * Generates a `traceparent` value given a span context.\n * @param spanContext Contains context for a specific span.\n * @returns The `spanContext` represented as a `traceparent` value.\n */\nexport function getTraceParentHeader(spanContext: SpanContext): string | undefined {\n const missingFields: string[] = [];\n if (!spanContext.traceId) {\n missingFields.push(\"traceId\");\n }\n if (!spanContext.spanId) {\n missingFields.push(\"spanId\");\n }\n\n if (missingFields.length) {\n return;\n }\n\n const flags = spanContext.traceFlags || TraceFlags.NONE;\n const hexFlags = flags.toString(16);\n const traceFlags = hexFlags.length === 1 ? `0${hexFlags}` : hexFlags;\n\n // https://www.w3.org/TR/trace-context/#traceparent-header-field-values\n return `${VERSION}-${spanContext.traceId}-${spanContext.spanId}-${traceFlags}`;\n}\n"],"names":["TraceFlags","__extends","CanonicalCode","SpanKind"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/tracers/noop/noOpSpan.ts","../src/tracers/noop/noOpTracer.ts","../src/utils/global.ts","../src/utils/cache.ts","../src/tracerProxy.ts","../src/tracers/opencensus/openCensusTraceStateWrapper.ts","../src/tracers/opencensus/openCensusSpanWrapper.ts","../src/tracers/opencensus/openCensusTracerWrapper.ts","../src/tracers/test/testSpan.ts","../src/tracers/test/testTracer.ts","../src/utils/traceParentHeader.ts"],"sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Span, SpanContext, Attributes, Status, TraceFlags } from \"@opentelemetry/api\";\n\n/**\n * A no-op implementation of Span that can safely be used without side-effects.\n */\nexport class NoOpSpan implements Span {\n /**\n * Returns the SpanContext associated with this Span.\n */\n context(): SpanContext {\n return {\n spanId: \"\",\n traceId: \"\",\n traceFlags: TraceFlags.NONE\n };\n }\n\n /**\n * Marks the end of Span execution.\n * @param _endTime The time to use as the Span's end time. Defaults to\n * the current time.\n */\n end(_endTime?: number): void {\n /* Noop */\n }\n\n /**\n * Sets an attribute on the Span\n * @param _key the attribute key\n * @param _value the attribute value\n */\n setAttribute(_key: string, _value: unknown): this {\n return this;\n }\n\n /**\n * Sets attributes on the Span\n * @param _attributes the attributes to add\n */\n setAttributes(_attributes: Attributes): this {\n return this;\n }\n\n /**\n * Adds an event to the Span\n * @param _name The name of the event\n * @param _attributes The associated attributes to add for this event\n */\n addEvent(_name: string, _attributes?: Attributes): this {\n return this;\n }\n\n /**\n * Sets a status on the span. Overrides the default of CanonicalCode.OK.\n * @param _status The status to set.\n */\n setStatus(_status: Status): this {\n return this;\n }\n\n /**\n * Updates the name of the Span\n * @param _name the new Span name\n */\n updateName(_name: string): this {\n return this;\n }\n\n /**\n * Returns whether this span will be recorded\n */\n isRecording(): boolean {\n return false;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { NoOpSpan } from \"./noOpSpan\";\nimport { Tracer, Span, SpanOptions } from \"@opentelemetry/api\";\n\n/**\n * A no-op implementation of Tracer that can be used when tracing\n * is disabled.\n */\nexport class NoOpTracer implements Tracer {\n /**\n * Starts a new Span.\n * @param _name The name of the span.\n * @param _options The SpanOptions used during Span creation.\n */\n startSpan(_name: string, _options?: SpanOptions): Span {\n return new NoOpSpan();\n }\n\n /**\n * Returns the current Span from the current context, if available.\n */\n getCurrentSpan(): Span {\n return new NoOpSpan();\n }\n\n /**\n * Executes the given function within the context provided by a Span.\n * @param _span The span that provides the context.\n * @param fn The function to be executed.\n */\n withSpan<T extends (...args: unknown[]) => ReturnType<T>>(_span: Span, fn: T): ReturnType<T> {\n return fn();\n }\n\n /**\n * Bind a Span as the target's scope\n * @param target An object to bind the scope.\n * @param _span A specific Span to use. Otherwise, use the current one.\n */\n bind<T>(target: T, _span?: Span): T {\n return target;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport function getGlobalObject(): any {\n return global;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Tracer } from \"@opentelemetry/api\";\nimport { getGlobalObject } from \"./global\";\n\n// V1 = OpenTelemetry 0.1\n// V2 = OpenTelemetry 0.2\n// V3 = OpenTelemetry 0.6.1\nconst GLOBAL_TRACER_VERSION = 3;\n// preview5 shipped with @azure/core-tracing.tracerCache\n// and didn't have smart detection for collisions\nconst GLOBAL_TRACER_SYMBOL = Symbol.for(\"@azure/core-tracing.tracerCache2\");\n\nexport interface TracerCache {\n version: number;\n tracer?: Tracer;\n}\n\nlet cache: TracerCache;\n\nfunction loadTracerCache(): void {\n const globalObj = getGlobalObject();\n const existingCache: TracerCache = globalObj[GLOBAL_TRACER_SYMBOL];\n let setGlobalCache = true;\n if (existingCache) {\n if (existingCache.version === GLOBAL_TRACER_VERSION) {\n cache = existingCache;\n } else {\n setGlobalCache = false;\n if (existingCache.tracer) {\n throw new Error(\n `Two incompatible versions of @azure/core-tracing have been loaded.\n This library is ${GLOBAL_TRACER_VERSION}, existing is ${existingCache.version}.`\n );\n }\n }\n }\n\n if (!cache) {\n cache = {\n tracer: undefined,\n version: GLOBAL_TRACER_VERSION\n };\n }\n if (setGlobalCache) {\n globalObj[GLOBAL_TRACER_SYMBOL] = cache;\n }\n}\n\nexport function getCache(): TracerCache {\n if (!cache) {\n loadTracerCache();\n }\n return cache;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { NoOpTracer } from \"./tracers/noop/noOpTracer\";\nimport { Tracer } from \"@opentelemetry/api\";\nimport { getCache } from \"./utils/cache\";\n\nlet defaultTracer: Tracer;\n\nfunction getDefaultTracer(): Tracer {\n if (!defaultTracer) {\n defaultTracer = new NoOpTracer();\n }\n return defaultTracer;\n}\n\n/**\n * Sets the global tracer, enabling tracing for the Azure SDK.\n * @param tracer An OpenTelemetry Tracer instance.\n */\nexport function setTracer(tracer: Tracer): void {\n const cache = getCache();\n cache.tracer = tracer;\n}\n\n/**\n * Retrieves the active tracer, or returns a\n * no-op implementation if one is not set.\n */\nexport function getTracer(): Tracer {\n const cache = getCache();\n if (!cache.tracer) {\n return getDefaultTracer();\n }\n return cache.tracer;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { TraceState } from \"@opentelemetry/api\";\n\n/**\n * @ignore\n * @internal\n */\nexport class OpenCensusTraceStateWrapper implements TraceState {\n private readonly _state?: string;\n\n constructor(state?: string) {\n this._state = state;\n }\n\n get(_key: string): string | undefined {\n throw new Error(\"Method not implemented.\");\n }\n\n set(_key: string, _value: string): void {\n throw new Error(\"Method not implemented.\");\n }\n\n unset(_key: string): void {\n throw new Error(\"Method not implemented\");\n }\n\n serialize(): string {\n return this._state || \"\";\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { SpanContext, Span, SpanOptions, Attributes, Status, TraceFlags } from \"@opentelemetry/api\";\nimport { OpenCensusTraceStateWrapper } from \"./openCensusTraceStateWrapper\";\nimport { OpenCensusTracerWrapper } from \"./openCensusTracerWrapper\";\nimport { Attributes as OpenCensusAttributes, Span as OpenCensusSpan } from \"@opencensus/web-types\";\n\nfunction isWrappedSpan(span?: Span | SpanContext | null): span is OpenCensusSpanWrapper {\n return !!span && (span as OpenCensusSpanWrapper).getWrappedSpan !== undefined;\n}\n\nfunction isTracer(\n tracerOrSpan: OpenCensusTracerWrapper | OpenCensusSpan\n): tracerOrSpan is OpenCensusTracerWrapper {\n return (tracerOrSpan as OpenCensusTracerWrapper).getWrappedTracer !== undefined;\n}\n\n/**\n * An implementation of OpenTelemetry Span that wraps an OpenCensus Span.\n */\nexport class OpenCensusSpanWrapper implements Span {\n private _span: OpenCensusSpan;\n\n /**\n * The underlying OpenCensus Span\n */\n public getWrappedSpan(): OpenCensusSpan {\n return this._span;\n }\n\n /**\n * Wraps an existing OpenCensus Span\n * @param span A Span or RootSpan from OpenCensus\n */\n constructor(span: OpenCensusSpan);\n /**\n * Create a new OpenCensus Span and wrap it.\n * @param tracer The OpenCensus tracer that has been wrapped in OpenCensusTracerWrapper\n * @param name The name of the Span\n * @param options Options for the Span\n */\n constructor(tracer: OpenCensusTracerWrapper, name: string, options?: SpanOptions);\n constructor(\n tracerOrSpan: OpenCensusTracerWrapper | OpenCensusSpan,\n name: string = \"\",\n options: SpanOptions = {}\n ) {\n if (isTracer(tracerOrSpan)) {\n const parent = isWrappedSpan(options.parent) ? options.parent.getWrappedSpan() : undefined;\n this._span = tracerOrSpan.getWrappedTracer().startChildSpan({\n name,\n childOf: parent\n });\n this._span.start();\n if (options.links) {\n for (const link of options.links) {\n // Since there is no way to set the link relationship, leave it as Unspecified.\n this._span.addLink(\n link.context.traceId,\n link.context.spanId,\n 0 /* LinkType.UNSPECIFIED */,\n link.attributes as OpenCensusAttributes\n );\n }\n }\n } else {\n this._span = tracerOrSpan;\n }\n }\n\n /**\n * Marks the end of Span execution.\n * @param endTime The time to use as the Span's end time. Defaults to\n * the current time.\n */\n end(_endTime?: number): void {\n this._span.end();\n }\n\n /**\n * Returns the SpanContext associated with this Span.\n */\n context(): SpanContext {\n const openCensusSpanContext = this._span.spanContext;\n\n return {\n spanId: openCensusSpanContext.spanId,\n traceId: openCensusSpanContext.traceId,\n traceFlags: openCensusSpanContext.options as TraceFlags,\n traceState: new OpenCensusTraceStateWrapper(openCensusSpanContext.traceState)\n };\n }\n\n /**\n * Sets an attribute on the Span\n * @param key the attribute key\n * @param value the attribute value\n */\n setAttribute(key: string, value: unknown): this {\n this._span.addAttribute(key, value as any);\n return this;\n }\n\n /**\n * Sets attributes on the Span\n * @param attributes the attributes to add\n */\n setAttributes(attributes: Attributes): this {\n this._span.attributes = attributes as OpenCensusAttributes;\n return this;\n }\n\n /**\n * Adds an event to the Span\n * @param name The name of the event\n * @param attributes The associated attributes to add for this event\n */\n addEvent(_name: string, _attributes?: Attributes): this {\n throw new Error(\"Method not implemented.\");\n }\n\n /**\n * Sets a status on the span. Overrides the default of CanonicalCode.OK.\n * @param status The status to set.\n */\n setStatus(status: Status): this {\n this._span.setStatus(status.code, status.message);\n return this;\n }\n\n /**\n * Updates the name of the Span\n * @param name the new Span name\n */\n updateName(name: string): this {\n this._span.name = name;\n return this;\n }\n\n /**\n * Returns whether this span will be recorded\n */\n isRecording(): boolean {\n // NoRecordSpans have an empty traceId\n return !!this._span.traceId;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Tracer, Span, SpanOptions } from \"@opentelemetry/api\";\nimport { OpenCensusSpanWrapper } from \"./openCensusSpanWrapper\";\nimport { TracerBase as OpenCensusTracer } from \"@opencensus/web-types\";\n\n/**\n * An implementation of OpenTelemetry Tracer that wraps an OpenCensus Tracer.\n */\nexport class OpenCensusTracerWrapper implements Tracer {\n private _tracer: OpenCensusTracer;\n\n /**\n * The wrapped OpenCensus Tracer\n */\n public getWrappedTracer(): OpenCensusTracer {\n return this._tracer;\n }\n\n /**\n * Create a new wrapper around a given OpenCensus Tracer.\n * @param tracer The OpenCensus Tracer to wrap.\n */\n public constructor(tracer: OpenCensusTracer) {\n this._tracer = tracer;\n }\n\n /**\n * Starts a new Span.\n * @param name The name of the span.\n * @param options The SpanOptions used during Span creation.\n */\n startSpan(name: string, options?: SpanOptions): Span {\n return new OpenCensusSpanWrapper(this, name, options);\n }\n\n /**\n * Returns the current Span from the current context, if available.\n */\n getCurrentSpan(): Span | undefined {\n return undefined;\n }\n\n /**\n * Executes the given function within the context provided by a Span.\n * @param _span The span that provides the context.\n * @param _fn The function to be executed.\n */\n withSpan<T extends (...args: unknown[]) => unknown>(_span: Span, _fn: T): ReturnType<T> {\n throw new Error(\"Method not implemented.\");\n }\n\n /**\n * Bind a Span as the target's scope\n * @param target An object to bind the scope.\n * @param _span A specific Span to use. Otherwise, use the current one.\n */\n bind<T>(_target: T, _span?: Span): T {\n throw new Error(\"Method not implemented.\");\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n TimeInput,\n Tracer,\n SpanKind,\n Status,\n SpanContext,\n CanonicalCode,\n Attributes\n} from \"@opentelemetry/api\";\nimport { NoOpSpan } from \"../noop/noOpSpan\";\n\n/**\n * A mock span useful for testing.\n */\nexport class TestSpan extends NoOpSpan {\n /**\n * The Span's current name\n */\n name: string;\n\n /**\n * The Span's current status\n */\n status: Status;\n\n /**\n * The Span's kind\n */\n kind: SpanKind;\n\n /**\n * True if end() has been called on the Span\n */\n endCalled: boolean;\n\n /**\n * The start time of the Span\n */\n readonly startTime: TimeInput;\n\n /**\n * The id of the parent Span, if any.\n */\n readonly parentSpanId?: string;\n\n /**\n * Known attributes, if any.\n */\n readonly attributes: Attributes;\n\n private _context: SpanContext;\n private readonly _tracer: Tracer;\n\n /**\n * Starts a new Span.\n * @param parentTracer The tracer that created this Span\n * @param name The name of the span.\n * @param context The SpanContext this span belongs to\n * @param kind The SpanKind of this Span\n * @param parentSpanId The identifier of the parent Span\n * @param startTime The startTime of the event (defaults to now)\n */\n constructor(\n parentTracer: Tracer,\n name: string,\n context: SpanContext,\n kind: SpanKind,\n parentSpanId?: string,\n startTime: TimeInput = Date.now()\n ) {\n super();\n this._tracer = parentTracer;\n this.name = name;\n this.kind = kind;\n this.startTime = startTime;\n this.parentSpanId = parentSpanId;\n this.status = {\n code: CanonicalCode.OK\n };\n this.endCalled = false;\n this._context = context;\n this.attributes = {};\n }\n\n /**\n * Returns the Tracer that created this Span\n */\n tracer(): Tracer {\n return this._tracer;\n }\n\n /**\n * Returns the SpanContext associated with this Span.\n */\n context(): SpanContext {\n return this._context;\n }\n\n /**\n * Marks the end of Span execution.\n * @param _endTime The time to use as the Span's end time. Defaults to\n * the current time.\n */\n end(_endTime?: number): void {\n this.endCalled = true;\n }\n\n /**\n * Sets a status on the span. Overrides the default of CanonicalCode.OK.\n * @param status The status to set.\n */\n setStatus(status: Status): this {\n this.status = status;\n return this;\n }\n\n /**\n * Returns whether this span will be recorded\n */\n isRecording(): boolean {\n return true;\n }\n\n /**\n * Sets an attribute on the Span\n * @param key the attribute key\n * @param value the attribute value\n */\n setAttribute(key: string, value: unknown): this {\n this.attributes[key] = value;\n return this;\n }\n\n /**\n * Sets attributes on the Span\n * @param attributes the attributes to add\n */\n setAttributes(attributes: Attributes): this {\n for (const key of Object.keys(attributes)) {\n this.attributes[key] = attributes[key];\n }\n return this;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { TestSpan } from \"./testSpan\";\nimport { NoOpTracer } from \"../noop/noOpTracer\";\nimport { SpanContext, SpanKind, SpanOptions, TraceFlags } from \"@opentelemetry/api\";\n\n/**\n * Simple representation of a Span that only has name and child relationships.\n * Children should be arranged in the order they were created.\n */\nexport interface SpanGraphNode {\n /**\n * The Span name\n */\n name: string;\n /**\n * All child Spans of this Span\n */\n children: SpanGraphNode[];\n}\n\n/**\n * Contains all the spans for a particular TraceID\n * starting at unparented roots\n */\nexport interface SpanGraph {\n /**\n * All Spans without a parentSpanId\n */\n roots: SpanGraphNode[];\n}\n\n/**\n * A mock tracer useful for testing\n */\nexport class TestTracer extends NoOpTracer {\n private traceIdCounter = 0;\n private getNextTraceId(): string {\n this.traceIdCounter++;\n return String(this.traceIdCounter);\n }\n\n private spanIdCounter = 0;\n private getNextSpanId(): string {\n this.spanIdCounter++;\n return String(this.spanIdCounter);\n }\n\n private rootSpans: TestSpan[] = [];\n private knownSpans: TestSpan[] = [];\n\n /**\n * Returns all Spans that were created without a parent\n */\n getRootSpans(): TestSpan[] {\n return this.rootSpans;\n }\n\n /**\n * Returns all Spans this Tracer knows about\n */\n getKnownSpans(): TestSpan[] {\n return this.knownSpans;\n }\n\n /**\n * Returns all Spans where end() has not been called\n */\n getActiveSpans(): TestSpan[] {\n return this.knownSpans.filter((span) => {\n return !span.endCalled;\n });\n }\n\n /**\n * Return all Spans for a particular trace, grouped by their\n * parent Span in a tree-like structure\n * @param traceId The traceId to return the graph for\n */\n getSpanGraph(traceId: string): SpanGraph {\n const traceSpans = this.knownSpans.filter((span) => {\n return span.context().traceId === traceId;\n });\n\n const roots: SpanGraphNode[] = [];\n const nodeMap: Map<string, SpanGraphNode> = new Map<string, SpanGraphNode>();\n\n for (const span of traceSpans) {\n const spanId = span.context().spanId;\n const node: SpanGraphNode = {\n name: span.name,\n children: []\n };\n nodeMap.set(spanId, node);\n if (span.parentSpanId) {\n const parent = nodeMap.get(span.parentSpanId);\n if (!parent) {\n throw new Error(\n `Span with name ${node.name} has an unknown parentSpan with id ${span.parentSpanId}`\n );\n }\n parent.children.push(node);\n } else {\n roots.push(node);\n }\n }\n\n return {\n roots\n };\n }\n\n /**\n * Starts a new Span.\n * @param name The name of the span.\n * @param options The SpanOptions used during Span creation.\n */\n startSpan(name: string, options: SpanOptions = {}): TestSpan {\n const parentContext = this._getParentContext(options);\n\n let traceId: string;\n let isRootSpan = false;\n\n if (parentContext && parentContext.traceId) {\n traceId = parentContext.traceId;\n } else {\n traceId = this.getNextTraceId();\n isRootSpan = true;\n }\n\n const context: SpanContext = {\n traceId,\n spanId: this.getNextSpanId(),\n traceFlags: TraceFlags.NONE\n };\n const span = new TestSpan(\n this,\n name,\n context,\n options.kind || SpanKind.INTERNAL,\n parentContext ? parentContext.spanId : undefined,\n options.startTime\n );\n this.knownSpans.push(span);\n if (isRootSpan) {\n this.rootSpans.push(span);\n }\n return span;\n }\n\n private _getParentContext(options: SpanOptions): SpanContext | undefined {\n const parent = options.parent;\n let result: SpanContext | undefined;\n if (parent) {\n if (\"traceId\" in parent) {\n result = parent;\n } else {\n result = parent.context();\n }\n }\n return result;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { SpanContext, TraceFlags } from \"../interfaces\";\n\nconst VERSION = \"00\";\n\n/**\n * Generates a `SpanContext` given a `traceparent` header value.\n * @param traceParent Serialized span context data as a `traceparent` header value.\n * @returns The `SpanContext` generated from the `traceparent` value.\n */\nexport function extractSpanContextFromTraceParentHeader(\n traceParentHeader: string\n): SpanContext | undefined {\n const parts = traceParentHeader.split(\"-\");\n\n if (parts.length !== 4) {\n return;\n }\n\n const [version, traceId, spanId, traceOptions] = parts;\n\n if (version !== VERSION) {\n return;\n }\n\n const traceFlags = parseInt(traceOptions, 16);\n\n const spanContext: SpanContext = {\n spanId,\n traceId,\n traceFlags\n };\n\n return spanContext;\n}\n\n/**\n * Generates a `traceparent` value given a span context.\n * @param spanContext Contains context for a specific span.\n * @returns The `spanContext` represented as a `traceparent` value.\n */\nexport function getTraceParentHeader(spanContext: SpanContext): string | undefined {\n const missingFields: string[] = [];\n if (!spanContext.traceId) {\n missingFields.push(\"traceId\");\n }\n if (!spanContext.spanId) {\n missingFields.push(\"spanId\");\n }\n\n if (missingFields.length) {\n return;\n }\n\n const flags = spanContext.traceFlags || TraceFlags.NONE;\n const hexFlags = flags.toString(16);\n const traceFlags = hexFlags.length === 1 ? `0${hexFlags}` : hexFlags;\n\n // https://www.w3.org/TR/trace-context/#traceparent-header-field-values\n return `${VERSION}-${spanContext.traceId}-${spanContext.spanId}-${traceFlags}`;\n}\n"],"names":["TraceFlags","__extends","CanonicalCode","SpanKind"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- // Copyright (c) Microsoft Corporation. All rights reserved.
2
- // Licensed under the MIT License.
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
3
  export { getTracer, setTracer } from "./tracerProxy";
4
4
  // Tracers and wrappers
5
5
  export { NoOpSpan } from "./tracers/noop/noOpSpan";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,kCAAkC;AAElC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAErD,uBAAuB;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,UAAU,EAA4B,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAQnD,YAAY;AACZ,OAAO,EACL,uCAAuC,EACvC,oBAAoB,EACrB,MAAM,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nexport { getTracer, setTracer } from \"./tracerProxy\";\n\n// Tracers and wrappers\nexport { NoOpSpan } from \"./tracers/noop/noOpSpan\";\nexport { NoOpTracer } from \"./tracers/noop/noOpTracer\";\nexport { OpenCensusSpanWrapper } from \"./tracers/opencensus/openCensusSpanWrapper\";\nexport { OpenCensusTracerWrapper } from \"./tracers/opencensus/openCensusTracerWrapper\";\nexport { TestTracer, SpanGraph, SpanGraphNode } from \"./tracers/test/testTracer\";\nexport { TestSpan } from \"./tracers/test/testSpan\";\n\n// Shared interfaces\nexport { SpanContext, SpanOptions, TraceFlags } from \"./interfaces\";\n\n// OT interfaces\nexport { SpanContext as OTSpanContext, SpanOptions as OTSpanOptions } from \"@opentelemetry/api\";\n\n// Utilities\nexport {\n extractSpanContextFromTraceParentHeader,\n getTraceParentHeader\n} from \"./utils/traceParentHeader\";\n\n// OpenCensus Interfaces\nexport { Tracer as OpenCensusTracer, Span as OpenCensusSpan } from \"@opencensus/web-types\";\n\nexport { OperationTracingOptions } from \"./interfaces\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAErD,uBAAuB;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,UAAU,EAA4B,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAQnD,YAAY;AACZ,OAAO,EACL,uCAAuC,EACvC,oBAAoB,EACrB,MAAM,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport { getTracer, setTracer } from \"./tracerProxy\";\n\n// Tracers and wrappers\nexport { NoOpSpan } from \"./tracers/noop/noOpSpan\";\nexport { NoOpTracer } from \"./tracers/noop/noOpTracer\";\nexport { OpenCensusSpanWrapper } from \"./tracers/opencensus/openCensusSpanWrapper\";\nexport { OpenCensusTracerWrapper } from \"./tracers/opencensus/openCensusTracerWrapper\";\nexport { TestTracer, SpanGraph, SpanGraphNode } from \"./tracers/test/testTracer\";\nexport { TestSpan } from \"./tracers/test/testSpan\";\n\n// Shared interfaces\nexport { SpanContext, SpanOptions, TraceFlags } from \"./interfaces\";\n\n// OT interfaces\nexport { SpanContext as OTSpanContext, SpanOptions as OTSpanOptions } from \"@opentelemetry/api\";\n\n// Utilities\nexport {\n extractSpanContextFromTraceParentHeader,\n getTraceParentHeader\n} from \"./utils/traceParentHeader\";\n\n// OpenCensus Interfaces\nexport { Tracer as OpenCensusTracer, Span as OpenCensusSpan } from \"@opencensus/web-types\";\n\nexport { OperationTracingOptions } from \"./interfaces\";\n"]}
@@ -1,3 +1,3 @@
1
- // Copyright (c) Microsoft Corporation. All rights reserved.
2
- // Licensed under the MIT License.
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
3
  //# sourceMappingURL=interfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n/**\n * Shorthand enum for common traceFlags values inside SpanContext\n */\nexport const enum TraceFlags {\n /** No flag set. */\n NONE = 0x0,\n /** Caller is collecting trace information. */\n SAMPLED = 0x1\n}\n\n/**\n * A light interface that tries to be structurally compatible with OpenTelemetry\n */\nexport interface SpanContext {\n /**\n * UUID of a trace.\n */\n traceId: string;\n /**\n * UUID of a Span.\n */\n spanId: string;\n /**\n * https://www.w3.org/TR/trace-context/#trace-flags\n */\n traceFlags: number;\n}\n\n/**\n * An interface that enables manual propagation of Spans\n */\nexport interface SpanOptions {\n /**\n * The SpanContext that refers to a parent span, if any.\n * A null value indicates that this should be a new root span,\n * rather than potentially detecting a span via a context manager.\n */\n parent?: SpanContext | null;\n /**\n * Attributes to set on the Span\n */\n attributes?: { [key: string]: unknown };\n}\n\n/**\n * Tracing options to set on an operation.\n */\nexport interface OperationTracingOptions {\n /**\n * OpenTelemetry SpanOptions used to create a span when tracing is enabled.\n */\n spanOptions?: SpanOptions;\n}\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Shorthand enum for common traceFlags values inside SpanContext\n */\nexport const enum TraceFlags {\n /** No flag set. */\n NONE = 0x0,\n /** Caller is collecting trace information. */\n SAMPLED = 0x1\n}\n\n/**\n * A light interface that tries to be structurally compatible with OpenTelemetry\n */\nexport interface SpanContext {\n /**\n * UUID of a trace.\n */\n traceId: string;\n /**\n * UUID of a Span.\n */\n spanId: string;\n /**\n * https://www.w3.org/TR/trace-context/#trace-flags\n */\n traceFlags: number;\n}\n\n/**\n * An interface that enables manual propagation of Spans\n */\nexport interface SpanOptions {\n /**\n * The SpanContext that refers to a parent span, if any.\n * A null value indicates that this should be a new root span,\n * rather than potentially detecting a span via a context manager.\n */\n parent?: SpanContext | null;\n /**\n * Attributes to set on the Span\n */\n attributes?: { [key: string]: unknown };\n}\n\n/**\n * Tracing options to set on an operation.\n */\nexport interface OperationTracingOptions {\n /**\n * OpenTelemetry SpanOptions used to create a span when tracing is enabled.\n */\n spanOptions?: SpanOptions;\n}\n"]}
@@ -1,5 +1,5 @@
1
- // Copyright (c) Microsoft Corporation. All rights reserved.
2
- // Licensed under the MIT License.
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
3
  import { NoOpTracer } from "./tracers/noop/noOpTracer";
4
4
  import { getCache } from "./utils/cache";
5
5
  var defaultTracer;
@@ -1 +1 @@
1
- {"version":3,"file":"tracerProxy.js","sourceRoot":"","sources":["../../src/tracerProxy.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,kCAAkC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,IAAI,aAAqB,CAAC;AAE1B,SAAS,gBAAgB;IACvB,IAAI,CAAC,aAAa,EAAE;QAClB,aAAa,GAAG,IAAI,UAAU,EAAE,CAAC;KAClC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,IAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,IAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QACjB,OAAO,gBAAgB,EAAE,CAAC;KAC3B;IACD,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { NoOpTracer } from \"./tracers/noop/noOpTracer\";\nimport { Tracer } from \"@opentelemetry/api\";\nimport { getCache } from \"./utils/cache\";\n\nlet defaultTracer: Tracer;\n\nfunction getDefaultTracer(): Tracer {\n if (!defaultTracer) {\n defaultTracer = new NoOpTracer();\n }\n return defaultTracer;\n}\n\n/**\n * Sets the global tracer, enabling tracing for the Azure SDK.\n * @param tracer An OpenTelemetry Tracer instance.\n */\nexport function setTracer(tracer: Tracer) {\n const cache = getCache();\n cache.tracer = tracer;\n}\n\n/**\n * Retrieves the active tracer, or returns a\n * no-op implementation if one is not set.\n */\nexport function getTracer() {\n const cache = getCache();\n if (!cache.tracer) {\n return getDefaultTracer();\n }\n return cache.tracer;\n}\n"]}
1
+ {"version":3,"file":"tracerProxy.js","sourceRoot":"","sources":["../../src/tracerProxy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,IAAI,aAAqB,CAAC;AAE1B,SAAS,gBAAgB;IACvB,IAAI,CAAC,aAAa,EAAE;QAClB,aAAa,GAAG,IAAI,UAAU,EAAE,CAAC;KAClC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,IAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,IAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QACjB,OAAO,gBAAgB,EAAE,CAAC;KAC3B;IACD,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { NoOpTracer } from \"./tracers/noop/noOpTracer\";\nimport { Tracer } from \"@opentelemetry/api\";\nimport { getCache } from \"./utils/cache\";\n\nlet defaultTracer: Tracer;\n\nfunction getDefaultTracer(): Tracer {\n if (!defaultTracer) {\n defaultTracer = new NoOpTracer();\n }\n return defaultTracer;\n}\n\n/**\n * Sets the global tracer, enabling tracing for the Azure SDK.\n * @param tracer An OpenTelemetry Tracer instance.\n */\nexport function setTracer(tracer: Tracer): void {\n const cache = getCache();\n cache.tracer = tracer;\n}\n\n/**\n * Retrieves the active tracer, or returns a\n * no-op implementation if one is not set.\n */\nexport function getTracer(): Tracer {\n const cache = getCache();\n if (!cache.tracer) {\n return getDefaultTracer();\n }\n return cache.tracer;\n}\n"]}
@@ -1,5 +1,5 @@
1
- // Copyright (c) Microsoft Corporation. All rights reserved.
2
- // Licensed under the MIT License.
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
3
  import { TraceFlags } from "@opentelemetry/api";
4
4
  /**
5
5
  * A no-op implementation of Span that can safely be used without side-effects.
@@ -1 +1 @@
1
- {"version":3,"file":"noOpSpan.js","sourceRoot":"","sources":["../../../../src/tracers/noop/noOpSpan.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,kCAAkC;AAClC,OAAO,EAAyC,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEvF;;GAEG;AACH;IAAA;IAqEA,CAAC;IApEC;;OAEG;IACH,0BAAO,GAAP;QACE,OAAO;YACL,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,UAAU,CAAC,IAAI;SAC5B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,sBAAG,GAAH,UAAI,QAAiB;QACnB,UAAU;IACZ,CAAC;IAED;;;;OAIG;IACH,+BAAY,GAAZ,UAAa,IAAY,EAAE,MAAe;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,gCAAa,GAAb,UAAc,WAAuB;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,2BAAQ,GAAR,UAAS,KAAa,EAAE,WAAwB;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,4BAAS,GAAT,UAAU,OAAe;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,6BAAU,GAAV,UAAW,KAAa;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,8BAAW,GAAX;QACE,OAAO,KAAK,CAAC;IACf,CAAC;IACH,eAAC;AAAD,CAAC,AArED,IAqEC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { Span, SpanContext, Attributes, Status, TraceFlags } from \"@opentelemetry/api\";\n\n/**\n * A no-op implementation of Span that can safely be used without side-effects.\n */\nexport class NoOpSpan implements Span {\n /**\n * Returns the SpanContext associated with this Span.\n */\n context(): SpanContext {\n return {\n spanId: \"\",\n traceId: \"\",\n traceFlags: TraceFlags.NONE\n };\n }\n\n /**\n * Marks the end of Span execution.\n * @param _endTime The time to use as the Span's end time. Defaults to\n * the current time.\n */\n end(_endTime?: number): void {\n /* Noop */\n }\n\n /**\n * Sets an attribute on the Span\n * @param _key the attribute key\n * @param _value the attribute value\n */\n setAttribute(_key: string, _value: unknown): this {\n return this;\n }\n\n /**\n * Sets attributes on the Span\n * @param _attributes the attributes to add\n */\n setAttributes(_attributes: Attributes): this {\n return this;\n }\n\n /**\n * Adds an event to the Span\n * @param _name The name of the event\n * @param _attributes The associated attributes to add for this event\n */\n addEvent(_name: string, _attributes?: Attributes): this {\n return this;\n }\n\n /**\n * Sets a status on the span. Overrides the default of CanonicalCode.OK.\n * @param _status The status to set.\n */\n setStatus(_status: Status): this {\n return this;\n }\n\n /**\n * Updates the name of the Span\n * @param _name the new Span name\n */\n updateName(_name: string): this {\n return this;\n }\n\n /**\n * Returns whether this span will be recorded\n */\n isRecording(): boolean {\n return false;\n }\n}\n"]}
1
+ {"version":3,"file":"noOpSpan.js","sourceRoot":"","sources":["../../../../src/tracers/noop/noOpSpan.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAyC,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEvF;;GAEG;AACH;IAAA;IAqEA,CAAC;IApEC;;OAEG;IACH,0BAAO,GAAP;QACE,OAAO;YACL,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,UAAU,CAAC,IAAI;SAC5B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,sBAAG,GAAH,UAAI,QAAiB;QACnB,UAAU;IACZ,CAAC;IAED;;;;OAIG;IACH,+BAAY,GAAZ,UAAa,IAAY,EAAE,MAAe;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,gCAAa,GAAb,UAAc,WAAuB;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,2BAAQ,GAAR,UAAS,KAAa,EAAE,WAAwB;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,4BAAS,GAAT,UAAU,OAAe;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,6BAAU,GAAV,UAAW,KAAa;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,8BAAW,GAAX;QACE,OAAO,KAAK,CAAC;IACf,CAAC;IACH,eAAC;AAAD,CAAC,AArED,IAqEC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Span, SpanContext, Attributes, Status, TraceFlags } from \"@opentelemetry/api\";\n\n/**\n * A no-op implementation of Span that can safely be used without side-effects.\n */\nexport class NoOpSpan implements Span {\n /**\n * Returns the SpanContext associated with this Span.\n */\n context(): SpanContext {\n return {\n spanId: \"\",\n traceId: \"\",\n traceFlags: TraceFlags.NONE\n };\n }\n\n /**\n * Marks the end of Span execution.\n * @param _endTime The time to use as the Span's end time. Defaults to\n * the current time.\n */\n end(_endTime?: number): void {\n /* Noop */\n }\n\n /**\n * Sets an attribute on the Span\n * @param _key the attribute key\n * @param _value the attribute value\n */\n setAttribute(_key: string, _value: unknown): this {\n return this;\n }\n\n /**\n * Sets attributes on the Span\n * @param _attributes the attributes to add\n */\n setAttributes(_attributes: Attributes): this {\n return this;\n }\n\n /**\n * Adds an event to the Span\n * @param _name The name of the event\n * @param _attributes The associated attributes to add for this event\n */\n addEvent(_name: string, _attributes?: Attributes): this {\n return this;\n }\n\n /**\n * Sets a status on the span. Overrides the default of CanonicalCode.OK.\n * @param _status The status to set.\n */\n setStatus(_status: Status): this {\n return this;\n }\n\n /**\n * Updates the name of the Span\n * @param _name the new Span name\n */\n updateName(_name: string): this {\n return this;\n }\n\n /**\n * Returns whether this span will be recorded\n */\n isRecording(): boolean {\n return false;\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
- // Copyright (c) Microsoft Corporation. All rights reserved.
2
- // Licensed under the MIT License.
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
3
  import { NoOpSpan } from "./noOpSpan";
4
4
  /**
5
5
  * A no-op implementation of Tracer that can be used when tracing
@@ -1 +1 @@
1
- {"version":3,"file":"noOpTracer.js","sourceRoot":"","sources":["../../../../src/tracers/noop/noOpTracer.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,kCAAkC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC;;;GAGG;AACH;IAAA;IAkCA,CAAC;IAjCC;;;;OAIG;IACH,8BAAS,GAAT,UAAU,KAAa,EAAE,QAAsB;QAC7C,OAAO,IAAI,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,mCAAc,GAAd;QACE,OAAO,IAAI,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,6BAAQ,GAAR,UAA0D,KAAW,EAAE,EAAK;QAC1E,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,yBAAI,GAAJ,UAAQ,MAAS,EAAE,KAAY;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IACH,iBAAC;AAAD,CAAC,AAlCD,IAkCC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { NoOpSpan } from \"./noOpSpan\";\nimport { Tracer, Span, SpanOptions } from \"@opentelemetry/api\";\n\n/**\n * A no-op implementation of Tracer that can be used when tracing\n * is disabled.\n */\nexport class NoOpTracer implements Tracer {\n /**\n * Starts a new Span.\n * @param _name The name of the span.\n * @param _options The SpanOptions used during Span creation.\n */\n startSpan(_name: string, _options?: SpanOptions): Span {\n return new NoOpSpan();\n }\n\n /**\n * Returns the current Span from the current context, if available.\n */\n getCurrentSpan(): Span {\n return new NoOpSpan();\n }\n\n /**\n * Executes the given function within the context provided by a Span.\n * @param _span The span that provides the context.\n * @param fn The function to be executed.\n */\n withSpan<T extends (...args: unknown[]) => ReturnType<T>>(_span: Span, fn: T): ReturnType<T> {\n return fn();\n }\n\n /**\n * Bind a Span as the target's scope\n * @param target An object to bind the scope.\n * @param _span A specific Span to use. Otherwise, use the current one.\n */\n bind<T>(target: T, _span?: Span): T {\n return target;\n }\n}\n"]}
1
+ {"version":3,"file":"noOpTracer.js","sourceRoot":"","sources":["../../../../src/tracers/noop/noOpTracer.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC;;;GAGG;AACH;IAAA;IAkCA,CAAC;IAjCC;;;;OAIG;IACH,8BAAS,GAAT,UAAU,KAAa,EAAE,QAAsB;QAC7C,OAAO,IAAI,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,mCAAc,GAAd;QACE,OAAO,IAAI,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,6BAAQ,GAAR,UAA0D,KAAW,EAAE,EAAK;QAC1E,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,yBAAI,GAAJ,UAAQ,MAAS,EAAE,KAAY;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IACH,iBAAC;AAAD,CAAC,AAlCD,IAkCC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { NoOpSpan } from \"./noOpSpan\";\nimport { Tracer, Span, SpanOptions } from \"@opentelemetry/api\";\n\n/**\n * A no-op implementation of Tracer that can be used when tracing\n * is disabled.\n */\nexport class NoOpTracer implements Tracer {\n /**\n * Starts a new Span.\n * @param _name The name of the span.\n * @param _options The SpanOptions used during Span creation.\n */\n startSpan(_name: string, _options?: SpanOptions): Span {\n return new NoOpSpan();\n }\n\n /**\n * Returns the current Span from the current context, if available.\n */\n getCurrentSpan(): Span {\n return new NoOpSpan();\n }\n\n /**\n * Executes the given function within the context provided by a Span.\n * @param _span The span that provides the context.\n * @param fn The function to be executed.\n */\n withSpan<T extends (...args: unknown[]) => ReturnType<T>>(_span: Span, fn: T): ReturnType<T> {\n return fn();\n }\n\n /**\n * Bind a Span as the target's scope\n * @param target An object to bind the scope.\n * @param _span A specific Span to use. Otherwise, use the current one.\n */\n bind<T>(target: T, _span?: Span): T {\n return target;\n }\n}\n"]}
@@ -1,3 +1,5 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
1
3
  import { OpenCensusTraceStateWrapper } from "./openCensusTraceStateWrapper";
2
4
  function isWrappedSpan(span) {
3
5
  return !!span && span.getWrappedSpan !== undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"openCensusSpanWrapper.js","sourceRoot":"","sources":["../../../../src/tracers/opencensus/openCensusSpanWrapper.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { SpanContext, Span, SpanOptions, Attributes, Status, TraceFlags } from \"@opentelemetry/api\";\nimport { OpenCensusTraceStateWrapper } from \"./openCensusTraceStateWrapper\";\nimport { OpenCensusTracerWrapper } from \"./openCensusTracerWrapper\";\nimport { Attributes as OpenCensusAttributes, Span as OpenCensusSpan } from \"@opencensus/web-types\";\n\nfunction isWrappedSpan(span?: Span | SpanContext | null): span is OpenCensusSpanWrapper {\n return !!span && (span as OpenCensusSpanWrapper).getWrappedSpan !== undefined;\n}\n\nfunction isTracer(\n tracerOrSpan: OpenCensusTracerWrapper | OpenCensusSpan\n): tracerOrSpan is OpenCensusTracerWrapper {\n return (tracerOrSpan as OpenCensusTracerWrapper).getWrappedTracer !== undefined;\n}\n\n/**\n * An implementation of OpenTelemetry Span that wraps an OpenCensus Span.\n */\nexport class OpenCensusSpanWrapper implements Span {\n private _span: OpenCensusSpan;\n\n /**\n * The underlying OpenCensus Span\n */\n public getWrappedSpan() {\n return this._span;\n }\n\n /**\n * Wraps an existing OpenCensus Span\n * @param span A Span or RootSpan from OpenCensus\n */\n constructor(span: OpenCensusSpan);\n /**\n * Create a new OpenCensus Span and wrap it.\n * @param tracer The OpenCensus tracer that has been wrapped in OpenCensusTracerWrapper\n * @param name The name of the Span\n * @param options Options for the Span\n */\n constructor(tracer: OpenCensusTracerWrapper, name: string, options?: SpanOptions);\n constructor(\n tracerOrSpan: OpenCensusTracerWrapper | OpenCensusSpan,\n name: string = \"\",\n options: SpanOptions = {}\n ) {\n if (isTracer(tracerOrSpan)) {\n const parent = isWrappedSpan(options.parent) ? options.parent.getWrappedSpan() : undefined;\n this._span = tracerOrSpan.getWrappedTracer().startChildSpan({\n name,\n childOf: parent\n });\n this._span.start();\n if (options.links) {\n for (const link of options.links) {\n // Since there is no way to set the link relationship, leave it as Unspecified.\n this._span.addLink(\n link.context.traceId,\n link.context.spanId,\n 0 /* LinkType.UNSPECIFIED */,\n link.attributes as OpenCensusAttributes\n );\n }\n }\n } else {\n this._span = tracerOrSpan;\n }\n }\n\n /**\n * Marks the end of Span execution.\n * @param endTime The time to use as the Span's end time. Defaults to\n * the current time.\n */\n end(_endTime?: number): void {\n this._span.end();\n }\n\n /**\n * Returns the SpanContext associated with this Span.\n */\n context(): SpanContext {\n const openCensusSpanContext = this._span.spanContext;\n\n return {\n spanId: openCensusSpanContext.spanId,\n traceId: openCensusSpanContext.traceId,\n traceFlags: openCensusSpanContext.options as TraceFlags,\n traceState: new OpenCensusTraceStateWrapper(openCensusSpanContext.traceState)\n };\n }\n\n /**\n * Sets an attribute on the Span\n * @param key the attribute key\n * @param value the attribute value\n */\n setAttribute(key: string, value: unknown): this {\n this._span.addAttribute(key, value as any);\n return this;\n }\n\n /**\n * Sets attributes on the Span\n * @param attributes the attributes to add\n */\n setAttributes(attributes: Attributes): this {\n this._span.attributes = attributes as OpenCensusAttributes;\n return this;\n }\n\n /**\n * Adds an event to the Span\n * @param name The name of the event\n * @param attributes The associated attributes to add for this event\n */\n addEvent(_name: string, _attributes?: Attributes): this {\n throw new Error(\"Method not implemented.\");\n }\n\n /**\n * Sets a status on the span. Overrides the default of CanonicalCode.OK.\n * @param status The status to set.\n */\n setStatus(status: Status): this {\n this._span.setStatus(status.code, status.message);\n return this;\n }\n\n /**\n * Updates the name of the Span\n * @param name the new Span name\n */\n updateName(name: string): this {\n this._span.name = name;\n return this;\n }\n\n /**\n * Returns whether this span will be recorded\n */\n isRecording(): boolean {\n // NoRecordSpans have an empty traceId\n return !!this._span.traceId;\n }\n}\n"]}
1
+ {"version":3,"file":"openCensusSpanWrapper.js","sourceRoot":"","sources":["../../../../src/tracers/opencensus/openCensusSpanWrapper.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { SpanContext, Span, SpanOptions, Attributes, Status, TraceFlags } from \"@opentelemetry/api\";\nimport { OpenCensusTraceStateWrapper } from \"./openCensusTraceStateWrapper\";\nimport { OpenCensusTracerWrapper } from \"./openCensusTracerWrapper\";\nimport { Attributes as OpenCensusAttributes, Span as OpenCensusSpan } from \"@opencensus/web-types\";\n\nfunction isWrappedSpan(span?: Span | SpanContext | null): span is OpenCensusSpanWrapper {\n return !!span && (span as OpenCensusSpanWrapper).getWrappedSpan !== undefined;\n}\n\nfunction isTracer(\n tracerOrSpan: OpenCensusTracerWrapper | OpenCensusSpan\n): tracerOrSpan is OpenCensusTracerWrapper {\n return (tracerOrSpan as OpenCensusTracerWrapper).getWrappedTracer !== undefined;\n}\n\n/**\n * An implementation of OpenTelemetry Span that wraps an OpenCensus Span.\n */\nexport class OpenCensusSpanWrapper implements Span {\n private _span: OpenCensusSpan;\n\n /**\n * The underlying OpenCensus Span\n */\n public getWrappedSpan(): OpenCensusSpan {\n return this._span;\n }\n\n /**\n * Wraps an existing OpenCensus Span\n * @param span A Span or RootSpan from OpenCensus\n */\n constructor(span: OpenCensusSpan);\n /**\n * Create a new OpenCensus Span and wrap it.\n * @param tracer The OpenCensus tracer that has been wrapped in OpenCensusTracerWrapper\n * @param name The name of the Span\n * @param options Options for the Span\n */\n constructor(tracer: OpenCensusTracerWrapper, name: string, options?: SpanOptions);\n constructor(\n tracerOrSpan: OpenCensusTracerWrapper | OpenCensusSpan,\n name: string = \"\",\n options: SpanOptions = {}\n ) {\n if (isTracer(tracerOrSpan)) {\n const parent = isWrappedSpan(options.parent) ? options.parent.getWrappedSpan() : undefined;\n this._span = tracerOrSpan.getWrappedTracer().startChildSpan({\n name,\n childOf: parent\n });\n this._span.start();\n if (options.links) {\n for (const link of options.links) {\n // Since there is no way to set the link relationship, leave it as Unspecified.\n this._span.addLink(\n link.context.traceId,\n link.context.spanId,\n 0 /* LinkType.UNSPECIFIED */,\n link.attributes as OpenCensusAttributes\n );\n }\n }\n } else {\n this._span = tracerOrSpan;\n }\n }\n\n /**\n * Marks the end of Span execution.\n * @param endTime The time to use as the Span's end time. Defaults to\n * the current time.\n */\n end(_endTime?: number): void {\n this._span.end();\n }\n\n /**\n * Returns the SpanContext associated with this Span.\n */\n context(): SpanContext {\n const openCensusSpanContext = this._span.spanContext;\n\n return {\n spanId: openCensusSpanContext.spanId,\n traceId: openCensusSpanContext.traceId,\n traceFlags: openCensusSpanContext.options as TraceFlags,\n traceState: new OpenCensusTraceStateWrapper(openCensusSpanContext.traceState)\n };\n }\n\n /**\n * Sets an attribute on the Span\n * @param key the attribute key\n * @param value the attribute value\n */\n setAttribute(key: string, value: unknown): this {\n this._span.addAttribute(key, value as any);\n return this;\n }\n\n /**\n * Sets attributes on the Span\n * @param attributes the attributes to add\n */\n setAttributes(attributes: Attributes): this {\n this._span.attributes = attributes as OpenCensusAttributes;\n return this;\n }\n\n /**\n * Adds an event to the Span\n * @param name The name of the event\n * @param attributes The associated attributes to add for this event\n */\n addEvent(_name: string, _attributes?: Attributes): this {\n throw new Error(\"Method not implemented.\");\n }\n\n /**\n * Sets a status on the span. Overrides the default of CanonicalCode.OK.\n * @param status The status to set.\n */\n setStatus(status: Status): this {\n this._span.setStatus(status.code, status.message);\n return this;\n }\n\n /**\n * Updates the name of the Span\n * @param name the new Span name\n */\n updateName(name: string): this {\n this._span.name = name;\n return this;\n }\n\n /**\n * Returns whether this span will be recorded\n */\n isRecording(): boolean {\n // NoRecordSpans have an empty traceId\n return !!this._span.traceId;\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
- // Copyright (c) Microsoft Corporation. All rights reserved.
2
- // Licensed under the MIT License.
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
3
  /**
4
4
  * @ignore
5
5
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"openCensusTraceStateWrapper.js","sourceRoot":"","sources":["../../../../src/tracers/opencensus/openCensusTraceStateWrapper.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,kCAAkC;AAIlC;;;GAGG;AACH;IAGE,qCAAY,KAAc;QACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,yCAAG,GAAH,UAAI,IAAY;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,yCAAG,GAAH,UAAI,IAAY,EAAE,MAAc;QAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,2CAAK,GAAL,UAAM,IAAY;QAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,+CAAS,GAAT;QACE,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IAC3B,CAAC;IACH,kCAAC;AAAD,CAAC,AAtBD,IAsBC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { TraceState } from \"@opentelemetry/api\";\n\n/**\n * @ignore\n * @internal\n */\nexport class OpenCensusTraceStateWrapper implements TraceState {\n private readonly _state?: string;\n\n constructor(state?: string) {\n this._state = state;\n }\n\n get(_key: string): string | undefined {\n throw new Error(\"Method not implemented.\");\n }\n\n set(_key: string, _value: string): void {\n throw new Error(\"Method not implemented.\");\n }\n\n unset(_key: string): void {\n throw new Error(\"Method not implemented\");\n }\n\n serialize(): string {\n return this._state || \"\";\n }\n}\n"]}
1
+ {"version":3,"file":"openCensusTraceStateWrapper.js","sourceRoot":"","sources":["../../../../src/tracers/opencensus/openCensusTraceStateWrapper.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC;;;GAGG;AACH;IAGE,qCAAY,KAAc;QACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,yCAAG,GAAH,UAAI,IAAY;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,yCAAG,GAAH,UAAI,IAAY,EAAE,MAAc;QAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,2CAAK,GAAL,UAAM,IAAY;QAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,+CAAS,GAAT;QACE,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IAC3B,CAAC;IACH,kCAAC;AAAD,CAAC,AAtBD,IAsBC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { TraceState } from \"@opentelemetry/api\";\n\n/**\n * @ignore\n * @internal\n */\nexport class OpenCensusTraceStateWrapper implements TraceState {\n private readonly _state?: string;\n\n constructor(state?: string) {\n this._state = state;\n }\n\n get(_key: string): string | undefined {\n throw new Error(\"Method not implemented.\");\n }\n\n set(_key: string, _value: string): void {\n throw new Error(\"Method not implemented.\");\n }\n\n unset(_key: string): void {\n throw new Error(\"Method not implemented\");\n }\n\n serialize(): string {\n return this._state || \"\";\n }\n}\n"]}
@@ -1,3 +1,5 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
1
3
  import { OpenCensusSpanWrapper } from "./openCensusSpanWrapper";
2
4
  /**
3
5
  * An implementation of OpenTelemetry Tracer that wraps an OpenCensus Tracer.
@@ -1 +1 @@
1
- {"version":3,"file":"openCensusTracerWrapper.js","sourceRoot":"","sources":["../../../../src/tracers/opencensus/openCensusTracerWrapper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE;;GAEG;AACH;IAUE;;;OAGG;IACH,iCAAmB,MAAwB;QACzC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAbD;;OAEG;IACI,kDAAgB,GAAvB;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAUD;;;;OAIG;IACH,2CAAS,GAAT,UAAU,IAAY,EAAE,OAAqB;QAC3C,OAAO,IAAI,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,gDAAc,GAAd;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,0CAAQ,GAAR,UAAoD,KAAW,EAAE,GAAM;QACrE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,sCAAI,GAAJ,UAAQ,OAAU,EAAE,KAAY;QAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACH,8BAAC;AAAD,CAAC,AAnDD,IAmDC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { Tracer, Span, SpanOptions } from \"@opentelemetry/api\";\nimport { OpenCensusSpanWrapper } from \"./openCensusSpanWrapper\";\nimport { TracerBase as OpenCensusTracer } from \"@opencensus/web-types\";\n\n/**\n * An implementation of OpenTelemetry Tracer that wraps an OpenCensus Tracer.\n */\nexport class OpenCensusTracerWrapper implements Tracer {\n private _tracer: OpenCensusTracer;\n\n /**\n * The wrapped OpenCensus Tracer\n */\n public getWrappedTracer() {\n return this._tracer;\n }\n\n /**\n * Create a new wrapper around a given OpenCensus Tracer.\n * @param tracer The OpenCensus Tracer to wrap.\n */\n public constructor(tracer: OpenCensusTracer) {\n this._tracer = tracer;\n }\n\n /**\n * Starts a new Span.\n * @param name The name of the span.\n * @param options The SpanOptions used during Span creation.\n */\n startSpan(name: string, options?: SpanOptions): Span {\n return new OpenCensusSpanWrapper(this, name, options);\n }\n\n /**\n * Returns the current Span from the current context, if available.\n */\n getCurrentSpan(): Span | undefined {\n return undefined;\n }\n\n /**\n * Executes the given function within the context provided by a Span.\n * @param _span The span that provides the context.\n * @param _fn The function to be executed.\n */\n withSpan<T extends (...args: unknown[]) => unknown>(_span: Span, _fn: T): ReturnType<T> {\n throw new Error(\"Method not implemented.\");\n }\n\n /**\n * Bind a Span as the target's scope\n * @param target An object to bind the scope.\n * @param _span A specific Span to use. Otherwise, use the current one.\n */\n bind<T>(_target: T, _span?: Span): T {\n throw new Error(\"Method not implemented.\");\n }\n}\n"]}
1
+ {"version":3,"file":"openCensusTracerWrapper.js","sourceRoot":"","sources":["../../../../src/tracers/opencensus/openCensusTracerWrapper.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE;;GAEG;AACH;IAUE;;;OAGG;IACH,iCAAmB,MAAwB;QACzC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAbD;;OAEG;IACI,kDAAgB,GAAvB;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAUD;;;;OAIG;IACH,2CAAS,GAAT,UAAU,IAAY,EAAE,OAAqB;QAC3C,OAAO,IAAI,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,gDAAc,GAAd;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,0CAAQ,GAAR,UAAoD,KAAW,EAAE,GAAM;QACrE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,sCAAI,GAAJ,UAAQ,OAAU,EAAE,KAAY;QAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACH,8BAAC;AAAD,CAAC,AAnDD,IAmDC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Tracer, Span, SpanOptions } from \"@opentelemetry/api\";\nimport { OpenCensusSpanWrapper } from \"./openCensusSpanWrapper\";\nimport { TracerBase as OpenCensusTracer } from \"@opencensus/web-types\";\n\n/**\n * An implementation of OpenTelemetry Tracer that wraps an OpenCensus Tracer.\n */\nexport class OpenCensusTracerWrapper implements Tracer {\n private _tracer: OpenCensusTracer;\n\n /**\n * The wrapped OpenCensus Tracer\n */\n public getWrappedTracer(): OpenCensusTracer {\n return this._tracer;\n }\n\n /**\n * Create a new wrapper around a given OpenCensus Tracer.\n * @param tracer The OpenCensus Tracer to wrap.\n */\n public constructor(tracer: OpenCensusTracer) {\n this._tracer = tracer;\n }\n\n /**\n * Starts a new Span.\n * @param name The name of the span.\n * @param options The SpanOptions used during Span creation.\n */\n startSpan(name: string, options?: SpanOptions): Span {\n return new OpenCensusSpanWrapper(this, name, options);\n }\n\n /**\n * Returns the current Span from the current context, if available.\n */\n getCurrentSpan(): Span | undefined {\n return undefined;\n }\n\n /**\n * Executes the given function within the context provided by a Span.\n * @param _span The span that provides the context.\n * @param _fn The function to be executed.\n */\n withSpan<T extends (...args: unknown[]) => unknown>(_span: Span, _fn: T): ReturnType<T> {\n throw new Error(\"Method not implemented.\");\n }\n\n /**\n * Bind a Span as the target's scope\n * @param target An object to bind the scope.\n * @param _span A specific Span to use. Otherwise, use the current one.\n */\n bind<T>(_target: T, _span?: Span): T {\n throw new Error(\"Method not implemented.\");\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
1
3
  import { __extends } from "tslib";
2
- // Copyright (c) Microsoft Corporation. All rights reserved.
3
- // Licensed under the MIT License.
4
4
  import { CanonicalCode } from "@opentelemetry/api";
5
5
  import { NoOpSpan } from "../noop/noOpSpan";
6
6
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"testSpan.js","sourceRoot":"","sources":["../../../../src/tracers/test/testSpan.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,kCAAkC;AAClC,OAAO,EAML,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C;;GAEG;AACH;IAA8B,4BAAQ;IAuCpC;;;;;;;;OAQG;IACH,kBACE,YAAwB,EACxB,IAAY,EACZ,OAAoB,EACpB,IAAc,EACd,YAAqB,EACrB,SAAiC;QAAjC,0BAAA,EAAA,YAAuB,IAAI,CAAC,GAAG,EAAE;QANnC,YAQE,iBAAO,SAYR;QAXC,KAAI,CAAC,OAAO,GAAG,YAAY,CAAC;QAC5B,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,KAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,KAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,aAAa,CAAC,EAAE;SACvB,CAAC;QACF,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,KAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,KAAI,CAAC,UAAU,GAAG,EAAE,CAAC;;IACvB,CAAC;IAED;;OAEG;IACH,yBAAM,GAAN;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,0BAAO,GAAP;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,sBAAG,GAAH,UAAI,QAAiB;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,4BAAS,GAAT,UAAU,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,8BAAW,GAAX;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,+BAAY,GAAZ,UAAa,GAAW,EAAE,KAAc;QACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,gCAAa,GAAb,UAAc,UAAsB;QAClC,KAAkB,UAAuB,EAAvB,KAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAvB,cAAuB,EAAvB,IAAuB,EAAE;YAAtC,IAAM,GAAG,SAAA;YACZ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;SACxC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACH,eAAC;AAAD,CAAC,AAjID,CAA8B,QAAQ,GAiIrC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport {\n TimeInput,\n Tracer,\n SpanKind,\n Status,\n SpanContext,\n CanonicalCode,\n Attributes\n} from \"@opentelemetry/api\";\nimport { NoOpSpan } from \"../noop/noOpSpan\";\nimport { TestTracer } from \"./testTracer\";\n\n/**\n * A mock span useful for testing.\n */\nexport class TestSpan extends NoOpSpan {\n /**\n * The Span's current name\n */\n name: string;\n\n /**\n * The Span's current status\n */\n status: Status;\n\n /**\n * The Span's kind\n */\n kind: SpanKind;\n\n /**\n * True if end() has been called on the Span\n */\n endCalled: boolean;\n\n /**\n * The start time of the Span\n */\n readonly startTime: TimeInput;\n\n /**\n * The id of the parent Span, if any.\n */\n readonly parentSpanId?: string;\n\n /**\n * Known attributes, if any.\n */\n readonly attributes: Attributes;\n\n private _context: SpanContext;\n private readonly _tracer: Tracer;\n\n /**\n * Starts a new Span.\n * @param parentTracer The tracer that created this Span\n * @param name The name of the span.\n * @param context The SpanContext this span belongs to\n * @param kind The SpanKind of this Span\n * @param parentSpanId The identifier of the parent Span\n * @param startTime The startTime of the event (defaults to now)\n */\n constructor(\n parentTracer: TestTracer,\n name: string,\n context: SpanContext,\n kind: SpanKind,\n parentSpanId?: string,\n startTime: TimeInput = Date.now()\n ) {\n super();\n this._tracer = parentTracer;\n this.name = name;\n this.kind = kind;\n this.startTime = startTime;\n this.parentSpanId = parentSpanId;\n this.status = {\n code: CanonicalCode.OK\n };\n this.endCalled = false;\n this._context = context;\n this.attributes = {};\n }\n\n /**\n * Returns the Tracer that created this Span\n */\n tracer(): Tracer {\n return this._tracer;\n }\n\n /**\n * Returns the SpanContext associated with this Span.\n */\n context(): SpanContext {\n return this._context;\n }\n\n /**\n * Marks the end of Span execution.\n * @param _endTime The time to use as the Span's end time. Defaults to\n * the current time.\n */\n end(_endTime?: number): void {\n this.endCalled = true;\n }\n\n /**\n * Sets a status on the span. Overrides the default of CanonicalCode.OK.\n * @param status The status to set.\n */\n setStatus(status: Status): this {\n this.status = status;\n return this;\n }\n\n /**\n * Returns whether this span will be recorded\n */\n isRecording(): boolean {\n return true;\n }\n\n /**\n * Sets an attribute on the Span\n * @param key the attribute key\n * @param value the attribute value\n */\n setAttribute(key: string, value: unknown): this {\n this.attributes[key] = value;\n return this;\n }\n\n /**\n * Sets attributes on the Span\n * @param attributes the attributes to add\n */\n setAttributes(attributes: Attributes): this {\n for (const key of Object.keys(attributes)) {\n this.attributes[key] = attributes[key];\n }\n return this;\n }\n}\n"]}
1
+ {"version":3,"file":"testSpan.js","sourceRoot":"","sources":["../../../../src/tracers/test/testSpan.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;AAElC,OAAO,EAML,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;GAEG;AACH;IAA8B,4BAAQ;IAuCpC;;;;;;;;OAQG;IACH,kBACE,YAAoB,EACpB,IAAY,EACZ,OAAoB,EACpB,IAAc,EACd,YAAqB,EACrB,SAAiC;QAAjC,0BAAA,EAAA,YAAuB,IAAI,CAAC,GAAG,EAAE;QANnC,YAQE,iBAAO,SAYR;QAXC,KAAI,CAAC,OAAO,GAAG,YAAY,CAAC;QAC5B,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,KAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,KAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,aAAa,CAAC,EAAE;SACvB,CAAC;QACF,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,KAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,KAAI,CAAC,UAAU,GAAG,EAAE,CAAC;;IACvB,CAAC;IAED;;OAEG;IACH,yBAAM,GAAN;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,0BAAO,GAAP;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,sBAAG,GAAH,UAAI,QAAiB;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,4BAAS,GAAT,UAAU,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,8BAAW,GAAX;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,+BAAY,GAAZ,UAAa,GAAW,EAAE,KAAc;QACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,gCAAa,GAAb,UAAc,UAAsB;QAClC,KAAkB,UAAuB,EAAvB,KAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAvB,cAAuB,EAAvB,IAAuB,EAAE;YAAtC,IAAM,GAAG,SAAA;YACZ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;SACxC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACH,eAAC;AAAD,CAAC,AAjID,CAA8B,QAAQ,GAiIrC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n TimeInput,\n Tracer,\n SpanKind,\n Status,\n SpanContext,\n CanonicalCode,\n Attributes\n} from \"@opentelemetry/api\";\nimport { NoOpSpan } from \"../noop/noOpSpan\";\n\n/**\n * A mock span useful for testing.\n */\nexport class TestSpan extends NoOpSpan {\n /**\n * The Span's current name\n */\n name: string;\n\n /**\n * The Span's current status\n */\n status: Status;\n\n /**\n * The Span's kind\n */\n kind: SpanKind;\n\n /**\n * True if end() has been called on the Span\n */\n endCalled: boolean;\n\n /**\n * The start time of the Span\n */\n readonly startTime: TimeInput;\n\n /**\n * The id of the parent Span, if any.\n */\n readonly parentSpanId?: string;\n\n /**\n * Known attributes, if any.\n */\n readonly attributes: Attributes;\n\n private _context: SpanContext;\n private readonly _tracer: Tracer;\n\n /**\n * Starts a new Span.\n * @param parentTracer The tracer that created this Span\n * @param name The name of the span.\n * @param context The SpanContext this span belongs to\n * @param kind The SpanKind of this Span\n * @param parentSpanId The identifier of the parent Span\n * @param startTime The startTime of the event (defaults to now)\n */\n constructor(\n parentTracer: Tracer,\n name: string,\n context: SpanContext,\n kind: SpanKind,\n parentSpanId?: string,\n startTime: TimeInput = Date.now()\n ) {\n super();\n this._tracer = parentTracer;\n this.name = name;\n this.kind = kind;\n this.startTime = startTime;\n this.parentSpanId = parentSpanId;\n this.status = {\n code: CanonicalCode.OK\n };\n this.endCalled = false;\n this._context = context;\n this.attributes = {};\n }\n\n /**\n * Returns the Tracer that created this Span\n */\n tracer(): Tracer {\n return this._tracer;\n }\n\n /**\n * Returns the SpanContext associated with this Span.\n */\n context(): SpanContext {\n return this._context;\n }\n\n /**\n * Marks the end of Span execution.\n * @param _endTime The time to use as the Span's end time. Defaults to\n * the current time.\n */\n end(_endTime?: number): void {\n this.endCalled = true;\n }\n\n /**\n * Sets a status on the span. Overrides the default of CanonicalCode.OK.\n * @param status The status to set.\n */\n setStatus(status: Status): this {\n this.status = status;\n return this;\n }\n\n /**\n * Returns whether this span will be recorded\n */\n isRecording(): boolean {\n return true;\n }\n\n /**\n * Sets an attribute on the Span\n * @param key the attribute key\n * @param value the attribute value\n */\n setAttribute(key: string, value: unknown): this {\n this.attributes[key] = value;\n return this;\n }\n\n /**\n * Sets attributes on the Span\n * @param attributes the attributes to add\n */\n setAttributes(attributes: Attributes): this {\n for (const key of Object.keys(attributes)) {\n this.attributes[key] = attributes[key];\n }\n return this;\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
1
3
  import { __extends } from "tslib";
2
- // Copyright (c) Microsoft Corporation. All rights reserved.
3
- // Licensed under the MIT License.
4
4
  import { TestSpan } from "./testSpan";
5
5
  import { NoOpTracer } from "../noop/noOpTracer";
6
6
  import { SpanKind, TraceFlags } from "@opentelemetry/api";
@@ -1 +1 @@
1
- {"version":3,"file":"testTracer.js","sourceRoot":"","sources":["../../../../src/tracers/test/testTracer.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { TestSpan } from \"./testSpan\";\nimport { NoOpTracer } from \"../noop/noOpTracer\";\nimport { SpanContext, SpanKind, SpanOptions, TraceFlags } from \"@opentelemetry/api\";\n\n/**\n * Simple representation of a Span that only has name and child relationships.\n * Children should be arranged in the order they were created.\n */\nexport interface SpanGraphNode {\n /**\n * The Span name\n */\n name: string;\n /**\n * All child Spans of this Span\n */\n children: SpanGraphNode[];\n}\n\n/**\n * Contains all the spans for a particular TraceID\n * starting at unparented roots\n */\nexport interface SpanGraph {\n /**\n * All Spans without a parentSpanId\n */\n roots: SpanGraphNode[];\n}\n\n/**\n * A mock tracer useful for testing\n */\nexport class TestTracer extends NoOpTracer {\n private traceIdCounter = 0;\n private getNextTraceId(): string {\n this.traceIdCounter++;\n return String(this.traceIdCounter);\n }\n\n private spanIdCounter = 0;\n private getNextSpanId(): string {\n this.spanIdCounter++;\n return String(this.spanIdCounter);\n }\n\n private rootSpans: TestSpan[] = [];\n private knownSpans: TestSpan[] = [];\n\n /**\n * Returns all Spans that were created without a parent\n */\n getRootSpans(): TestSpan[] {\n return this.rootSpans;\n }\n\n /**\n * Returns all Spans this Tracer knows about\n */\n getKnownSpans(): TestSpan[] {\n return this.knownSpans;\n }\n\n /**\n * Returns all Spans where end() has not been called\n */\n getActiveSpans(): TestSpan[] {\n return this.knownSpans.filter((span) => {\n return !span.endCalled;\n });\n }\n\n /**\n * Return all Spans for a particular trace, grouped by their\n * parent Span in a tree-like structure\n * @param traceId The traceId to return the graph for\n */\n getSpanGraph(traceId: string): SpanGraph {\n const traceSpans = this.knownSpans.filter((span) => {\n return span.context().traceId === traceId;\n });\n\n const roots: SpanGraphNode[] = [];\n const nodeMap: Map<string, SpanGraphNode> = new Map<string, SpanGraphNode>();\n\n for (const span of traceSpans) {\n const spanId = span.context().spanId;\n const node: SpanGraphNode = {\n name: span.name,\n children: []\n };\n nodeMap.set(spanId, node);\n if (span.parentSpanId) {\n const parent = nodeMap.get(span.parentSpanId);\n if (!parent) {\n throw new Error(\n `Span with name ${node.name} has an unknown parentSpan with id ${span.parentSpanId}`\n );\n }\n parent.children.push(node);\n } else {\n roots.push(node);\n }\n }\n\n return {\n roots\n };\n }\n\n /**\n * Starts a new Span.\n * @param name The name of the span.\n * @param options The SpanOptions used during Span creation.\n */\n startSpan(name: string, options: SpanOptions = {}): TestSpan {\n const parentContext = this._getParentContext(options);\n\n let traceId: string;\n let isRootSpan = false;\n\n if (parentContext && parentContext.traceId) {\n traceId = parentContext.traceId;\n } else {\n traceId = this.getNextTraceId();\n isRootSpan = true;\n }\n\n const context: SpanContext = {\n traceId,\n spanId: this.getNextSpanId(),\n traceFlags: TraceFlags.NONE\n };\n const span = new TestSpan(\n this,\n name,\n context,\n options.kind || SpanKind.INTERNAL,\n parentContext ? parentContext.spanId : undefined,\n options.startTime\n );\n this.knownSpans.push(span);\n if (isRootSpan) {\n this.rootSpans.push(span);\n }\n return span;\n }\n\n private _getParentContext(options: SpanOptions): SpanContext | undefined {\n const parent = options.parent;\n let result: SpanContext | undefined;\n if (parent) {\n if (\"traceId\" in parent) {\n result = parent;\n } else {\n result = parent.context();\n }\n }\n return result;\n }\n}\n"]}
1
+ {"version":3,"file":"testTracer.js","sourceRoot":"","sources":["../../../../src/tracers/test/testTracer.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAe,QAAQ,EAAe,UAAU,EAAE,MAAM,oBAAoB,CAAC;AA4BpF;;GAEG;AACH;IAAgC,8BAAU;IAA1C;QAAA,qEA+HC;QA9HS,oBAAc,GAAG,CAAC,CAAC;QAMnB,mBAAa,GAAG,CAAC,CAAC;QAMlB,eAAS,GAAe,EAAE,CAAC;QAC3B,gBAAU,GAAe,EAAE,CAAC;;IAiHtC,CAAC;IA7HS,mCAAc,GAAtB;QACE,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrC,CAAC;IAGO,kCAAa,GAArB;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;IAKD;;OAEG;IACH,iCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,kCAAa,GAAb;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,mCAAc,GAAd;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAC,IAAI;YACjC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,iCAAY,GAAZ,UAAa,OAAe;QAC1B,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAC,IAAI;YAC7C,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAM,KAAK,GAAoB,EAAE,CAAC;QAClC,IAAM,OAAO,GAA+B,IAAI,GAAG,EAAyB,CAAC;QAE7E,KAAmB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,EAAE;YAA1B,IAAM,IAAI,mBAAA;YACb,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;YACrC,IAAM,IAAI,GAAkB;gBAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,EAAE;aACb,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC1B,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC9C,IAAI,CAAC,MAAM,EAAE;oBACX,MAAM,IAAI,KAAK,CACb,oBAAkB,IAAI,CAAC,IAAI,2CAAsC,IAAI,CAAC,YAAc,CACrF,CAAC;iBACH;gBACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC5B;iBAAM;gBACL,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClB;SACF;QAED,OAAO;YACL,KAAK,OAAA;SACN,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,8BAAS,GAAT,UAAU,IAAY,EAAE,OAAyB;QAAzB,wBAAA,EAAA,YAAyB;QAC/C,IAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEtD,IAAI,OAAe,CAAC;QACpB,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE;YAC1C,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;SACjC;aAAM;YACL,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAChC,UAAU,GAAG,IAAI,CAAC;SACnB;QAED,IAAM,OAAO,GAAgB;YAC3B,OAAO,SAAA;YACP,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE;YAC5B,UAAU,EAAE,UAAU,CAAC,IAAI;SAC5B,CAAC;QACF,IAAM,IAAI,GAAG,IAAI,QAAQ,CACvB,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,EACjC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAChD,OAAO,CAAC,SAAS,CAClB,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3B;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,sCAAiB,GAAzB,UAA0B,OAAoB;QAC5C,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,MAA+B,CAAC;QACpC,IAAI,MAAM,EAAE;YACV,IAAI,SAAS,IAAI,MAAM,EAAE;gBACvB,MAAM,GAAG,MAAM,CAAC;aACjB;iBAAM;gBACL,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;aAC3B;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACH,iBAAC;AAAD,CAAC,AA/HD,CAAgC,UAAU,GA+HzC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { TestSpan } from \"./testSpan\";\nimport { NoOpTracer } from \"../noop/noOpTracer\";\nimport { SpanContext, SpanKind, SpanOptions, TraceFlags } from \"@opentelemetry/api\";\n\n/**\n * Simple representation of a Span that only has name and child relationships.\n * Children should be arranged in the order they were created.\n */\nexport interface SpanGraphNode {\n /**\n * The Span name\n */\n name: string;\n /**\n * All child Spans of this Span\n */\n children: SpanGraphNode[];\n}\n\n/**\n * Contains all the spans for a particular TraceID\n * starting at unparented roots\n */\nexport interface SpanGraph {\n /**\n * All Spans without a parentSpanId\n */\n roots: SpanGraphNode[];\n}\n\n/**\n * A mock tracer useful for testing\n */\nexport class TestTracer extends NoOpTracer {\n private traceIdCounter = 0;\n private getNextTraceId(): string {\n this.traceIdCounter++;\n return String(this.traceIdCounter);\n }\n\n private spanIdCounter = 0;\n private getNextSpanId(): string {\n this.spanIdCounter++;\n return String(this.spanIdCounter);\n }\n\n private rootSpans: TestSpan[] = [];\n private knownSpans: TestSpan[] = [];\n\n /**\n * Returns all Spans that were created without a parent\n */\n getRootSpans(): TestSpan[] {\n return this.rootSpans;\n }\n\n /**\n * Returns all Spans this Tracer knows about\n */\n getKnownSpans(): TestSpan[] {\n return this.knownSpans;\n }\n\n /**\n * Returns all Spans where end() has not been called\n */\n getActiveSpans(): TestSpan[] {\n return this.knownSpans.filter((span) => {\n return !span.endCalled;\n });\n }\n\n /**\n * Return all Spans for a particular trace, grouped by their\n * parent Span in a tree-like structure\n * @param traceId The traceId to return the graph for\n */\n getSpanGraph(traceId: string): SpanGraph {\n const traceSpans = this.knownSpans.filter((span) => {\n return span.context().traceId === traceId;\n });\n\n const roots: SpanGraphNode[] = [];\n const nodeMap: Map<string, SpanGraphNode> = new Map<string, SpanGraphNode>();\n\n for (const span of traceSpans) {\n const spanId = span.context().spanId;\n const node: SpanGraphNode = {\n name: span.name,\n children: []\n };\n nodeMap.set(spanId, node);\n if (span.parentSpanId) {\n const parent = nodeMap.get(span.parentSpanId);\n if (!parent) {\n throw new Error(\n `Span with name ${node.name} has an unknown parentSpan with id ${span.parentSpanId}`\n );\n }\n parent.children.push(node);\n } else {\n roots.push(node);\n }\n }\n\n return {\n roots\n };\n }\n\n /**\n * Starts a new Span.\n * @param name The name of the span.\n * @param options The SpanOptions used during Span creation.\n */\n startSpan(name: string, options: SpanOptions = {}): TestSpan {\n const parentContext = this._getParentContext(options);\n\n let traceId: string;\n let isRootSpan = false;\n\n if (parentContext && parentContext.traceId) {\n traceId = parentContext.traceId;\n } else {\n traceId = this.getNextTraceId();\n isRootSpan = true;\n }\n\n const context: SpanContext = {\n traceId,\n spanId: this.getNextSpanId(),\n traceFlags: TraceFlags.NONE\n };\n const span = new TestSpan(\n this,\n name,\n context,\n options.kind || SpanKind.INTERNAL,\n parentContext ? parentContext.spanId : undefined,\n options.startTime\n );\n this.knownSpans.push(span);\n if (isRootSpan) {\n this.rootSpans.push(span);\n }\n return span;\n }\n\n private _getParentContext(options: SpanOptions): SpanContext | undefined {\n const parent = options.parent;\n let result: SpanContext | undefined;\n if (parent) {\n if (\"traceId\" in parent) {\n result = parent;\n } else {\n result = parent.context();\n }\n }\n return result;\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
- // Copyright (c) Microsoft Corporation. All rights reserved.
2
- // Licensed under the MIT License.
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
3
  import { getGlobalObject } from "./global";
4
4
  // V1 = OpenTelemetry 0.1
5
5
  // V2 = OpenTelemetry 0.2
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/utils/cache.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,kCAAkC;AAGlC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,yBAAyB;AACzB,yBAAyB;AACzB,2BAA2B;AAC3B,IAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,wDAAwD;AACxD,iDAAiD;AACjD,IAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;AAO5E,IAAI,KAAkB,CAAC;AAEvB,SAAS,eAAe;IACtB,IAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,IAAM,aAAa,GAAgB,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACnE,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,aAAa,EAAE;QACjB,IAAI,aAAa,CAAC,OAAO,KAAK,qBAAqB,EAAE;YACnD,KAAK,GAAG,aAAa,CAAC;SACvB;aAAM;YACL,cAAc,GAAG,KAAK,CAAC;YACvB,IAAI,aAAa,CAAC,MAAM,EAAE;gBACxB,MAAM,IAAI,KAAK,CACb,mGACkB,qBAAqB,sBAAiB,aAAa,CAAC,OAAO,MAAG,CACjF,CAAC;aACH;SACF;KACF;IAED,IAAI,CAAC,KAAK,EAAE;QACV,KAAK,GAAG;YACN,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,qBAAqB;SAC/B,CAAC;KACH;IACD,IAAI,cAAc,EAAE;QAClB,SAAS,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC;KACzC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC,KAAK,EAAE;QACV,eAAe,EAAE,CAAC;KACnB;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { Tracer } from \"@opentelemetry/api\";\nimport { getGlobalObject } from \"./global\";\n\n// V1 = OpenTelemetry 0.1\n// V2 = OpenTelemetry 0.2\n// V3 = OpenTelemetry 0.6.1\nconst GLOBAL_TRACER_VERSION = 3;\n// preview5 shipped with @azure/core-tracing.tracerCache\n// and didn't have smart detection for collisions\nconst GLOBAL_TRACER_SYMBOL = Symbol.for(\"@azure/core-tracing.tracerCache2\");\n\nexport interface TracerCache {\n version: number;\n tracer?: Tracer;\n}\n\nlet cache: TracerCache;\n\nfunction loadTracerCache(): void {\n const globalObj = getGlobalObject();\n const existingCache: TracerCache = globalObj[GLOBAL_TRACER_SYMBOL];\n let setGlobalCache = true;\n if (existingCache) {\n if (existingCache.version === GLOBAL_TRACER_VERSION) {\n cache = existingCache;\n } else {\n setGlobalCache = false;\n if (existingCache.tracer) {\n throw new Error(\n `Two incompatible versions of @azure/core-tracing have been loaded.\n This library is ${GLOBAL_TRACER_VERSION}, existing is ${existingCache.version}.`\n );\n }\n }\n }\n\n if (!cache) {\n cache = {\n tracer: undefined,\n version: GLOBAL_TRACER_VERSION\n };\n }\n if (setGlobalCache) {\n globalObj[GLOBAL_TRACER_SYMBOL] = cache;\n }\n}\n\nexport function getCache(): TracerCache {\n if (!cache) {\n loadTracerCache();\n }\n return cache;\n}\n"]}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/utils/cache.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,yBAAyB;AACzB,yBAAyB;AACzB,2BAA2B;AAC3B,IAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,wDAAwD;AACxD,iDAAiD;AACjD,IAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;AAO5E,IAAI,KAAkB,CAAC;AAEvB,SAAS,eAAe;IACtB,IAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,IAAM,aAAa,GAAgB,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACnE,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,aAAa,EAAE;QACjB,IAAI,aAAa,CAAC,OAAO,KAAK,qBAAqB,EAAE;YACnD,KAAK,GAAG,aAAa,CAAC;SACvB;aAAM;YACL,cAAc,GAAG,KAAK,CAAC;YACvB,IAAI,aAAa,CAAC,MAAM,EAAE;gBACxB,MAAM,IAAI,KAAK,CACb,mGACkB,qBAAqB,sBAAiB,aAAa,CAAC,OAAO,MAAG,CACjF,CAAC;aACH;SACF;KACF;IAED,IAAI,CAAC,KAAK,EAAE;QACV,KAAK,GAAG;YACN,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,qBAAqB;SAC/B,CAAC;KACH;IACD,IAAI,cAAc,EAAE;QAClB,SAAS,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC;KACzC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC,KAAK,EAAE;QACV,eAAe,EAAE,CAAC;KACnB;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Tracer } from \"@opentelemetry/api\";\nimport { getGlobalObject } from \"./global\";\n\n// V1 = OpenTelemetry 0.1\n// V2 = OpenTelemetry 0.2\n// V3 = OpenTelemetry 0.6.1\nconst GLOBAL_TRACER_VERSION = 3;\n// preview5 shipped with @azure/core-tracing.tracerCache\n// and didn't have smart detection for collisions\nconst GLOBAL_TRACER_SYMBOL = Symbol.for(\"@azure/core-tracing.tracerCache2\");\n\nexport interface TracerCache {\n version: number;\n tracer?: Tracer;\n}\n\nlet cache: TracerCache;\n\nfunction loadTracerCache(): void {\n const globalObj = getGlobalObject();\n const existingCache: TracerCache = globalObj[GLOBAL_TRACER_SYMBOL];\n let setGlobalCache = true;\n if (existingCache) {\n if (existingCache.version === GLOBAL_TRACER_VERSION) {\n cache = existingCache;\n } else {\n setGlobalCache = false;\n if (existingCache.tracer) {\n throw new Error(\n `Two incompatible versions of @azure/core-tracing have been loaded.\n This library is ${GLOBAL_TRACER_VERSION}, existing is ${existingCache.version}.`\n );\n }\n }\n }\n\n if (!cache) {\n cache = {\n tracer: undefined,\n version: GLOBAL_TRACER_VERSION\n };\n }\n if (setGlobalCache) {\n globalObj[GLOBAL_TRACER_SYMBOL] = cache;\n }\n}\n\nexport function getCache(): TracerCache {\n if (!cache) {\n loadTracerCache();\n }\n return cache;\n}\n"]}
@@ -1,5 +1,5 @@
1
- // Copyright (c) Microsoft Corporation. All rights reserved.
2
- // Licensed under the MIT License.
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
3
  export function getGlobalObject() {
4
4
  return self;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"global.browser.js","sourceRoot":"","sources":["../../../src/utils/global.browser.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,kCAAkC;AAElC,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nexport function getGlobalObject(): any {\n return self;\n}\n"]}
1
+ {"version":3,"file":"global.browser.js","sourceRoot":"","sources":["../../../src/utils/global.browser.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport function getGlobalObject(): any {\n return self;\n}\n"]}
@@ -1,5 +1,5 @@
1
- // Copyright (c) Microsoft Corporation. All rights reserved.
2
- // Licensed under the MIT License.
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
3
  export function getGlobalObject() {
4
4
  return global;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"global.js","sourceRoot":"","sources":["../../../src/utils/global.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,kCAAkC;AAElC,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nexport function getGlobalObject(): any {\n return global;\n}\n"]}
1
+ {"version":3,"file":"global.js","sourceRoot":"","sources":["../../../src/utils/global.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport function getGlobalObject(): any {\n return global;\n}\n"]}
@@ -1,5 +1,5 @@
1
- // Copyright (c) Microsoft Corporation. All rights reserved.
2
- // Licensed under the MIT License.
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
3
  var VERSION = "00";
4
4
  /**
5
5
  * Generates a `SpanContext` given a `traceparent` header value.
@@ -1 +1 @@
1
- {"version":3,"file":"traceParentHeader.js","sourceRoot":"","sources":["../../../src/utils/traceParentHeader.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,kCAAkC;AAIlC,IAAM,OAAO,GAAG,IAAI,CAAC;AAErB;;;;GAIG;AACH,MAAM,UAAU,uCAAuC,CACrD,iBAAyB;IAEzB,IAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO;KACR;IAEM,IAAA,kBAAO,EAAE,kBAAO,EAAE,iBAAM,EAAE,uBAAY,CAAU;IAEvD,IAAI,OAAO,KAAK,OAAO,EAAE;QACvB,OAAO;KACR;IAED,IAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAE9C,IAAM,WAAW,GAAgB;QAC/B,MAAM,QAAA;QACN,OAAO,SAAA;QACP,UAAU,YAAA;KACX,CAAC;IAEF,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAwB;IAC3D,IAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;QACxB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC/B;IACD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;QACvB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC9B;IAED,IAAI,aAAa,CAAC,MAAM,EAAE;QACxB,OAAO;KACR;IAED,IAAM,KAAK,GAAG,WAAW,CAAC,UAAU,gBAAmB,CAAC;IACxD,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpC,IAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAI,QAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAErE,uEAAuE;IACvE,OAAU,OAAO,SAAI,WAAW,CAAC,OAAO,SAAI,WAAW,CAAC,MAAM,SAAI,UAAY,CAAC;AACjF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { SpanContext, TraceFlags } from \"../interfaces\";\n\nconst VERSION = \"00\";\n\n/**\n * Generates a `SpanContext` given a `traceparent` header value.\n * @param traceParent Serialized span context data as a `traceparent` header value.\n * @returns The `SpanContext` generated from the `traceparent` value.\n */\nexport function extractSpanContextFromTraceParentHeader(\n traceParentHeader: string\n): SpanContext | undefined {\n const parts = traceParentHeader.split(\"-\");\n\n if (parts.length !== 4) {\n return;\n }\n\n const [version, traceId, spanId, traceOptions] = parts;\n\n if (version !== VERSION) {\n return;\n }\n\n const traceFlags = parseInt(traceOptions, 16);\n\n const spanContext: SpanContext = {\n spanId,\n traceId,\n traceFlags\n };\n\n return spanContext;\n}\n\n/**\n * Generates a `traceparent` value given a span context.\n * @param spanContext Contains context for a specific span.\n * @returns The `spanContext` represented as a `traceparent` value.\n */\nexport function getTraceParentHeader(spanContext: SpanContext): string | undefined {\n const missingFields: string[] = [];\n if (!spanContext.traceId) {\n missingFields.push(\"traceId\");\n }\n if (!spanContext.spanId) {\n missingFields.push(\"spanId\");\n }\n\n if (missingFields.length) {\n return;\n }\n\n const flags = spanContext.traceFlags || TraceFlags.NONE;\n const hexFlags = flags.toString(16);\n const traceFlags = hexFlags.length === 1 ? `0${hexFlags}` : hexFlags;\n\n // https://www.w3.org/TR/trace-context/#traceparent-header-field-values\n return `${VERSION}-${spanContext.traceId}-${spanContext.spanId}-${traceFlags}`;\n}\n"]}
1
+ {"version":3,"file":"traceParentHeader.js","sourceRoot":"","sources":["../../../src/utils/traceParentHeader.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC,IAAM,OAAO,GAAG,IAAI,CAAC;AAErB;;;;GAIG;AACH,MAAM,UAAU,uCAAuC,CACrD,iBAAyB;IAEzB,IAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO;KACR;IAEM,IAAA,OAAO,GAAmC,KAAK,GAAxC,EAAE,OAAO,GAA0B,KAAK,GAA/B,EAAE,MAAM,GAAkB,KAAK,GAAvB,EAAE,YAAY,GAAI,KAAK,GAAT,CAAU;IAEvD,IAAI,OAAO,KAAK,OAAO,EAAE;QACvB,OAAO;KACR;IAED,IAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAE9C,IAAM,WAAW,GAAgB;QAC/B,MAAM,QAAA;QACN,OAAO,SAAA;QACP,UAAU,YAAA;KACX,CAAC;IAEF,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAwB;IAC3D,IAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;QACxB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC/B;IACD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;QACvB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC9B;IAED,IAAI,aAAa,CAAC,MAAM,EAAE;QACxB,OAAO;KACR;IAED,IAAM,KAAK,GAAG,WAAW,CAAC,UAAU,gBAAmB,CAAC;IACxD,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpC,IAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAI,QAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAErE,uEAAuE;IACvE,OAAU,OAAO,SAAI,WAAW,CAAC,OAAO,SAAI,WAAW,CAAC,MAAM,SAAI,UAAY,CAAC;AACjF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { SpanContext, TraceFlags } from \"../interfaces\";\n\nconst VERSION = \"00\";\n\n/**\n * Generates a `SpanContext` given a `traceparent` header value.\n * @param traceParent Serialized span context data as a `traceparent` header value.\n * @returns The `SpanContext` generated from the `traceparent` value.\n */\nexport function extractSpanContextFromTraceParentHeader(\n traceParentHeader: string\n): SpanContext | undefined {\n const parts = traceParentHeader.split(\"-\");\n\n if (parts.length !== 4) {\n return;\n }\n\n const [version, traceId, spanId, traceOptions] = parts;\n\n if (version !== VERSION) {\n return;\n }\n\n const traceFlags = parseInt(traceOptions, 16);\n\n const spanContext: SpanContext = {\n spanId,\n traceId,\n traceFlags\n };\n\n return spanContext;\n}\n\n/**\n * Generates a `traceparent` value given a span context.\n * @param spanContext Contains context for a specific span.\n * @returns The `spanContext` represented as a `traceparent` value.\n */\nexport function getTraceParentHeader(spanContext: SpanContext): string | undefined {\n const missingFields: string[] = [];\n if (!spanContext.traceId) {\n missingFields.push(\"traceId\");\n }\n if (!spanContext.spanId) {\n missingFields.push(\"spanId\");\n }\n\n if (missingFields.length) {\n return;\n }\n\n const flags = spanContext.traceFlags || TraceFlags.NONE;\n const hexFlags = flags.toString(16);\n const traceFlags = hexFlags.length === 1 ? `0${hexFlags}` : hexFlags;\n\n // https://www.w3.org/TR/trace-context/#traceparent-header-field-values\n return `${VERSION}-${spanContext.traceId}-${spanContext.spanId}-${traceFlags}`;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure/core-tracing",
3
- "version": "1.0.0-preview.8",
3
+ "version": "1.0.0-preview.9",
4
4
  "description": "Provides low-level interfaces and helper methods for tracing in Azure SDK",
5
5
  "sdk-type": "client",
6
6
  "main": "dist/index.js",
@@ -16,16 +16,16 @@
16
16
  "build:samples": "cd samples && tsc -p .",
17
17
  "build:test": "tsc -p . && rollup -c rollup.test.config.js 2>&1",
18
18
  "build": "tsc -p . && rollup -c 2>&1 && api-extractor run --local",
19
- "check-format": "prettier --list-different --config ../../.prettierrc.json \"src/**/*.ts\" \"test/**/*.ts\" \"*.{js,json}\"",
19
+ "check-format": "prettier --list-different --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.ts\" \"test/**/*.ts\" \"*.{js,json}\"",
20
20
  "clean": "rimraf dist dist-esm test-dist types *.tgz *.log",
21
21
  "execute:samples": "echo skipped",
22
22
  "extract-api": "tsc -p . && api-extractor run --local",
23
- "format": "prettier --write --config ../../.prettierrc.json \"src/**/*.ts\" \"test/**/*.ts\" \"*.{js,json}\"",
23
+ "format": "prettier --write --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.ts\" \"test/**/*.ts\" \"*.{js,json}\"",
24
24
  "integration-test:browser": "echo skipped",
25
25
  "integration-test:node": "echo skipped",
26
26
  "integration-test": "npm run integration-test:node && npm run integration-test:browser",
27
- "lint:fix": "eslint package.json tsconfig.json \"src/**/*.ts\" \"test/**/*.ts\" --fix --fix-type [problem,suggestion]",
28
- "lint": "eslint package.json tsconfig.json src --ext .ts -f html -o template-lintReport.html || exit 0",
27
+ "lint:fix": "eslint package.json api-extractor.json src test --ext .ts --fix --fix-type [problem,suggestion]",
28
+ "lint": "eslint package.json api-extractor.json src test --ext .ts -f html -o core-tracing-lintReport.html",
29
29
  "pack": "npm pack 2>&1",
30
30
  "prebuild": "npm run clean",
31
31
  "test:browser": "npm run build:test && npm run unit-test:browser && npm run integration-test:browser",
@@ -45,37 +45,39 @@
45
45
  "repository": "github:Azure/azure-sdk-for-js",
46
46
  "keywords": [
47
47
  "azure",
48
- "tracing"
48
+ "tracing",
49
+ "Azure",
50
+ "cloud"
49
51
  ],
50
52
  "author": "Microsoft Corporation",
51
53
  "license": "MIT",
52
54
  "bugs": {
53
- "url": "https://github.com/azure/azure-sdk-for-js/issues"
55
+ "url": "https://github.com/Azure/azure-sdk-for-js/issues"
54
56
  },
55
- "engine": {
57
+ "engines": {
56
58
  "node": ">=8.0.0"
57
59
  },
58
- "homepage": "https://github.com/azure/azure-sdk-for-js/tree/master/sdk/core/core-tracing",
60
+ "homepage": "https://github.com/Azure/azure-sdk-for-js/blob/master/sdk/core/core-tracing/README.md",
59
61
  "sideEffects": false,
60
62
  "dependencies": {
61
63
  "@opencensus/web-types": "0.0.7",
62
- "@opentelemetry/api": "^0.6.1",
63
- "tslib": "^1.10.0"
64
+ "@opentelemetry/api": "^0.10.2",
65
+ "tslib": "^2.0.0"
64
66
  },
65
67
  "devDependencies": {
66
- "@azure/eslint-plugin-azure-sdk": "^2.0.1",
68
+ "@azure/eslint-plugin-azure-sdk": "^3.0.0",
67
69
  "@microsoft/api-extractor": "7.7.11",
68
- "@rollup/plugin-commonjs": "^11.0.1",
70
+ "@rollup/plugin-commonjs": "11.0.2",
69
71
  "@rollup/plugin-json": "^4.0.0",
70
72
  "@rollup/plugin-multi-entry": "^3.0.0",
71
- "@rollup/plugin-node-resolve": "^7.0.0",
73
+ "@rollup/plugin-node-resolve": "^8.0.0",
72
74
  "@rollup/plugin-replace": "^2.2.0",
73
75
  "@types/mocha": "^7.0.2",
74
76
  "@types/node": "^8.0.0",
75
77
  "@typescript-eslint/eslint-plugin": "^2.0.0",
76
78
  "@typescript-eslint/parser": "^2.0.0",
77
79
  "assert": "^1.4.1",
78
- "cross-env": "^6.0.3",
80
+ "cross-env": "^7.0.2",
79
81
  "eslint": "^6.1.0",
80
82
  "eslint-config-prettier": "^6.0.0",
81
83
  "eslint-plugin-no-null": "^1.0.2",
@@ -89,8 +91,8 @@
89
91
  "rollup": "^1.16.3",
90
92
  "rollup-plugin-sourcemaps": "^0.4.2",
91
93
  "rollup-plugin-terser": "^5.1.1",
92
- "rollup-plugin-visualizer": "^3.1.1",
93
- "typescript": "~3.7.5",
94
+ "rollup-plugin-visualizer": "^4.0.4",
95
+ "typescript": "~3.9.3",
94
96
  "util": "^0.12.1"
95
97
  }
96
98
  }
@@ -333,7 +333,7 @@ export declare class TestSpan extends NoOpSpan {
333
333
  * @param parentSpanId The identifier of the parent Span
334
334
  * @param startTime The startTime of the event (defaults to now)
335
335
  */
336
- constructor(parentTracer: TestTracer, name: string, context: OTSpanContext, kind: SpanKind, parentSpanId?: string, startTime?: TimeInput);
336
+ constructor(parentTracer: Tracer, name: string, context: OTSpanContext, kind: SpanKind, parentSpanId?: string, startTime?: TimeInput);
337
337
  /**
338
338
  * Returns the Tracer that created this Span
339
339
  */