42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
/*
|
|
* Copyright The OpenTelemetry Authors
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
import { ProxyTracer } from './ProxyTracer';
|
|
import { NoopTracerProvider } from './NoopTracerProvider';
|
|
const NOOP_TRACER_PROVIDER = new NoopTracerProvider();
|
|
/**
|
|
* Tracer provider which provides {@link ProxyTracer}s.
|
|
*
|
|
* Before a delegate is set, tracers provided are NoOp.
|
|
* When a delegate is set, traces are provided from the delegate.
|
|
* When a delegate is set after tracers have already been provided,
|
|
* all tracers already provided will use the provided delegate implementation.
|
|
*
|
|
* @deprecated This will be removed in the next major version.
|
|
* @since 1.0.0
|
|
*/
|
|
export class ProxyTracerProvider {
|
|
/**
|
|
* Get a {@link ProxyTracer}
|
|
*/
|
|
getTracer(name, version, options) {
|
|
var _a;
|
|
return ((_a = this.getDelegateTracer(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyTracer(this, name, version, options));
|
|
}
|
|
getDelegate() {
|
|
var _a;
|
|
return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER;
|
|
}
|
|
/**
|
|
* Set the delegate tracer provider
|
|
*/
|
|
setDelegate(delegate) {
|
|
this._delegate = delegate;
|
|
}
|
|
getDelegateTracer(name, version, options) {
|
|
var _a;
|
|
return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getTracer(name, version, options);
|
|
}
|
|
}
|
|
//# sourceMappingURL=ProxyTracerProvider.js.map
|