opentelemetry-sdk 0.3.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +2 -2
  3. data/CHANGELOG.md +32 -0
  4. data/LICENSE +1 -1
  5. data/README.md +1 -1
  6. data/lib/opentelemetry/sdk.rb +4 -3
  7. data/lib/opentelemetry/sdk/baggage.rb +16 -0
  8. data/lib/opentelemetry/sdk/{correlation_context → baggage}/builder.rb +5 -5
  9. data/lib/opentelemetry/sdk/{correlation_context → baggage}/manager.rb +37 -27
  10. data/lib/opentelemetry/sdk/configurator.rb +73 -39
  11. data/lib/opentelemetry/sdk/instrumentation_library.rb +13 -0
  12. data/lib/opentelemetry/sdk/resources.rb +1 -0
  13. data/lib/opentelemetry/sdk/resources/constants.rb +124 -0
  14. data/lib/opentelemetry/sdk/resources/resource.rb +38 -19
  15. data/lib/opentelemetry/sdk/trace.rb +1 -0
  16. data/lib/opentelemetry/sdk/trace/config/trace_config.rb +3 -3
  17. data/lib/opentelemetry/sdk/trace/event.rb +48 -0
  18. data/lib/opentelemetry/sdk/trace/export.rb +9 -9
  19. data/lib/opentelemetry/sdk/trace/export/batch_span_processor.rb +49 -28
  20. data/lib/opentelemetry/sdk/trace/export/console_span_exporter.rb +3 -6
  21. data/lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb +6 -2
  22. data/lib/opentelemetry/sdk/trace/export/multi_span_exporter.rb +10 -13
  23. data/lib/opentelemetry/sdk/trace/export/noop_span_exporter.rb +2 -1
  24. data/lib/opentelemetry/sdk/trace/export/simple_span_processor.rb +13 -3
  25. data/lib/opentelemetry/sdk/trace/multi_span_processor.rb +12 -4
  26. data/lib/opentelemetry/sdk/trace/noop_span_processor.rb +15 -3
  27. data/lib/opentelemetry/sdk/trace/samplers.rb +52 -51
  28. data/lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb +33 -0
  29. data/lib/opentelemetry/sdk/trace/samplers/decision.rb +3 -3
  30. data/lib/opentelemetry/sdk/trace/samplers/parent_based.rb +53 -0
  31. data/lib/opentelemetry/sdk/trace/samplers/result.rb +3 -3
  32. data/lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb +45 -0
  33. data/lib/opentelemetry/sdk/trace/span.rb +32 -35
  34. data/lib/opentelemetry/sdk/trace/span_data.rb +18 -3
  35. data/lib/opentelemetry/sdk/trace/tracer.rb +29 -16
  36. data/lib/opentelemetry/sdk/trace/tracer_provider.rb +4 -4
  37. data/lib/opentelemetry/sdk/version.rb +1 -1
  38. metadata +15 -10
  39. data/lib/opentelemetry/sdk/correlation_context.rb +0 -16
  40. data/lib/opentelemetry/sdk/trace/samplers/probability_sampler.rb +0 -61
@@ -14,7 +14,7 @@ module OpenTelemetry
14
14
  # root span.
15
15
  class Result
16
16
  EMPTY_HASH = {}.freeze
17
- DECISIONS = [Decision::RECORD, Decision::NOT_RECORD, Decision::RECORD_AND_SAMPLED].freeze
17
+ DECISIONS = [Decision::RECORD_ONLY, Decision::DROP, Decision::RECORD_AND_SAMPLE].freeze
18
18
  private_constant(:EMPTY_HASH, :DECISIONS)
19
19
 
20
20
  # Returns a frozen hash of attributes to be attached span.
@@ -39,14 +39,14 @@ module OpenTelemetry
39
39
  #
40
40
  # @return [Boolean] sampling decision
41
41
  def sampled?
42
- @decision == Decision::RECORD_AND_SAMPLED
42
+ @decision == Decision::RECORD_AND_SAMPLE
43
43
  end
44
44
 
45
45
  # Returns true if this span should record events, attributes, status, etc.
46
46
  #
