opentelemetry-sdk 0.4.0 → 0.8.0

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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +2 -2
  3. data/CHANGELOG.md +42 -0
  4. data/README.md +1 -1
  5. data/lib/opentelemetry/sdk.rb +4 -3
  6. data/lib/opentelemetry/sdk/baggage.rb +16 -0
  7. data/lib/opentelemetry/sdk/{correlation_context → baggage}/builder.rb +5 -5
  8. data/lib/opentelemetry/sdk/{correlation_context → baggage}/manager.rb +37 -27
  9. data/lib/opentelemetry/sdk/configurator.rb +73 -39
  10. data/lib/opentelemetry/sdk/instrumentation_library.rb +13 -0
  11. data/lib/opentelemetry/sdk/resources.rb +1 -0
  12. data/lib/opentelemetry/sdk/resources/constants.rb +120 -0
  13. data/lib/opentelemetry/sdk/resources/resource.rb +38 -19
  14. data/lib/opentelemetry/sdk/trace.rb +1 -0
  15. data/lib/opentelemetry/sdk/trace/config/trace_config.rb +3 -3
  16. data/lib/opentelemetry/sdk/trace/event.rb +48 -0
  17. data/lib/opentelemetry/sdk/trace/export.rb +9 -9
  18. data/lib/opentelemetry/sdk/trace/export/batch_span_processor.rb +49 -28
  19. data/lib/opentelemetry/sdk/trace/export/console_span_exporter.rb +3 -6
  20. data/lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb +6 -2
  21. data/lib/opentelemetry/sdk/trace/export/multi_span_exporter.rb +7 -8
  22. data/lib/opentelemetry/sdk/trace/export/noop_span_exporter.rb +2 -1
  23. data/lib/opentelemetry/sdk/trace/export/simple_span_processor.rb +13 -3
  24. data/lib/opentelemetry/sdk/trace/multi_span_processor.rb +12 -4
  25. data/lib/opentelemetry/sdk/trace/noop_span_processor.rb +15 -3
  26. data/lib/opentelemetry/sdk/trace/samplers.rb +52 -51
  27. data/lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb +33 -0
  28. data/lib/opentelemetry/sdk/trace/samplers/decision.rb +3 -3
  29. data/lib/opentelemetry/sdk/trace/samplers/parent_based.rb +53 -0
  30. data/lib/opentelemetry/sdk/trace/samplers/result.rb +3 -3
  31. data/lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb +45 -0
  32. data/lib/opentelemetry/sdk/trace/span.rb +33 -36
  33. data/lib/opentelemetry/sdk/trace/span_data.rb +18 -3
  34. data/lib/opentelemetry/sdk/trace/tracer.rb +36 -20
  35. data/lib/opentelemetry/sdk/trace/tracer_provider.rb +4 -4
  36. data/lib/opentelemetry/sdk/version.rb +1 -1
  37. metadata +19 -10
  38. data/lib/opentelemetry/sdk/correlation_context.rb +0 -16
  39. 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.
@@ -297,7 +294,7 @@ module OpenTelemetry
297
294
  attrs.keep_if { |key, value| Internal.valid_key?(key) && Internal.valid_value?(value) }
298
295
  excess = attrs.size - max_attributes_per_link
299
296
  excess.times { attrs.shift } if excess.positive?
300
- OpenTelemetry::Trace::Link.new(link.context, attrs)
297
+ OpenTelemetry::Trace::Link.new(link.span_context, attrs)
301
298
  end.freeze
302
299
  end
303
300
 
@@ -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,59 @@ 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)
37
- parent_span_context = nil unless parent_span_context.valid?
38
- parent_span_id = parent_span_context&.span_id
39
- tracestate = parent_span_context&.tracestate
40
- trace_id = parent_span_context&.trace_id
39
+ with_parent ||= Context.current
40
+ parent_span_context = OpenTelemetry::Trace.current_span(with_parent).context
41
+ if parent_span_context.valid?
42
+ parent_span_id = parent_span_context.span_id
43
+ tracestate = parent_span_context.tracestate
44
+ trace_id = parent_span_context.trace_id
45
+ else
46
+ parent_span_context = nil
47
+ end
41
48
  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)
49
+ sampler = tracer_provider.active_trace_config.sampler
50
+ result = sampler.should_sample?(trace_id: trace_id, parent_context: parent_span_context, links: links, name: name, kind: kind, attributes: attributes)
51
+ internal_create_span(result, name, kind, trace_id, parent_span_id, attributes, links, start_timestamp, tracestate, with_parent)
47
52
  end
48
53
 
49
54
  private
50
55
 
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?
56
+ def internal_create_span(result, name, kind, trace_id, parent_span_id, attributes, links, start_timestamp, tracestate, parent_context) # rubocop:disable Metrics/AbcSize
57
+ if result.recording? && !tracer_provider.stopped?
53
58
  trace_flags = result.sampled? ? OpenTelemetry::Trace::TraceFlags::SAMPLED : OpenTelemetry::Trace::TraceFlags::DEFAULT
54
59
  context = OpenTelemetry::Trace::SpanContext.new(trace_id: trace_id, trace_flags: trace_flags, tracestate: tracestate)
55
60
  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)
61
+ Span.new(
62
+ context,
63
+ parent_context,
64
+ name,
65
+ kind,
66
+ parent_span_id,
67
+ tracer_provider.active_trace_config,
68
+ tracer_provider.active_span_processor,
69
+ attributes,
70
+ links,
71
+ start_timestamp || Time.now,
72
+ tracer_provider.resource,
73
+ @instrumentation_library
74
+ )
59
75
  else
60
76
  OpenTelemetry::Trace::Span.new(span_context: OpenTelemetry::Trace::SpanContext.new(trace_id: trace_id))
61
77
  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.4.0'
10
+ VERSION = '0.8.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.4.0
4
+ version: 0.8.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-16 00:00:00.000000000 Z
11
+ date: 2020-10-27 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.4.0
19
+ version: 0.8.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.4.0
26
+ version: 0.8.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
@@ -180,7 +185,11 @@ files:
180
185
  homepage: https://github.com/open-telemetry/opentelemetry-ruby
181
186
  licenses:
182
187
  - Apache-2.0
183
- metadata: {}
188
+ metadata:
189
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v0.8.0/file.CHANGELOG.html
190
+ source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/master/sdk
191
+ bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
192
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v0.8.0
184
193
  post_install_message:
185
194
  rdoc_options: []
186
195
  require_paths:
@@ -196,7 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
205
  - !ruby/object:Gem::Version
197
206
  version: '0'
198
207
  requirements: []
199
- rubygems_version: 3.0.3
208
+ rubygems_version: 3.1.4
200
209
  signing_key:
201
210
  specification_version: 4
202
211
  summary: A stats collection and distributed tracing framework