@opentelemetry/api
Version:
Public API for OpenTelemetry
42 lines (41 loc) • 1.55 kB
JavaScript
import { ProxyTracer } from "./ProxyTracer.mjs";
import { NoopTracerProvider } from "./NoopTracerProvider.mjs";
//#region src/trace/ProxyTracerProvider.ts
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
*/
var ProxyTracerProvider = class {
/**
* Get a {@link ProxyTracer}
*/
getTracer(name, version, options) {
var _this$getDelegateTrac;
return (_this$getDelegateTrac = this.getDelegateTracer(name, version, options)) !== null && _this$getDelegateTrac !== void 0 ? _this$getDelegateTrac : new ProxyTracer(this, name, version, options);
}
getDelegate() {
var _this$_delegate;
return (_this$_delegate = this._delegate) !== null && _this$_delegate !== void 0 ? _this$_delegate : NOOP_TRACER_PROVIDER;
}
/**
* Set the delegate tracer provider
*/
setDelegate(delegate) {
this._delegate = delegate;
}
getDelegateTracer(name, version, options) {
var _this$_delegate2;
return (_this$_delegate2 = this._delegate) === null || _this$_delegate2 === void 0 ? void 0 : _this$_delegate2.getTracer(name, version, options);
}
};
//#endregion
export { ProxyTracerProvider };
//# sourceMappingURL=ProxyTracerProvider.mjs.map