opentelemetry-api 1.0.1 → 1.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b78ad94bb13917c6a8b6202d920944c1465eb634dc9776559a84149974f55b82
4
- data.tar.gz: 2454e81466acd5b7334a6e46f6f442b3e6a0b1afa8c33bf0fa1efdbdabb74da3
3
+ metadata.gz: 5400a18cd6777fa998c3d664fdc51842c56ea59afe213529bce195c0bb41e4ba
4
+ data.tar.gz: bd680b47e192fced89f66b6cf5c088247604f2126cc39663eba1d15eba1bcba6
5
5
  SHA512:
6
- metadata.gz: 6db7e0e3d83ed9c232dc0a88ada719283c24d6fbc9e5863a44c90646b129cef129d1a04a3a7ea12d77aa692db5ba4dc69a96e95e4e680f0045d4917470dcbe29
7
- data.tar.gz: d534d75d903d70b3db8fb838b9cb8562910cab8c98586f551f71cd9abe46cba97167a5298afa8472edcf3a96613a06b22060e29daecb4bb2d5a37f02c21f0f05
6
+ metadata.gz: ef4da06339512cceeae5d8760e6d97e07a8686943ce3373da8c4051d5f0d80f8eb5d91d627306f07bb5a25e512ed20dbda006a7178f469d718193d1ce88265f7
7
+ data.tar.gz: d7d3685c0d113abaef164785d2609985c78eaa92755f87f60674f8fcc76e4e2f487bc108b638bf7790d1dd42894eb75118f5e23e8bf3cf09370a9b1fa5647909
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Release History: opentelemetry-api
2
2
 
3
+ ### v1.1.0 / 2022-09-14
4
+
5
+ * ADDED: Consistent probability sampler
6
+ * FIXED: Get API onto rubocop 1.3
7
+
8
+ ### v1.0.2 / 2022-05-02
9
+
10
+ * FIXED: Text map propagator extraction should use argument context
11
+
3
12
  ### v1.0.1 / 2021-12-01
4
13
 
5
14
  * FIXED: Deprecate api rack env getter
@@ -14,7 +14,7 @@ module OpenTelemetry
14
14
  # initialization.
15
15
  class CompositeTextMapPropagator
16
16
  class << self
17
- private :new # rubocop:disable Style/AccessModifierDeclarations
17
+ private :new
18
18
 
19
19
  # Returns a Propagator that extracts using the provided extractors
20
20
  # and injectors.
@@ -32,7 +32,7 @@ module OpenTelemetry
32
32
  private
33
33
 
34
34
  def to_rack_key(key)
35
- ret = 'HTTP_' + key
35
+ ret = 'HTTP_' + key # rubocop:disable Style/StringConcatenation
36
36
  ret.tr!('-', '_')
37
37
  ret.upcase!
38
38
  ret
@@ -40,7 +40,7 @@ module OpenTelemetry
40
40
 
41
41
  def from_rack_key(key)
42
42
  start = key.start_with?('HTTP_') ? 5 : 0
43
- ret = key[start..-1]
43
+ ret = key[start..]
44
44
  ret.tr!('_', '-')
45
45
  ret.downcase!
46
46
  ret
@@ -45,7 +45,10 @@ module OpenTelemetry
45
45
  # @return [Context] context updated with extracted baggage, or the original context
46
46
  # if extraction fails
47
47
  def extract(carrier, context: Context.current, getter: Context::Propagation.text_map_getter)
48
- tp = TraceParent.from_string(getter.get(carrier, TRACEPARENT_KEY))
48
+ trace_parent_value = getter.get(carrier, TRACEPARENT_KEY)
49
+ return context unless trace_parent_value
50
+
51
+ tp = TraceParent.from_string(trace_parent_value)
49
52
  tracestate = Tracestate.from_string(getter.get(carrier, TRACESTATE_KEY))
50
53
 
51
54
  span_context = Trace::SpanContext.new(trace_id: tp.trace_id,
@@ -54,7 +57,7 @@ module OpenTelemetry
54
57
  tracestate: tracestate,
55
58
  remote: true)
56
59
  span = OpenTelemetry::Trace.non_recording_span(span_context)
57
- OpenTelemetry::Trace.context_with_span(span)
60
+ OpenTelemetry::Trace.context_with_span(span, parent_context: context)
58
61
  rescue OpenTelemetry::Error
59
62
  context
60
63
  end
@@ -10,7 +10,7 @@ module OpenTelemetry
10
10
  # status code in conjunction with an optional descriptive message.
11
11
  class Status
12
12
  class << self
13
- private :new # rubocop:disable Style/AccessModifierDeclarations
13
+ private :new
14
14
 
15
15
  # Returns a newly created {Status} with code == UNSET and an optional
16
16
  # description.
@@ -11,7 +11,7 @@ module OpenTelemetry
11
11
  # boolean {sampled?} {https://www.w3.org/TR/trace-context/#trace-flags flag}.
12
12
  class TraceFlags
13
13
  class << self
14
- private :new # rubocop:disable Style/AccessModifierDeclarations
14
+ private :new
15
15
 
16
16
  # Returns a newly created {TraceFlags} with the specified flags.
17
17
  #
@@ -23,10 +23,10 @@ module OpenTelemetry
23
23
  # span and reraised.
24
24
  # @yield [span, context] yields the newly created span and a context containing the