47
47
  # @return [Boolean] recording decision
48
48
  def recording?
49
- @decision != Decision::NOT_RECORD
49
+ @decision != Decision::DROP
50
50
  end
51
51
  end
52
52
  end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2019 OpenTelemetry Authors
4
+ #
5
+ # SPDX-License-Identifier: Apache-2.0
6
+
7
+ module OpenTelemetry
8
+ module SDK
9
+ module Trace
10
+ module Samplers
11
+ # @api private
12
+ #
13
+ # Implements sampling based on a probability.
14
+ class TraceIdRatioBased
15
+ attr_reader :description
16
+
17
+ def initialize(probability)
18
+ @probability = probability
19
+ @id_upper_bound = (probability * (2**64 - 1)).ceil
20
+ @description = format('TraceIdRatioBased{%.6f}', probability)
21
+ end
22
+
23
+ # @api private
24
+ #
25
+ # See {Samplers}.
26
+ def should_sample?(trace_id:, parent_context:, links:, name:, kind:, attributes:)
27
+ # Ignored for sampling decision: parent_context:, links, name, kind, attributes.
28
+
29
+ if sample?(trace_id)
30
+ RECORD_AND_SAMPLE
31
+ else
32
+ DROP
33
+ end
34
+ end
35
+
36
+ private
37
+
38
+ def sample?(trace_id)
39
+ @probability == 1.0 || trace_id[8, 8].unpack1('Q>') < @id_upper_bound
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -16,12 +16,16 @@ module OpenTelemetry
16
16
  #
17
17
  # rubocop:disable Metrics/ClassLength
18
18
  class Span < OpenTelemetry::Trace::Span
19
+ DEFAULT_STATUS = OpenTelemetry::Trace::Status.new(OpenTelemetry::Trace::Status::UNSET)
20
+
21
+ private_constant(:DEFAULT_STATUS)
22
+
19
23
  # The following readers are intended for the use of SpanProcessors and
20
24
  # should not be considered part of the public interface for instrumentation.
21
- attr_reader :name, :status, :kind, :parent_span_id, :start_timestamp, :end_timestamp, :links, :library_resource
25
+ attr_reader :name, :status, :kind, :parent_span_id, :start_timestamp, :end_timestamp, :links, :resource, :instrumentation_library
22
26
 
23
27
  # Return a frozen copy of the current attributes. This is intended for
24
- # use of SpanProcesses and should not be considered part of the public
28
+ # use of SpanProcessors and should not be considered part of the public
25
29
  # interface for instrumentation.
26
30
  #
27
31
  # @return [Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>}] may be nil.
@@ -59,7 +63,7 @@ module OpenTelemetry
59
63
  # meanings.
60
64
  #
61
65
  # @param [String] key
62
- # @param [String, Boolean, Numeric] value
66
+ # @param [String, Boolean, Numeric, Array<String, Numeric, Boolean>] value
63
67
  #
64
68
  # @return [self] returns itself
65
69
  def set_attribute(key, value)
@@ -76,37 +80,29 @@ module OpenTelemetry
76
80
  end
77
81
  self
78
82
  end
83
+ alias []= set_attribute
79
84
 
80
- # Add an Event to a {Span}. This can be accomplished eagerly or lazily.
81
- # Lazy evaluation is useful when the event attributes are expensive to
82
- # build and where the cost can be avoided for an unsampled {Span}.
83
- #
84
- # Eager example:
85
- #
86
- # span.add_event(name: 'event', attributes: {'eager' => true})
85
+ # Add an Event to a {Span}.
87
86
  #
88
- # Lazy example:
87
+ # Example:
89
88
  #
90
- # span.add_event { OpenTelemetry::Trace::Event.new(name: 'event', attributes: {'eager' => false}) }
89
+ # span.add_event('event', attributes: {'eager' => true})
91
90
  #
92
91
  # Note that the OpenTelemetry project
93
92
  # {https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/data-semantic-conventions.md
94
93
  # documents} certain "standard event names and keys" which have
95
94
  # prescribed semantic meanings.
96
95
  #
