Class: OpenTelemetry::SDK::Trace::Export::MultiSpanExporter
- Inherits:
-
Object
- Object
- OpenTelemetry::SDK::Trace::Export::MultiSpanExporter
- Defined in:
- lib/opentelemetry/sdk/trace/export/multi_span_exporter.rb
Overview
Implementation of the SpanExporter duck type that simply forwards all received spans to a collection of SpanExporters.
Can be used to export to multiple backends using the same SpanProcessor like a SimpleSpanProcessor or a BatchSpanProcessor.
Instance Method Summary collapse
-
#export(spans) ⇒ Integer
Called to export sampled Spans.
-
#initialize(span_exporters) ⇒ MultiSpanExporter
constructor
A new instance of MultiSpanExporter.
-
#shutdown ⇒ Object
Called when TracerFactory#shutdown is called, if this exporter is registered to a TracerFactory object.
Constructor Details
#initialize(span_exporters) ⇒ MultiSpanExporter
Returns a new instance of MultiSpanExporter.
18 19 20 |
# File 'lib/opentelemetry/sdk/trace/export/multi_span_exporter.rb', line 18 def initialize(span_exporters) @span_exporters = span_exporters.clone.freeze end |
Instance Method Details
#export(spans) ⇒ Integer
Called to export sampled Spans.
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/opentelemetry/sdk/trace/export/multi_span_exporter.rb', line 27 def export(spans) @span_exporters.inject(SUCCESS) do |result_code, span_exporter| begin merge_result_code(result_code, span_exporter.export(spans)) rescue => e # rubocop:disable Style/RescueStandardError OpenTelemetry.logger.warn("exception raised by export - #{e}") FAILED_NOT_RETRYABLE end end end |
#shutdown ⇒ Object
Called when TracerFactory#shutdown is called, if this exporter is registered to a TracerFactory object.
40 41 42 |
# File 'lib/opentelemetry/sdk/trace/export/multi_span_exporter.rb', line 40 def shutdown @span_exporters.each(&:shutdown) end |