25
25
  # span to the block.
26
- def in_span(name, attributes: nil, links: nil, start_timestamp: nil, kind: nil)
26
+ def in_span(name, attributes: nil, links: nil, start_timestamp: nil, kind: nil, &block)
27
27
  span = nil
28
28
  span = start_span(name, attributes: attributes, links: links, start_timestamp: start_timestamp, kind: kind)
29
- Trace.with_span(span) { |s, c| yield s, c }
29
+ Trace.with_span(span, &block)
30
30
  rescue Exception => e # rubocop:disable Lint/RescueException
31
31
  span&.record_exception(e)
32
32
  span&.status = Status.error("Unhandled exception of type: #{e.class}")
@@ -11,7 +11,7 @@ module OpenTelemetry
11
11
  # specification https://www.w3.org/TR/trace-context/
12
12
  class Tracestate
13
13
  class << self
14
- private :new # rubocop:disable Style/AccessModifierDeclarations
14
+ private :new
15
15
 
16
16
  # Returns a newly created Tracestate parsed from the header provided.
17
17
  #
@@ -100,7 +100,10 @@ module OpenTelemetry
100
100
  # @return [Tracestate] self, if unchanged, or a new Tracestate containing
101
101
  # the new or updated key/value pair.
102
102
  def set_value(key, value)
103
- return self unless VALID_KEY.match?(key) && VALID_VALUE.match?(value)
103
+ unless VALID_KEY.match?(key) && VALID_VALUE.match?(value)
104
+ OpenTelemetry.logger.debug("Invalid Tracestate member - #{key} : #{value}")
105
+ return self
106
+ end
104
107
 
105
108
  h = Hash[@hash]
106
109
  h[key] = value
@@ -13,17 +13,7 @@ module OpenTelemetry
13
13
 
14
14
  CURRENT_SPAN_KEY = Context.create_key('current-span')
15
15
 
16
- # Random number generator for generating IDs. This is an object that can
17
- # respond to `#bytes` and uses the system PRNG. The current logic is
18
- # compatible with Ruby 2.5 (which does not implement the `Random.bytes`
19
- # class method) and with Ruby 3.0+ (which deprecates `Random::DEFAULT`).
20
- # When we drop support for Ruby 2.5, this can simply be replaced with
21
- # the class `Random`.
22
- #
23
- # @return [#bytes]
24
- RANDOM = Random.respond_to?(:bytes) ? Random : Random::DEFAULT
25
-
26
- private_constant :CURRENT_SPAN_KEY, :RANDOM
16
+ private_constant :CURRENT_SPAN_KEY
27
17
 
28
18
  # An invalid trace identifier, a 16-byte string with all zero bytes.
29
19
  INVALID_TRACE_ID = ("\0" * 16).b
@@ -37,7 +27,7 @@ module OpenTelemetry
37
27
  # @return [String] a valid trace ID.
38
28
  def generate_trace_id
39
29
  loop do
40
- id = RANDOM.bytes(16)
30
+ id = Random.bytes(16)
41
31
  return id unless id == INVALID_TRACE_ID
42
32
  end
43
33
  end
@@ -48,7 +38,7 @@ module OpenTelemetry
48
38
  # @return [String] a valid span ID.
49
39
  def generate_span_id
50
40
  loop do
51
- id = RANDOM.bytes(8)
41
+ id = Random.bytes(8)
52
42
  return id unless id == INVALID_SPAN_ID
53
43
  end
54
44
  end
@@ -6,5 +6,5 @@
6
6
 
7
7
  module OpenTelemetry
8
8
  ## Current OpenTelemetry version
9
- VERSION = '1.0.1'
9
+ VERSION = '1.1.0'
10
10
  end
data/lib/opentelemetry.rb CHANGED
@@ -28,7 +28,7 @@ module OpenTelemetry
28
28
 
29
29
  # @return [Object, Logger] configured Logger or a default STDOUT Logger.
30
30
  def logger
31
- @logger ||= Logger.new(STDOUT, level: ENV['OTEL_LOG_LEVEL'] || Logger::INFO)
31
+ @logger ||= Logger.new($stdout, level: ENV['OTEL_LOG_LEVEL'] || Logger::INFO)
32
32
  end
33
33
 
34
34
  # @return [Callable] configured error handler or a default that logs the
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentelemetry-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.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: 2021-12-01 00:00:00.000000000 Z
11
+ date: 2022-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ipsa
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '5.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: opentelemetry-test-helpers
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rake
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +100,14 @@ dependencies:
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: 0.73.0
103
+ version: '1.30'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: 0.73.0
110
+ version: '1.30'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: simplecov
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -187,10 +201,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
187
201
  licenses:
188
202
  - Apache-2.0
189
203
  metadata:
190
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-api/v1.0.1/file.CHANGELOG.html
204
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-api/v1.1.0/file.CHANGELOG.html
191
205
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/api
192
206
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
193
- documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-api/v1.0.1
207
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-api/v1.1.0
194
208
  post_install_message:
195
209
  rdoc_options: []
196
210
  require_paths:
@@ -199,7 +213,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
199
213
  requirements:
200
214
  - - ">="
201
215
  - !ruby/object:Gem::Version
202
- version: 2.5.0
216
+ version: 2.6.0
203
217
  required_rubygems_version: !ruby/object:Gem::Requirement
204
218
  requirements:
205
219
  - - ">="