97
- # @param [optional String] name Optional name of the event. This is
98
- # required if a block is not given.
96
+ # @param [String] name Name of the event.
99
97
  # @param [optional Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>}] attributes
100
98
  # One or more key:value pairs, where the keys must be strings and the
101
- # values may be string, boolean or numeric type. This argument should
102
- # only be used when passing in a name.
99
+ # values may be string, boolean or numeric type.
103
100
  # @param [optional Time] timestamp Optional timestamp for the event.
104
- # This argument should only be used when passing in a name.
105
101
  #
106
102
  # @return [self] returns itself
107
- def add_event(name: nil, attributes: nil, timestamp: nil)
103
+ def add_event(name, attributes: nil, timestamp: nil)
108
104
  super
109
- event = block_given? ? yield : OpenTelemetry::Trace::Event.new(name: name, attributes: attributes, timestamp: timestamp || Time.now)
105
+ event = Event.new(name: name, attributes: attributes, timestamp: timestamp || Time.now)
110
106
 
111
107
  @mutex.synchronize do
112
108
  if @ended
@@ -120,18 +116,18 @@ module OpenTelemetry
120
116
  self
121
117
  end
122
118
 
123
- # Record an error during the execution of this span. Multiple errors
119
+ # Record an exception during the execution of this span. Multiple exceptions
124
120
  # can be recorded on a span.
125
121
  #
126
- # @param [Exception] error The error to be recorded
122
+ # @param [Exception] exception The exception to be recorded
127
123
  #
128
124
  # @return [void]
129
- def record_error(error)
130
- add_event(name: 'error',
125
+ def record_exception(exception)
126
+ add_event('exception',
131
127
  attributes: {
132
- 'error.type' => error.class.to_s,
133
- 'error.message' => error.message,
134
- 'error.stack' => error.backtrace.join("\n")
128
+ 'exception.type' => exception.class.to_s,
129
+ 'exception.message' => exception.message,
130
+ 'exception.stacktrace' => exception.full_message(highlight: false, order: :top)
135
131
  })
136
132
  end
137
133
 
@@ -227,7 +223,6 @@ module OpenTelemetry
227
223
  @kind,
228
224
  @status,
229
225
  @parent_span_id,
230
- @child_count,
231
226
  @total_recorded_attributes,
232
227
  @total_recorded_events,
233
228
  @total_recorded_links,
@@ -236,15 +231,17 @@ module OpenTelemetry
236
231
  @attributes,
237
232
  @links,
238
233
  @events,
239
- @library_resource,
234
+ @resource,
235
+ @instrumentation_library,
240
236
  context.span_id,
241
237
  context.trace_id,
242
- context.trace_flags
238
+ context.trace_flags,
239
+ context.tracestate
243
240
  )
244
241
  end
245
242
 
246
243
  # @api private
247
- def initialize(context, name, kind, parent_span_id, trace_config, span_processor, attributes, links, start_timestamp, library_resource) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
244
+ def initialize(context, parent_context, name, kind, parent_span_id, trace_config, span_processor, attributes, links, start_timestamp, resource, instrumentation_library) # rubocop:disable Metrics/AbcSize
248
245
  super(span_context: context)
249
246
  @mutex = Mutex.new
250
247
  @name = name
@@ -252,10 +249,10 @@ module OpenTelemetry
252
249
  @parent_span_id = parent_span_id.freeze || OpenTelemetry::Trace::INVALID_SPAN_ID
253
250
  @trace_config = trace_config
254
251
  @span_processor = span_processor
255
- @library_resource = library_resource
252
+ @resource = resource
253
+ @instrumentation_library = instrumentation_library
256
254
  @ended = false
257
- @status = nil
258
- @child_count = 0
255
+ @status = DEFAULT_STATUS
259
256
  @total_recorded_events = 0
260
257
  @total_recorded_links = links&.size || 0
261
258
  @total_recorded_attributes = attributes&.size || 0
@@ -265,7 +262,7 @@ module OpenTelemetry
265
262
  trim_span_attributes(@attributes)
266
263
  @events = nil
267
264
  @links = trim_links(links, trace_config.max_links_count, trace_config.max_attributes_per_link)
