opentelemetry-sdk 0.14.0 → 1.0.0.rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +110 -44
  3. data/README.md +2 -2
  4. data/lib/opentelemetry/sdk.rb +4 -3
  5. data/lib/opentelemetry/sdk/configurator.rb +52 -33
  6. data/lib/opentelemetry/sdk/forwarding_logger.rb +69 -0
  7. data/lib/opentelemetry/sdk/internal.rb +3 -3
  8. data/lib/opentelemetry/sdk/resources/constants.rb +48 -3
  9. data/lib/opentelemetry/sdk/resources/resource.rb +8 -1
  10. data/lib/opentelemetry/sdk/trace.rb +2 -3
  11. data/lib/opentelemetry/sdk/trace/event.rb +7 -36
  12. data/lib/opentelemetry/sdk/trace/export.rb +1 -2
  13. data/lib/opentelemetry/sdk/trace/export/batch_span_processor.rb +10 -5
  14. data/lib/opentelemetry/sdk/trace/export/console_span_exporter.rb +4 -0
  15. data/lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb +23 -4
  16. data/lib/opentelemetry/sdk/trace/export/simple_span_processor.rb +4 -2
  17. data/lib/opentelemetry/sdk/trace/export/{noop_span_exporter.rb → span_exporter.rb} +18 -7
  18. data/lib/opentelemetry/sdk/trace/span.rb +83 -39
  19. data/lib/opentelemetry/sdk/trace/span_data.rb +25 -18
  20. data/lib/opentelemetry/sdk/trace/span_limits.rb +60 -0
  21. data/lib/opentelemetry/sdk/trace/{noop_span_processor.rb → span_processor.rb} +5 -8
  22. data/lib/opentelemetry/sdk/trace/tracer.rb +1 -37
  23. data/lib/opentelemetry/sdk/trace/tracer_provider.rb +106 -19
  24. data/lib/opentelemetry/sdk/version.rb +1 -1
  25. metadata +43 -20
  26. data/lib/opentelemetry/sdk/baggage.rb +0 -16
  27. data/lib/opentelemetry/sdk/baggage/builder.rb +0 -40
  28. data/lib/opentelemetry/sdk/baggage/manager.rb +0 -97
  29. data/lib/opentelemetry/sdk/trace/config.rb +0 -18
  30. data/lib/opentelemetry/sdk/trace/config/trace_config.rb +0 -79
  31. data/lib/opentelemetry/sdk/trace/export/multi_span_exporter.rb +0 -59
  32. data/lib/opentelemetry/sdk/trace/multi_span_processor.rb +0 -86
@@ -10,24 +10,24 @@ module OpenTelemetry
10
10
  # implementation.
11
11
  module Trace
12
12
  # SpanData is a Struct containing {Span} data for export.
13
- SpanData = Struct.new(:name,
14
- :kind,
15
- :status,
16
- :parent_span_id,
17
- :total_recorded_attributes,
18
- :total_recorded_events,
19
- :total_recorded_links,
20
- :start_timestamp,
21
- :end_timestamp,
22
- :attributes,
23
- :links,
24
- :events,
25
- :resource,
26
- :instrumentation_library,
27
- :span_id,
28
- :trace_id,
29
- :trace_flags,
30
- :tracestate) do
13
+ SpanData = Struct.new(:name, # String
14
+ :kind, # Symbol: :internal, :producer, :consumer, :client, :server
15
+ :status, # Status
16
+ :parent_span_id, # String (8 byte binary), may be OpenTelemetry::Trace::INVALID_SPAN_ID
17
+ :total_recorded_attributes, # Integer
18
+ :total_recorded_events, # Integer
19
+ :total_recorded_links, # Integer
20
+ :start_timestamp, # Integer nanoseconds since Epoch
21
+ :end_timestamp, # Integer nanoseconds since Epoch
22
+ :attributes, # optional Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>}
23
+ :links, # optional Array[OpenTelemetry::Trace::Link]
24
+ :events, # optional Array[Event]
25
+ :resource, # OpenTelemetry::SDK::Resources::Resource
26
+ :instrumentation_library, # OpenTelemetry::SDK::InstrumentationLibrary
27
+ :span_id, # String (8 byte binary)
28
+ :trace_id, # String (16-byte binary)
29
+ :trace_flags, # Integer (8-bit byte of bit flags)
30
+ :tracestate) do # OpenTelemetry::Trace::Tracestate
31
31
  # Returns the lowercase [hex encoded](https://tools.ietf.org/html/rfc4648#section-8) span ID.
