opentelemetry-api 1.0.2 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 85960a6afb5657aa62490a88b174a18f17592ef4bff6b0be5a4dc07cd86f50fd
4
- data.tar.gz: e9f6492ede00c699ccb7d2d05a6bb161f37196be55e5a73830b6799ad6a1af5e
3
+ metadata.gz: fc9808f2db83db063b4a49673c59e17e6f498d059fd9dcf5308d8536adb6ed3d
4
+ data.tar.gz: 88b27d2155fb7bc91d43011e570f845b80047f78ec1e20a216e5e08060d0fc34
5
5
  SHA512:
6
- metadata.gz: '09097da2630ecd44d805690f28ddb8ea65ad59b70dfc40031f85fb271abf46213b37b44463d5430853d7a033d5e7a4f52a72304c4236575a0a29c8940231d013'
7
- data.tar.gz: e7aebf486eb2021ee30ea4045f343e02bdddb49c20a9feeb8973c394aa0cdc55c0474ff3cd5e7693f3f620432f6c5db9a9beb3a4e10b49a1b5056e48d0588470
6
+ metadata.gz: 74fc1f613d43cd72a567fb95b797293effa4a9013837c68ae9e0bb151033543a61d12d6c4c24168374177faafd5645f1b8c9576b443dac640f3658a29ac2c512
7
+ data.tar.gz: d2ba72e43b1dc44f1a9780d704b2f69785d3ba66dfb5308c6777fcab61ad7d50f181b32e95690e770e14a941c7212d8afa1ffd5caf640c8a0a23459a2dd95246
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Release History: opentelemetry-api
2
2
 
3
+ ### v1.2.0 / 2023-06-08
4
+
5
+ * BREAKING CHANGE: Remove support for EoL Ruby 2.7
6
+
7
+ * ADDED: Remove support for EoL Ruby 2.7
8
+
9
+ ### v1.1.0 / 2022-09-14
10
+
11
+ * ADDED: Consistent probability sampler
12
+ * FIXED: Get API onto rubocop 1.3
13
+
3
14
  ### v1.0.2 / 2022-05-02
4
15
 
5
16
  * FIXED: Text map propagator extraction should use argument context
@@ -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
@@ -22,7 +22,7 @@ module OpenTelemetry
22
22
  MAX_VERSION = 254
23
23
  private_constant :MAX_VERSION
24
24
 
25
- REGEXP = /^(?<version>[A-Fa-f0-9]{2})-(?<trace_id>[A-Fa-f0-9]{32})-(?<span_id>[A-Fa-f0-9]{16})-(?<flags>[A-Fa-f0-9]{2})(?<ignored>-.*)?$/.freeze
25
+ REGEXP = /^(?<version>[A-Fa-f0-9]{2})-(?<trace_id>[A-Fa-f0-9]{32})-(?<span_id>[A-Fa-f0-9]{16})-(?<flags>[A-Fa-f0-9]{2})(?<ignored>-.*)?$/
26
26
  private_constant :REGEXP
27
27
 
28
28
  INVALID_TRACE_ID = OpenTelemetry::Trace::SpanContext::INVALID.hex_trace_id
@@ -115,7 +115,7 @@ module OpenTelemetry
115
115
 
116
116
  # Sets the Status to the Span
117
117
  #
118
- # If used, this will override the default Span status. Default is OK.
118
+ # If used, this will override the default Span status. Default status is unset.
119
119
  #
120
120
  # Only the value of the last call will be recorded, and implementations
121
121
  # are free to ignore previous calls.
@@ -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
  #
@@ -63,7 +63,7 @@ module OpenTelemetry
63
63
 
64
64
  MAX_MEMBER_COUNT = 32 # Defined by https://www.w3.org/TR/trace-context/
65
65
  VALID_KEY = Regexp.union(%r(^[a-z][a-z0-9_\-*/]{,255}$), %r(^[a-z0-9][a-z0-9_\-*/]{,240}@[a-z][a-z0-9_\-*/]{,13}$)).freeze
66
- VALID_VALUE = /^[ -~&&[^,=]]{,255}[!-~&&[^,=]]$/.freeze
66
+ VALID_VALUE = /^[ -~&&[^,=]]{,255}[!-~&&[^,=]]$/
67
67
  private_constant(:MAX_MEMBER_COUNT, :VALID_KEY, :VALID_VALUE)
68
68
 
69
69
  # @api private
@@ -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.2'
9
+ VERSION = '1.2.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.2
4
+ version: 1.2.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: 2022-05-02 00:00:00.000000000 Z
11
+ date: 2023-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ipsa
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.73.0
103
+ version: '1.30'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.73.0
110
+ version: '1.30'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: simplecov
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -201,10 +201,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
201
201
  licenses:
202
202
  - Apache-2.0
203
203
  metadata:
204
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-api/v1.0.2/file.CHANGELOG.html
204
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-api/v1.2.0/file.CHANGELOG.html
205
205
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/api
206
206
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
207
- documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-api/v1.0.2
207
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-api/v1.2.0
208
208
  post_install_message:
209
209
  rdoc_options: []
210
210
  require_paths:
@@ -213,14 +213,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
213
213
  requirements:
214
214
  - - ">="
215
215
  - !ruby/object:Gem::Version
216
- version: 2.5.0
216
+ version: '3.0'
217
217
  required_rubygems_version: !ruby/object:Gem::Requirement
218
218
  requirements:
219
219
  - - ">="
220
220
  - !ruby/object:Gem::Version
221
221
  version: '0'
222
222
  requirements: []
223
- rubygems_version: 3.1.6
223
+ rubygems_version: 3.2.33
224
224
  signing_key:
225
225
  specification_version: 4
226
226
  summary: A stats collection and distributed tracing framework