268
- @span_processor.on_start(self)
265
+ @span_processor.on_start(self, parent_context)
269
266
  end
270
267
 
271
268
  # TODO: Java implementation overrides finalize to log if a span isn't finished.
@@ -322,7 +319,7 @@ module OpenTelemetry
322
319
  attrs.keep_if { |key, value| Internal.valid_key?(key) && Internal.valid_value?(value) }
323
320
  excess = attrs.size - max_attributes_per_event
324
321
  excess.times { attrs.shift } if excess.positive?
325
- event = OpenTelemetry::Trace::Event.new(name: event.name, attributes: attrs, timestamp: event.timestamp)
322
+ event = Event.new(name: event.name, attributes: attrs, timestamp: event.timestamp)
326
323
  end
327
324
  events << event
328
325
  end
@@ -14,7 +14,6 @@ module OpenTelemetry
14
14
  :kind,
15
15
  :status,
16
16
  :parent_span_id,
17
- :child_count,
18
17
  :total_recorded_attributes,
19
18
  :total_recorded_events,
20
19
  :total_recorded_links,
@@ -23,10 +22,26 @@ module OpenTelemetry
23
22
  :attributes,
24
23
  :links,
25
24
  :events,
26
- :library_resource,
25
+ :resource,
26
+ :instrumentation_library,
27
27
  :span_id,
28
28
  :trace_id,
29
- :trace_flags)
29
+ :trace_flags,
30
+ :tracestate) do
31
+ # Returns the lowercase [hex encoded](https://tools.ietf.org/html/rfc4648#section-8) span ID.
32
+ #
33
+ # @return [String] A 16-hex-character lowercase string.
34
+ def hex_span_id
35
+ span_id.unpack1('H*')
36
+ end
37
+
38
+ # Returns the lowercase [hex encoded](https://tools.ietf.org/html/rfc4648#section-8) trace ID.
39
+ #
40
+ # @return [String] A 32-hex-character lowercase string.
41
+ def hex_trace_id
42
+ trace_id.unpack1('H*')
43
+ end
44
+ end
30
45
  end
31
46
  end
32
47
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2019 OpenTelemetry Authors
3
+ # Copyright 2020 OpenTelemetry Authors
4
4
  #
5
5
  # SPDX-License-Identifier: Apache-2.0
6
6
 
@@ -11,6 +11,7 @@ module OpenTelemetry
11
11
  class Tracer < OpenTelemetry::Trace::Tracer
12
12
  attr_reader :name
13
13
  attr_reader :version
14
+ attr_reader :tracer_provider
14
15
 
15
16
  # @api private
16
17
  #
@@ -18,44 +19,56 @@ module OpenTelemetry
18
19
  #
19
20
  # @param [String] name Instrumentation package name
20
21
  # @param [String] version Instrumentation package version
22
+ # @param [TracerProvider] tracer_provider TracerProvider that initialized the tracer
21
23
  #
22
24
  # @return [Tracer]
23
- def initialize(name, version)
25
+ def initialize(name, version, tracer_provider)
24
26
  @name = name
25
27
  @version = version
26
- @resource = Resources::Resource.create('name' => name, 'version' => version)
28
+ @instrumentation_library = InstrumentationLibrary.new(name, version)
29
+ @tracer_provider = tracer_provider
27
30
  end
28
31
 
29
32
  def start_root_span(name, attributes: nil, links: nil, start_timestamp: nil, kind: nil)
30
- start_span(name, with_parent_context: Context.empty, attributes: attributes, links: links, start_timestamp: start_timestamp, kind: kind)
33
+ start_span(name, with_parent: Context.empty, attributes: attributes, links: links, start_timestamp: start_timestamp, kind: kind)
31
34
  end
32
35
 
33
- def start_span(name, with_parent: nil, with_parent_context: nil, attributes: nil, links: nil, start_timestamp: nil, kind: nil)
36
+ def start_span(name, with_parent: nil, attributes: nil, links: nil, start_timestamp: nil, kind: nil) # rubocop:disable Metrics/AbcSize
34
37
  name ||= 'empty'
