@@ -165,21 +165,23 @@ def install_instrumentation
165165 end
166166
167167 def configure_span_processors
168- processors = @span_processors . empty? ? [ wrapped_exporter_from_env ] . compact : @span_processors
168+ processors = @span_processors . empty? ? wrapped_exporters_from_env . compact : @span_processors
169169 processors . each { |p | tracer_provider . add_span_processor ( p ) }
170170 end
171171
172- def wrapped_exporter_from_env
173- exporter = ENV . fetch ( 'OTEL_TRACES_EXPORTER' , 'otlp' )
174- case exporter
175- when 'none' then nil
176- when 'otlp' then fetch_exporter ( exporter , 'OpenTelemetry::Exporter::OTLP::Exporter' )
177- when 'jaeger' then fetch_exporter ( exporter , 'OpenTelemetry::Exporter::Jaeger::CollectorExporter' )
178- when 'zipkin' then fetch_exporter ( exporter , 'OpenTelemetry::Exporter::Zipkin::Exporter' )
179- when 'console' then Trace ::Export ::SimpleSpanProcessor . new ( Trace ::Export ::ConsoleSpanExporter . new )
180- else
181- OpenTelemetry . logger . warn "The #{ exporter } exporter is unknown and cannot be configured, spans will not be exported"
182- nil
172+ def wrapped_exporters_from_env
173+ exporters = ENV . fetch ( 'OTEL_TRACES_EXPORTER' , 'otlp' )
174+ exporters . split ( ',' ) . map do |exporter |
175+ case exporter . strip
176+ when 'none' then nil
177+ when 'otlp' then fetch_exporter ( exporter , 'OpenTelemetry::Exporter::OTLP::Exporter' )
178+ when 'jaeger' then fetch_exporter ( exporter , 'OpenTelemetry::Exporter::Jaeger::CollectorExporter' )
179+ when 'zipkin' then fetch_exporter ( exporter , 'OpenTelemetry::Exporter::Zipkin::Exporter' )
180+ when 'console' then Trace ::Export ::SimpleSpanProcessor . new ( Trace ::Export ::ConsoleSpanExporter . new )
181+ else
182+ OpenTelemetry . logger . warn "The #{ exporter } exporter is unknown and cannot be configured, spans will not be exported"
183+ nil
184+ end
183185 end
184186 end
185187
0 commit comments