32
32
  #
33
33
  # @return [String] A 16-hex-character lowercase string.
@@ -41,6 +41,13 @@ module OpenTelemetry
41
41
  def hex_trace_id
42
42
  trace_id.unpack1('H*')
43
43
  end
44
+
45
+ # Returns the lowercase [hex encoded](https://tools.ietf.org/html/rfc4648#section-8) parent span ID.
46
+ #
47
+ # @return [String] A 16-hex-character lowercase string.
48
+ def hex_parent_span_id
49
+ parent_span_id.unpack1('H*')
50
+ end
44
51
  end
45
52
  end
46
53
  end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright The OpenTelemetry Authors
4
+ #
5
+ # SPDX-License-Identifier: Apache-2.0
6
+
7
+ module OpenTelemetry
8
+ module SDK
9
+ module Trace
10
+ # Class that holds global trace parameters.
11
+ class SpanLimits
12
+ # The global default max number of attributes per {Span}.
13
+ attr_reader :attribute_count_limit
14
+
15
+ # The global default max length of attribute value per {Span}.
16
+ attr_reader :attribute_length_limit
17
+
18
+ # The global default max number of {OpenTelemetry::SDK::Trace::Event}s per {Span}.
19
+ attr_reader :event_count_limit
20
+
21
+ # The global default max number of {OpenTelemetry::Trace::Link} entries per {Span}.
22
+ attr_reader :link_count_limit
23
+
24
+ # The global default max number of attributes per {OpenTelemetry::SDK::Trace::Event}.
25
+ attr_reader :attribute_per_event_count_limit
26
+
27
+ # The global default max number of attributes per {OpenTelemetry::Trace::Link}.
28
+ attr_reader :attribute_per_link_count_limit
29
+
30
+ # Returns a {SpanLimits} with the desired values.
31
+ #
32
+ # @return [SpanLimits] with the desired values.
33
+ # @raise [ArgumentError] if any of the max numbers are not positive.
34
+ def initialize(attribute_count_limit: Integer(ENV.fetch('OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT', 128)), # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
35
+ attribute_length_limit: ENV['OTEL_RUBY_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT'],
36
+ event_count_limit: Integer(ENV.fetch('OTEL_SPAN_EVENT_COUNT_LIMIT', 128)),
37
+ link_count_limit: Integer(ENV.fetch('OTEL_SPAN_LINK_COUNT_LIMIT', 128)),
38
+ attribute_per_event_count_limit: attribute_count_limit,
39
+ attribute_per_link_count_limit: attribute_count_limit)
40
+ raise ArgumentError, 'attribute_count_limit must be positive' unless attribute_count_limit.positive?
41
+ raise ArgumentError, 'attribute_length_limit must not be less than 32' unless attribute_length_limit.nil? || Integer(attribute_length_limit) >= 32
42
+ raise ArgumentError, 'event_count_limit must be positive' unless event_count_limit.positive?
43
+ raise ArgumentError, 'link_count_limit must be positive' unless link_count_limit.positive?
44
+ raise ArgumentError, 'attribute_per_event_count_limit must be positive' unless attribute_per_event_count_limit.positive?
45
+ raise ArgumentError, 'attribute_per_link_count_limit must be positive' unless attribute_per_link_count_limit.positive?
46
+
47
+ @attribute_count_limit = attribute_count_limit
48
+ @attribute_length_limit = attribute_length_limit.nil? ? nil : Integer(attribute_length_limit)
49
+ @event_count_limit = event_count_limit
50
+ @link_count_limit = link_count_limit
51
+ @attribute_per_event_count_limit = attribute_per_event_count_limit
52
+ @attribute_per_link_count_limit = attribute_per_link_count_limit
53
+ end
54
+
55
+ # The default {SpanLimits}.
56
+ DEFAULT = new
57
+ end
58
+ end
59
+ end
60
+ end
@@ -4,17 +4,14 @@
4
4
  #
5
5
  # SPDX-License-Identifier: Apache-2.0
6
6
 
7
- require 'singleton'
8
-
9
7
  module OpenTelemetry
10
8
  module SDK
11
9
  module Trace
