/// <summary> /// Register Jaeger Exporter. /// </summary> /// <param name="builder">The <see cref="TracingConfigurationBuilder" />.</param> /// <param name="configurationSectionName">The Configuration section name. </param> /// <returns>The <see cref="TracingConfigurationBuilder" />.</returns> public static TracingConfigurationBuilder RegisterJaeger([NotNull] this TracingConfigurationBuilder builder, string configurationSectionName = ExporterName) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } var options = builder.TracingConfiguration.GetSection($"Exporters:{configurationSectionName}").Get <JaegerExporterOptions>(); return(options == null ? builder : builder.RegisterExporter(ExporterName, new JaegerTracingExporterProvider(options))); }
/// <summary> /// Configures Tracing Exporters. /// </summary> /// <param name="tracerBuilder">The <see cref="TracerBuilder"/>.</param> /// <param name="tracingConfigurationBuilder">A delegate that is used to configure the <see cref="TracingConfigurationBuilder" />.</param> /// <param name="configurationSection">The <see cref="IConfigurationSection"/> which binds to <see cref="TracingOptions"/>.</param> /// <returns>The <see cref="TracerBuilder"/>.</returns> public static TracerBuilder ConfigureTracing( [NotNull] this TracerBuilder tracerBuilder, Action <TracingConfigurationBuilder> tracingConfigurationBuilder, IConfigurationSection configurationSection) { if (tracerBuilder == null) { throw new ArgumentNullException(nameof(tracerBuilder)); } if (tracingConfigurationBuilder == null) { throw new ArgumentNullException(nameof(tracingConfigurationBuilder)); } if (configurationSection == null) { throw new ArgumentNullException(nameof(configurationSection)); } var tracingOptions = configurationSection.Get <TracingOptions>(); if (tracingOptions?.IsEnabled != true) { return(tracerBuilder); } if (tracingOptions.Exporters?.Any() != true) { throw new ConfigurationErrorsException("No tracing exporters were configured. Please add at least one tracing exporter"); } var builder = new TracingConfigurationBuilder(tracerBuilder, tracingOptions.Exporters, configurationSection); tracingConfigurationBuilder(builder); if (!builder.IsConfigured) { throw new ConfigurationErrorsException("Tracing is enabled but no tracing exporters were configured."); } return(tracerBuilder); }