35
38
 
36
- parent_span_context = with_parent&.context || active_span_context(with_parent_context)
39
+ with_parent ||= Context.current
40
+ parent_span_context = current_span(with_parent).context
37
41
  parent_span_context = nil unless parent_span_context.valid?
38
42
  parent_span_id = parent_span_context&.span_id
39
43
  tracestate = parent_span_context&.tracestate
40
44
  trace_id = parent_span_context&.trace_id
41
45
  trace_id ||= OpenTelemetry::Trace.generate_trace_id
42
- span_id = OpenTelemetry::Trace.generate_span_id
43
- sampler = OpenTelemetry.tracer_provider.active_trace_config.sampler
44
- result = sampler.call(trace_id: trace_id, span_id: span_id, parent_context: parent_span_context, links: links, name: name, kind: kind, attributes: attributes)
45
-
46
- internal_create_span(result, name, kind, trace_id, span_id, parent_span_id, attributes, links, start_timestamp, tracestate)
46
+ sampler = tracer_provider.active_trace_config.sampler
47
+ result = sampler.should_sample?(trace_id: trace_id, parent_context: parent_span_context, links: links, name: name, kind: kind, attributes: attributes)
48
+ internal_create_span(result, name, kind, trace_id, parent_span_id, attributes, links, start_timestamp, tracestate, with_parent)
47
49
  end
48
50
 
49
51
  private
50
52
 
51
- def internal_create_span(result, name, kind, trace_id, span_id, parent_span_id, attributes, links, start_timestamp, tracestate) # rubocop:disable Metrics/AbcSize
52
- if result.recording? && !OpenTelemetry.tracer_provider.stopped?
53
+ def internal_create_span(result, name, kind, trace_id, parent_span_id, attributes, links, start_timestamp, tracestate, parent_context) # rubocop:disable Metrics/AbcSize
54
+ if result.recording? && !tracer_provider.stopped?
53
55
  trace_flags = result.sampled? ? OpenTelemetry::Trace::TraceFlags::SAMPLED : OpenTelemetry::Trace::TraceFlags::DEFAULT
54
56
  context = OpenTelemetry::Trace::SpanContext.new(trace_id: trace_id, trace_flags: trace_flags, tracestate: tracestate)
55
57
  attributes = attributes&.merge(result.attributes) || result.attributes
56
- active_trace_config = OpenTelemetry.tracer_provider.active_trace_config
57
- active_span_processor = OpenTelemetry.tracer_provider.active_span_processor
58
- Span.new(context, name, kind, parent_span_id, active_trace_config, active_span_processor, attributes, links, start_timestamp || Time.now, @resource)
58
+ Span.new(
59
+ context,
60
+ parent_context,
61
+ name,
62
+ kind,
63
+ parent_span_id,
64
+ tracer_provider.active_trace_config,
65
+ tracer_provider.active_span_processor,
66
+ attributes,
67
+ links,
68
+ start_timestamp || Time.now,
69
+ tracer_provider.resource,
70
+ @instrumentation_library
71
+ )
59
72
  else
60
73
  OpenTelemetry::Trace::Span.new(span_context: OpenTelemetry::Trace::SpanContext.new(trace_id: trace_id))
61
74
  end
@@ -13,20 +13,20 @@ module OpenTelemetry
13
13
  private_constant(:Key)
14
14
 
15
15
  attr_accessor :active_trace_config
16
- attr_reader :active_span_processor
17
- attr_reader :stopped
16
+ attr_reader :active_span_processor, :stopped, :resource
18
17
  alias stopped? stopped
19
18
 
20
19
  # Returns a new {TracerProvider} instance.
21
20
  #
22
21
  # @return [TracerProvider]
23
- def initialize
22
+ def initialize(resource = OpenTelemetry::SDK::Resources::Resource.create)
24
23
  @mutex = Mutex.new
25
24
  @registry = {}
26
25
  @active_span_processor = NoopSpanProcessor.instance
27
26
  @active_trace_config = Config::TraceConfig::DEFAULT
28
27
  @registered_span_processors = []
29
28
  @stopped = false
29
+ @resource = resource
30
30
  end