12
- # NoopSpanProcessor is a singleton implementation of the duck type
13
- # SpanProcessor that provides synchronous no-op hooks for when a
14
- # {Span} is started or when a {Span} is ended.
15
- class NoopSpanProcessor
16
- include Singleton
17
-
10
+ # SpanProcessor describes a duck type and provides synchronous no-op hooks for when a
11
+ # {Span} is started or when a {Span} is ended. It is not required to subclass this
12
+ # class to provide an implementation of SpanProcessor, provided the interface is
13
+ # satisfied.
14
+ class SpanProcessor
18
15
  # Called when a {Span} is started, if the {Span#recording?}
19
16
  # returns true.
20
17
  #
@@ -9,10 +9,6 @@ module OpenTelemetry
9
9
  module Trace
10
10
  # {Tracer} is the SDK implementation of {OpenTelemetry::Trace::Tracer}.
11
11
  class Tracer < OpenTelemetry::Trace::Tracer
12
- attr_reader :name
13
- attr_reader :version
14
- attr_reader :tracer_provider
15
-
16
12
  # @api private
17
13
  #
18
14
  # Returns a new {Tracer} instance.
@@ -23,8 +19,6 @@ module OpenTelemetry
23
19
  #
24
20
  # @return [Tracer]
25
21
  def initialize(name, version, tracer_provider)
26
- @name = name
27
- @version = version
28
22
  @instrumentation_library = InstrumentationLibrary.new(name, version)
29
23
  @tracer_provider = tracer_provider
30
24
  end
@@ -42,37 +36,7 @@ module OpenTelemetry
42
36
  parent_span_id = parent_span_context.span_id
43
37
  trace_id = parent_span_context.trace_id
44
38
  end
45
- trace_id ||= tracer_provider.id_generator.generate_trace_id
46
- sampler = tracer_provider.active_trace_config.sampler
47
- result = sampler.should_sample?(trace_id: trace_id, parent_context: with_parent, links: links, name: name, kind: kind, attributes: attributes)
48
- internal_create_span(result, name, kind, trace_id, parent_span_id, attributes, links, start_timestamp, with_parent)
49
- end
50
-
51
- private
52
-
53
- def internal_create_span(result, name, kind, trace_id, parent_span_id, attributes, links, start_timestamp, parent_context) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
54
- span_id = tracer_provider.id_generator.generate_span_id
55
- if result.recording? && !tracer_provider.stopped?
56
- trace_flags = result.sampled? ? OpenTelemetry::Trace::TraceFlags::SAMPLED : OpenTelemetry::Trace::TraceFlags::DEFAULT
57
- context = OpenTelemetry::Trace::SpanContext.new(trace_id: trace_id, span_id: span_id, trace_flags: trace_flags, tracestate: result.tracestate)
58
- attributes = attributes&.merge(result.attributes) || result.attributes
59
- Span.new(
60
- context,
61
- parent_context,
62
- name,
63
- kind,
64
- parent_span_id,
65
- tracer_provider.active_trace_config,
66
- tracer_provider.active_span_processor,
67
- attributes,
68
- links,
69
- start_timestamp || Time.now,
70
- tracer_provider.resource,
71
- @instrumentation_library
72
- )
73
- else
74
- OpenTelemetry::Trace::Span.new(span_context: OpenTelemetry::Trace::SpanContext.new(trace_id: trace_id, span_id: span_id, tracestate: result.tracestate))
75
- end
39
+ @tracer_provider.internal_create_span(name, kind, trace_id, parent_span_id, attributes, links, start_timestamp, with_parent, @instrumentation_library)
76
40
  end
77
41
  end
78
42
  end
@@ -8,24 +8,35 @@ module OpenTelemetry
8
8
  module SDK
9
9
  module Trace
10
10
  # {TracerProvider} is the SDK implementation of {OpenTelemetry::Trace::TracerProvider}.
11
- class TracerProvider < OpenTelemetry::Trace::TracerProvider
11
+ class TracerProvider < OpenTelemetry::Trace::TracerProvider # rubocop:disable Metrics/ClassLength
12
12
  Key = Struct.new(:name, :version)
13
13
  private_constant(:Key)
14
14
 
15
- attr_accessor :active_trace_config, :id_generator
16
- attr_reader :active_span_processor, :stopped, :resource
17
- alias stopped? stopped
15
+ attr_accessor :span_limits, :id_generator, :sampler
16
+ attr_reader :resource
18
17
 
19
18
  # Returns a new {TracerProvider} instance.
