/// <summary> /// Enables the OpenTelemetry Protocol (OTLP) exporter. /// </summary> /// <param name="builder">Open Telemetry builder to use.</param> /// <param name="configure">Exporter configuration options.</param> /// <param name="processorConfigure">Activity processor configuration.</param> /// <returns>The instance of <see cref="OpenTelemetryBuilder"/> to chain the calls.</returns> public static OpenTelemetryBuilder UseOtlpExporter(this OpenTelemetryBuilder builder, Action <OtlpExporterOptions> configure = null, Action <ActivityProcessorPipelineBuilder> processorConfigure = null) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.AddProcessorPipeline(pipeline => { var exporterOptions = new OtlpExporterOptions(); configure?.Invoke(exporterOptions); var activityExporter = new OtlpExporter(exporterOptions); processorConfigure?.Invoke(pipeline); pipeline.SetExporter(activityExporter); })); }
/// <summary> /// Registers a Jaeger exporter that will receive <see cref="System.Diagnostics.Activity"/> instances. /// </summary> /// <param name="builder"><see cref="OpenTelemetryBuilder"/> builder to use.</param> /// <param name="configure">Exporter configuration options.</param> /// <returns>The instance of <see cref="OpenTelemetryBuilder"/> to chain the calls.</returns> public static OpenTelemetryBuilder UseJaegerActivityExporter(this OpenTelemetryBuilder builder, Action <JaegerExporterOptions> configure) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configure == null) { throw new ArgumentNullException(nameof(configure)); } return(builder.AddProcessorPipeline(pipeline => { var exporterOptions = new JaegerExporterOptions(); configure(exporterOptions); var activityExporter = new JaegerActivityExporter(exporterOptions); pipeline.SetExporter(activityExporter); })); }