31
31
 
32
32
  # Returns a {Tracer} instance.
@@ -38,7 +38,7 @@ module OpenTelemetry
38
38
  def tracer(name = nil, version = nil)
39
39
  name ||= ''
40
40
  version ||= ''
41
- @mutex.synchronize { @registry[Key.new(name, version)] ||= Tracer.new(name, version) }
41
+ @mutex.synchronize { @registry[Key.new(name, version)] ||= Tracer.new(name, version, self) }
42
42
  end
43
43
 
44
44
  # Attempts to stop all the activity for this {Tracer}. Calls
@@ -7,6 +7,6 @@
7
7
  module OpenTelemetry
8
8
  module SDK
9
9
  ## Current OpenTelemetry version
10
- VERSION = '0.3.0'
10
+ VERSION = '0.7.0'
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.3.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-03 00:00:00.000000000 Z
11
+ date: 2020-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.3.0
19
+ version: 0.7.0
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.3.0
26
+ version: 0.7.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -149,16 +149,19 @@ files:
149
149
  - README.md
150
150
  - lib/opentelemetry-sdk.rb
151
151
  - lib/opentelemetry/sdk.rb
152
+ - lib/opentelemetry/sdk/baggage.rb
153
+ - lib/opentelemetry/sdk/baggage/builder.rb
154
+ - lib/opentelemetry/sdk/baggage/manager.rb
152
155
  - lib/opentelemetry/sdk/configurator.rb
153
- - lib/opentelemetry/sdk/correlation_context.rb
154
- - lib/opentelemetry/sdk/correlation_context/builder.rb
155
- - lib/opentelemetry/sdk/correlation_context/manager.rb
156
+ - lib/opentelemetry/sdk/instrumentation_library.rb
156
157
  - lib/opentelemetry/sdk/internal.rb
157
158
  - lib/opentelemetry/sdk/resources.rb
159
+ - lib/opentelemetry/sdk/resources/constants.rb
158
160
  - lib/opentelemetry/sdk/resources/resource.rb
159
161
  - lib/opentelemetry/sdk/trace.rb
160
162
  - lib/opentelemetry/sdk/trace/config.rb
161
163
  - lib/opentelemetry/sdk/trace/config/trace_config.rb
164
+ - lib/opentelemetry/sdk/trace/event.rb
162
165
  - lib/opentelemetry/sdk/trace/export.rb
163
166
  - lib/opentelemetry/sdk/trace/export/batch_span_processor.rb
164
167
  - lib/opentelemetry/sdk/trace/export/console_span_exporter.rb
@@ -169,9 +172,11 @@ files:
169
172
  - lib/opentelemetry/sdk/trace/multi_span_processor.rb
170
173
  - lib/opentelemetry/sdk/trace/noop_span_processor.rb
171
174
  - lib/opentelemetry/sdk/trace/samplers.rb
175
+ - lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb
172
176
  - lib/opentelemetry/sdk/trace/samplers/decision.rb
173
- - lib/opentelemetry/sdk/trace/samplers/probability_sampler.rb
177
+ - lib/opentelemetry/sdk/trace/samplers/parent_based.rb
174
178
  - lib/opentelemetry/sdk/trace/samplers/result.rb
179
+ - lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb
175
180
  - lib/opentelemetry/sdk/trace/span.rb
176
181
  - lib/opentelemetry/sdk/trace/span_data.rb
177
182
  - lib/opentelemetry/sdk/trace/tracer.rb
@@ -189,14 +194,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
189
194
  requirements:
190
195
  - - ">="
191
196
  - !ruby/object:Gem::Version
192
- version: 2.4.0
197
+ version: 2.5.0
193
198
  required_rubygems_version: !ruby/object:Gem::Requirement
194
199
  requirements:
195
200
  - - ">="
196
201
  - !ruby/object:Gem::Version
197
202
  version: '0'
198
203
  requirements: []
199
- rubygems_version: 3.0.3
204
+ rubygems_version: 3.1.4
200
205
  signing_key:
201
206
  specification_version: 4
202
207
  summary: A stats collection and distributed tracing framework