20
19
  #
20
+ # @param [optional Sampler] sampler The sampling policy for new spans
21
+ # @param [optional Resource] resource The resource to associate with spans
22
+ # created by Tracers created by this TracerProvider
23
+ # @param [optional IDGenerator] id_generator The trace and span ID generation
24
+ # policy
25
+ # @param [optional SpanLimits] span_limits The limits to apply to attribute,
26
+ # event and link counts for Spans created by Tracers created by this
27
+ # TracerProvider
28
+ #
21
29
  # @return [TracerProvider]
22
- def initialize(resource = OpenTelemetry::SDK::Resources::Resource.create)
30
+ def initialize(sampler: sampler_from_environment(Samplers.parent_based(root: Samplers::ALWAYS_ON)),
31
+ resource: OpenTelemetry::SDK::Resources::Resource.create,
32
+ id_generator: OpenTelemetry::Trace,
33
+ span_limits: SpanLimits::DEFAULT)
23
34
  @mutex = Mutex.new
24
35
  @registry = {}
25
- @active_span_processor = NoopSpanProcessor.instance
26
- @active_trace_config = Config::TraceConfig::DEFAULT
27
- @id_generator = OpenTelemetry::Trace
28
- @registered_span_processors = []
36
+ @span_processors = []
37
+ @span_limits = span_limits
38
+ @sampler = sampler
39
+ @id_generator = id_generator
29
40
  @stopped = false
30
41
  @resource = resource
31
42
  end
@@ -39,10 +50,11 @@ module OpenTelemetry
39
50
  def tracer(name = nil, version = nil)
40
51
  name ||= ''
41
52
  version ||= ''
53
+ OpenTelemetry.logger.warn 'calling TracerProvider#tracer without providing a tracer name.' if name.empty?
42
54
  @mutex.synchronize { @registry[Key.new(name, version)] ||= Tracer.new(name, version, self) }
43
55
  end
44
56
 
45
- # Attempts to stop all the activity for this {Tracer}. Calls
57
+ # Attempts to stop all the activity for this {TracerProvider}. Calls
46
58
  # SpanProcessor#shutdown for all registered SpanProcessors.
47
59
  #
48
60
  # This operation may block until all the Spans are processed. Must be
@@ -52,23 +64,54 @@ module OpenTelemetry
52
64
  # After this is called all the newly created {Span}s will be no-op.
53
65
  #
54
66
  # @param [optional Numeric] timeout An optional timeout in seconds.
67
+ # @return [Integer] Export::SUCCESS if no error occurred, Export::FAILURE if
68
+ # a non-specific failure occurred, Export::TIMEOUT if a timeout occurred.
55
69
  def shutdown(timeout: nil)
56
70
  @mutex.synchronize do
57
71
  if @stopped
58
72
  OpenTelemetry.logger.warn('calling Tracer#shutdown multiple times.')
59
- return
73
+ return Export::FAILURE
74
+ end
75
+
76
+ start_time = OpenTelemetry::Common::Utilities.timeout_timestamp
77
+ results = @span_processors.map do |processor|
78
+ remaining_timeout = OpenTelemetry::Common::Utilities.maybe_timeout(timeout, start_time)
79
+ break [Export::TIMEOUT] if remaining_timeout&.zero?
80
+
81
+ processor.shutdown(timeout: remaining_timeout)
60
82
  end
61
- @active_span_processor.shutdown(timeout: timeout)
62
83
  @stopped = true
84
+ results.max || Export::SUCCESS
63
85
  end
64
86
  end
65
87
 
66
- # Adds a new SpanProcessor to this {Tracer}.
88
+ # Immediately export all spans that have not yet been exported for all the
89
+ # registered SpanProcessors.
67
90
  #
