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 ⇒ Integer
Called when TracerProvider#shutdown is called, if this exporter is registered to a TracerProvider 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 |
# File 'lib/opentelemetry/sdk/trace/export/multi_span_exporter.rb', line 27 def export(spans) @span_exporters.inject(SUCCESS) do |result_code, span_exporter| merge_result_code(result_code, span_exporter.export(spans)) rescue => e # rubocop:disable Style/RescueStandardError OpenTelemetry.logger.warn("exception raised by export - #{e}") FAILURE end end |
#shutdown ⇒ Integer
Called when TracerProvider#shutdown is called, if this exporter is registered to a TracerProvider object.
41 42 43 |
# File 'lib/opentelemetry/sdk/trace/export/multi_span_exporter.rb', line 41 def shutdown @span_exporters.map(&:shutdown).uniq.max end |