/// <summary>
        /// Creates tracerSdk factory.
        /// </summary>
        /// <param name="configure">Function that configures tracerSdk factory.</param>
        public static TracerFactory Create(Action <TracerBuilder> configure)
        {
            if (configure == null)
            {
                throw new ArgumentNullException(nameof(configure));
            }

            var builder = new TracerBuilder();

            configure(builder);
            var factory = new TracerFactory(builder);

            if (builder.CollectorFactories != null)
            {
                foreach (var collector in builder.CollectorFactories)
                {
                    var tracer = factory.GetTracer(collector.Name, collector.Version);
                    factory.collectors.Add(collector.Factory(tracer));
                }
            }

            return(factory);
        }