68
- # Any registered processor causes overhead, consider to use an
69
- # async/batch processor especially for span exporting, and export to
70
- # multiple backends using the
71
- # {io.opentelemetry.sdk.trace.export.MultiSpanExporter}.
91
+ # This method should only be called in cases where it is absolutely
92
+ # necessary, such as when using some FaaS providers that may suspend
93
+ # the process after an invocation, but before the `Processor` exports
94
+ # the completed spans.
95
+ #
96
+ # @param [optional Numeric] timeout An optional timeout in seconds.
97
+ # @return [Integer] Export::SUCCESS if no error occurred, Export::FAILURE if
98
+ # a non-specific failure occurred, Export::TIMEOUT if a timeout occurred.
99
+ def force_flush(timeout: nil)
100
+ @mutex.synchronize do
101
+ return Export::SUCCESS if @stopped
102
+
103
+ start_time = OpenTelemetry::Common::Utilities.timeout_timestamp
104
+ results = @span_processors.map do |processor|
105
+ remaining_timeout = OpenTelemetry::Common::Utilities.maybe_timeout(timeout, start_time)
106
+ return Export::TIMEOUT if remaining_timeout&.zero?
107
+
108
+ processor.force_flush(timeout: remaining_timeout)
109
+ end
110
+ results.max || Export::SUCCESS
111
+ end
112
+ end
113
+
114
+ # Adds a new SpanProcessor to this {Tracer}.
72
115
  #
73
116
  # @param span_processor the new SpanProcessor to be added.
74
117
  def add_span_processor(span_processor)
@@ -77,9 +120,53 @@ module OpenTelemetry
77
120
  OpenTelemetry.logger.warn('calling Tracer#add_span_processor after shutdown.')
78
121
  return
79
122
  end
80
- @registered_span_processors << span_processor
81
- @active_span_processor = MultiSpanProcessor.new(@registered_span_processors.dup)
123
+ @span_processors = @span_processors.dup.push(span_processor)
124
+ end
125
+ end
126
+
127
+ # @api private
128
+ def internal_create_span(name, kind, trace_id, parent_span_id, attributes, links, start_timestamp, parent_context, instrumentation_library) # rubocop:disable Metrics/MethodLength
129
+ trace_id ||= @id_generator.generate_trace_id
130
+ result = @sampler.should_sample?(trace_id: trace_id, parent_context: parent_context, links: links, name: name, kind: kind, attributes: attributes)
131
+ span_id = @id_generator.generate_span_id
132
+ if result.recording? && !@stopped
133
+ trace_flags = result.sampled? ? OpenTelemetry::Trace::TraceFlags::SAMPLED : OpenTelemetry::Trace::TraceFlags::DEFAULT
134
+ context = OpenTelemetry::Trace::SpanContext.new(trace_id: trace_id, span_id: span_id, trace_flags: trace_flags, tracestate: result.tracestate)
135
+ attributes = attributes&.merge(result.attributes) || result.attributes
136
+ Span.new(
137
+ context,
138
+ parent_context,
139
+ name,
140
+ kind,
141
+ parent_span_id,
142
+ @span_limits,
143
+ @span_processors,
144
+ attributes,
145
+ links,
146
+ start_timestamp,
147
+ @resource,
148
+ instrumentation_library
149
+ )
150
+ else
151
+ OpenTelemetry::Trace.non_recording_span(OpenTelemetry::Trace::SpanContext.new(trace_id: trace_id, span_id: span_id, tracestate: result.tracestate))
152
+ end
153
+ end
154
+
155
+ private
156
+
157
+ def sampler_from_environment(default_sampler) # rubocop:disable Metrics/CyclomaticComplexity
158
+ case ENV['OTEL_TRACES_SAMPLER']
159
+ when 'always_on' then Samplers::ALWAYS_ON
160
+ when 'always_off' then Samplers::ALWAYS_OFF
161
+ when 'traceidratio' then Samplers.trace_id_ratio_based(Float(ENV.fetch('OTEL_TRACES_SAMPLER_ARG', 1.0)))
162
+ when 'parentbased_always_on' then Samplers.parent_based(root: Samplers::ALWAYS_ON)
163
+ when 'parentbased_always_off' then Samplers.parent_based(root: Samplers::ALWAYS_OFF)
164
+ when 'parentbased_traceidratio' then Samplers.parent_based(root: Samplers.trace_id_ratio_based(Float(ENV.fetch('OTEL_TRACES_SAMPLER_ARG', 1.0))))
165
+ else default_sampler
82
166
  end
167
+ rescue StandardError => e
168
+ OpenTelemetry.handle_error(exception: e, message: "installing default sampler #{default_sampler.description}")
169
+ default_sampler
83
170
  end
84
171
  end
85
172
  end
@@ -7,6 +7,6 @@
7
7
  module OpenTelemetry
8
8
  module SDK
9
9
  ## Current OpenTelemetry version
10
- VERSION = '0.14.0'
10
+ VERSION = '1.0.0.rc2'
11
11
  end
