Sha256: 275403ce46deae8ef573ce223a8bcbb38e1f97061fbe5b705b631f26a47759b0
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
# frozen_string_literal: true # Copyright 2019 OpenTelemetry Authors # # SPDX-License-Identifier: Apache-2.0 module OpenTelemetry module SDK module Trace # Implementation of the SpanProcessor duck type that simply forwards all # received events to a list of SpanProcessors. class MultiSpanProcessor # Creates a new {MultiSpanProcessor}. # # @param [Enumerable<SpanProcessor>] span_processors a collection of # SpanProcessors. # @return [MultiSpanProcessor] def initialize(span_processors) @span_processors = span_processors.to_a.freeze end # Called when a {Span} is started, if the {Span#recording?} # returns true. # # This method is called synchronously on the execution thread, should # not throw or block the execution thread. # # @param [Span] span the {Span} that just started. def on_start(span) @span_processors.each { |processor| processor.on_start(span) } end # Called when a {Span} is ended, if the {Span#recording?} # returns true. # # This method is called synchronously on the execution thread, should # not throw or block the execution thread. # # @param [Span] span the {Span} that just ended. def on_finish(span) @span_processors.each { |processor| processor.on_finish(span) } end # Called when {TracerFactory#shutdown} is called. def shutdown @span_processors.each(&:shutdown) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
opentelemetry-sdk-0.2.0 | lib/opentelemetry/sdk/trace/multi_span_processor.rb |