constructor(broker, opts) {
		this.broker = broker;
		this.logger = broker.getLogger("tracer");

		if (opts === true || opts === false) opts = { enabled: opts };

		this.opts = _.defaultsDeep({}, opts, {
			enabled: true,

			exporter: null,

			sampling: {
				// Constants sampling
				rate: 1.0, // 0.0 - Never, 1.0 > x > 0.0 - Fix, 1.0 - Always

				// Ratelimiting sampling https://opencensus.io/tracing/sampling/ratelimited/
				tracesPerSecond: null, // 1: 1 trace / sec, 5: 5 traces / sec, 0.1: 1 trace / 10 secs

				minPriority: null
			},

			actions: true,
			events: false,

			errorFields: ["name", "message", "code", "type", "data"],
			stackTrace: false,

			defaultTags: null,

			tags: {
				action: null,
				event: null
			}
		});

		if (this.opts.stackTrace && this.opts.errorFields.indexOf("stack") === -1)
			this.opts.errorFields.push("stack");

		this.sampleCounter = 0;

		if (this.opts.sampling.tracesPerSecond != null && this.opts.sampling.tracesPerSecond > 0) {
			this.rateLimiter = new RateLimiter({
				tracesPerSecond: this.opts.sampling.tracesPerSecond
			});
		}

		//this.scope = new AsyncStorage(this.broker);
		//this.scope.enable();
		//this._scopeEnabled = true;

		if (this.opts.enabled) this.logger.info("Tracing: Enabled");
	}
Creates an instance of Tracer.

@param {ServiceBroker} broker
@param {Object} opts
@memberof Tracer