12
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentelemetry-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 1.0.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-03 00:00:00.000000000 Z
11
+ date: 2021-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -16,28 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.14.0
19
+ version: 1.0.0.rc2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.14.0
26
+ version: 1.0.0.rc2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: opentelemetry-common
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.14.0
33
+ version: 0.19.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.14.0
40
+ version: 0.19.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: opentelemetry-instrumentation-base
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.18.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.18.1
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +94,20 @@ dependencies:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
96
  version: '5.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: opentelemetry-exporter-jaeger
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.18.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.18.0
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: rake
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -163,29 +191,22 @@ files:
163
191
  - README.md
164
192
  - lib/opentelemetry-sdk.rb
165
193
  - lib/opentelemetry/sdk.rb
166
- - lib/opentelemetry/sdk/baggage.rb
167
- - lib/opentelemetry/sdk/baggage/builder.rb
168
- - lib/opentelemetry/sdk/baggage/manager.rb
169
194
  - lib/opentelemetry/sdk/configurator.rb
195
+ - lib/opentelemetry/sdk/forwarding_logger.rb
170
196
  - lib/opentelemetry/sdk/instrumentation_library.rb
171
197
  - lib/opentelemetry/sdk/internal.rb
172
198
  - lib/opentelemetry/sdk/resources.rb
173
199
  - lib/opentelemetry/sdk/resources/constants.rb
174
200
  - lib/opentelemetry/sdk/resources/resource.rb
175
201
  - lib/opentelemetry/sdk/trace.rb
176
- - lib/opentelemetry/sdk/trace/config.rb
177
- - lib/opentelemetry/sdk/trace/config/trace_config.rb
178
202
  - lib/opentelemetry/sdk/trace/event.rb
179
203
  - lib/opentelemetry/sdk/trace/export.rb
180
204
  - lib/opentelemetry/sdk/trace/export/batch_span_processor.rb
181
205
  - lib/opentelemetry/sdk/trace/export/console_span_exporter.rb
182
206
  - lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb
183
207
  - lib/opentelemetry/sdk/trace/export/metrics_reporter.rb
184
- - lib/opentelemetry/sdk/trace/export/multi_span_exporter.rb
185
- - lib/opentelemetry/sdk/trace/export/noop_span_exporter.rb
186
208
  - lib/opentelemetry/sdk/trace/export/simple_span_processor.rb
187
- - lib/opentelemetry/sdk/trace/multi_span_processor.rb
188
- - lib/opentelemetry/sdk/trace/noop_span_processor.rb
209
+ - lib/opentelemetry/sdk/trace/export/span_exporter.rb
189
210
  - lib/opentelemetry/sdk/trace/samplers.rb
190
211
  - lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb
191
212
  - lib/opentelemetry/sdk/trace/samplers/decision.rb
@@ -194,6 +215,8 @@ files:
194
215
  - lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb
195
216
  - lib/opentelemetry/sdk/trace/span.rb
196
217
  - lib/opentelemetry/sdk/trace/span_data.rb
218
+ - lib/opentelemetry/sdk/trace/span_limits.rb
219
+ - lib/opentelemetry/sdk/trace/span_processor.rb
197
220
  - lib/opentelemetry/sdk/trace/tracer.rb
198
221
  - lib/opentelemetry/sdk/trace/tracer_provider.rb
199
222
  - lib/opentelemetry/sdk/version.rb
@@ -201,10 +224,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
201
224
  licenses:
202
225
  - Apache-2.0
203
226
  metadata:
204
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v0.14.0/file.CHANGELOG.html
227
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v1.0.0.rc2/file.CHANGELOG.html
205
228
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/sdk
206
229
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
207
- documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v0.14.0
230
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v1.0.0.rc2
208
231
  post_install_message:
209
232
  rdoc_options: []
210
233
  require_paths:
@@ -216,11 +239,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
239
  version: 2.5.0
217
240
  required_rubygems_version: !ruby/object:Gem::Requirement
218
241
  requirements:
219
- - - ">="
242
+ - - ">"
220
243
  - !ruby/object:Gem::Version
221
- version: '0'
244
+ version: 1.3.1
222
245
  requirements: []
223
- rubygems_version: 3.1.4
246
+ rubygems_version: 3.1.6
224
247
  signing_key:
225
248
  specification_version: 4
226
249
  summary: A stats collection and distributed tracing framework