opentelemetry-api 1.3.0 → 1.5.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: '0509aaf67f72cd7d6ba7159a652d49a8d2a7148826d4002f4e72f3885b55cd10'
4
- data.tar.gz: 90384fdee2ac1da4f82bb599cff64dc02ed717164fdb07d5414868119eea1a99
3
+ metadata.gz: c8e28fbff05b0990f518c27eddbadcbe497f98b4480182b328a6661994536f00
4
+ data.tar.gz: 8cbd61f00056f786f58e724eb9c621b7c3b537cd0eb9b86b6059986501b38261
5
5
  SHA512:
6
- metadata.gz: 825b4dcc60ecf0d8fdcdb045cd61097e8bb8a13932ffa98396ab3437c54b34c418520e848ed1cc9a51cffe6e96bb3b9833bb3f5d99005c2fb8a9c465fe2fb6c2
7
- data.tar.gz: a0877a33a52bda470349e4469d83193876a6c9f77104e5ad176cba517927a1c395e092c727fa06fb8667a48c75b912f0e3024bf3469d3e762a403c903f78a363
6
+ metadata.gz: 0bb2f4e8c9713f7d26c03023a204d247d25ff5eb16658543f240d76175146b652229fa0d98e419be574d656c5d359001f505dec51e7085a0296cd41aedb23fd0
7
+ data.tar.gz: 427cb2d644361b7163d401ee37c071dc6cbc8b8b0add760b8bfbad4dc1e33de6ac03b210a6d00ef225fc8ff265d6a6340ba7b70ecdc22699d9e60566b72c5ea0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Release History: opentelemetry-api
2
2
 
3
+ ### v1.5.0 / 2025-02-20
4
+
5
+ * ADDED: Suppport 3.1 Min Version
6
+ * FIXED: Use a Fiber attribute for Context
7
+
8
+ ### v1.4.0 / 2024-08-27
9
+
10
+ * ADDED: Include backtrace first line for better debug info
11
+
3
12
  ### v1.3.0 / 2024-07-24
4
13
 
5
14
  * ADDED: Add add_link to span api/sdk
@@ -71,7 +80,7 @@
71
80
 
72
81
  * BREAKING CHANGE: Remove optional parent_context from in_span [729](https://github.com/open-telemetry/opentelemetry-ruby/pull/729)
73
82
  * BREAKING CHANGE: Refactor Baggage to remove Noop* [800](https://github.com/open-telemetry/opentelemetry-ruby/pull/800)
74
- - The noop baggage manger has been removed.
83
+ - The noop baggage manager has been removed.
75
84
  - The baggage management methods are now available through OpenTelemetry::Baggage#method, previously OpenTelemetry.baggage#method
76
85
  * BREAKING CHANGE: Total order constraint on span.status= [805](https://github.com/open-telemetry/opentelemetry-ruby/pull/805)
77
86
  - The OpenTelemetry::Trace::Util::HttpToStatus module has been removed as it was incorrectly setting the span status to OK for codes codes in the range 100..399
data/README.md CHANGED
@@ -12,13 +12,16 @@ OpenTelemetry provides a single set of APIs, libraries, agents, and collector se
12
12
 
13
13
  The `opentelemetry-api` gem defines the core OpenTelemetry interfaces in the form of abstract classes and no-op implementations. That is, it defines interfaces and data types sufficient for a library or application to code against to produce telemetry data, but does not actually collect, analyze, or export the data.
14
14
 
15
- To collect and analyze telemetry data, *applications* should also install a concrete implementation of the API, such as the `opentelemetry-sdk` gem. However, *libraries* that produce telemetry data should depend only on `opentelemetry-api`, deferring the choise of concrete implementation to the application developer.
15
+ To collect and analyze telemetry data, *applications* should also
16
+ install a concrete implementation of the API, such as the
17
+ `opentelemetry-sdk` gem. However, *libraries* that produce telemetry
18
+ data should depend only on `opentelemetry-api`, deferring the choice of concrete implementation to the application developer.
16
19
 
17
20
  ## How do I get started?
18
21
 
19
22
  Install the gem using:
20
23
 
21
- ```
24
+ ```sh
22
25
  gem install opentelemetry-api
23
26
  ```
24
27
 
@@ -55,7 +58,6 @@ The OpenTelemetry Ruby gems are maintained by the OpenTelemetry-Ruby special int
55
58
 
56
59
  The `opentelemetry-api` gem is distributed under the Apache 2.0 license. See [LICENSE][license-github] for more information.
57
60
 
58
-
59
61
  [opentelemetry-home]: https://opentelemetry.io
60
62
  [bundler-home]: https://bundler.io
61
63
  [repo-github]: https://github.com/open-telemetry/opentelemetry-ruby
@@ -21,7 +21,7 @@ module OpenTelemetry
21
21
  # @param [String] key The key to store this value under
22
22
  # @param [String] value String value to be stored under key
23
23
  # @param [optional String] metadata This is here to store properties
24
- # received from other W3C Baggage impelmentations but is not exposed in
24
+ # received from other W3C Baggage implementations but is not exposed in
25
25
  # OpenTelemetry. This is condsidered private API and not for use by
26
26
  # end-users.
27
27
  def set_value(key, value, metadata: nil)
@@ -100,7 +100,7 @@ module OpenTelemetry
100
100
 
101
101
  def encode_value(key, entry)
102
102
  result = +"#{CGI.escape(key.to_s)}=#{CGI.escape(entry.value.to_s)}"
103
- # We preserve metadata recieved on extract and assume it's already formatted
103
+ # We preserve metadata received on extract and assume it's already formatted
104
104
  # for transport. It's sent as-is without further processing.
105
105
  result << ";#{entry.metadata}" if entry.metadata
106
106
  result
@@ -73,7 +73,7 @@ module OpenTelemetry
73
73
  # @param [String] key The key to store this value under
74
74
  # @param [String] value String value to be stored under key
75
75
  # @param [optional String] metadata This is here to store properties
76
- # received from other W3C Baggage impelmentations but is not exposed in
76
+ # received from other W3C Baggage implementations but is not exposed in
77
77
  # OpenTelemetry. This is condsidered private API and not for use by
78
78
  # end-users.
79
79
  # @param [optional Context] context The context to update with new
@@ -7,12 +7,13 @@
7
7
  require 'opentelemetry/context/key'
8
8
  require 'opentelemetry/context/propagation'
9
9
 
10
- module OpenTelemetry
10
+ module OpenTelemetry # rubocop:disable Style/Documentation
11
+ Fiber.attr_accessor :opentelemetry_context
12
+
11
13
  # Manages context on a per-fiber basis
12
14
  class Context
13
15
  EMPTY_ENTRIES = {}.freeze
14
- STACK_KEY = :__opentelemetry_context_storage__
15
- private_constant :EMPTY_ENTRIES, :STACK_KEY
16
+ private_constant :EMPTY_ENTRIES
16
17
 
17
18
  DetachError = Class.new(OpenTelemetry::Error)
18
19
 
@@ -113,11 +114,9 @@ module OpenTelemetry
113
114
  current.value(key)
114
115
  end
115
116
 
116
- # Clears the fiber-local Context stack. This allocates a new array for the
117
- # stack, which is important in some use-cases to avoid sharing the backing
118
- # array between fibers.
117
+ # Clears the fiber-local Context stack.
119
118
  def clear
120
- Thread.current[STACK_KEY] = []
119
+ Fiber.current.opentelemetry_context = []
121
120
  end
122
121
 
123
122
  def empty
@@ -127,7 +126,7 @@ module OpenTelemetry
127
126
  private
128
127
 
129
128
  def stack
130
- Thread.current[STACK_KEY] ||= []
129
+ Fiber.current.opentelemetry_context ||= []
131
130
  end
132
131
  end
133
132
 
@@ -10,7 +10,7 @@ require 'opentelemetry/trace/propagation/trace_context/text_map_propagator'
10
10
  module OpenTelemetry
11
11
  module Trace
12
12
  module Propagation
13
- # The TraceContext module contains injectors, extractors, and utilties
13
+ # The TraceContext module contains injectors, extractors, and utilities
14
14
  # for context propagation in the W3C Trace Context format.
15
15
  module TraceContext
16
16
  extend self
@@ -26,7 +26,7 @@ module OpenTelemetry
26
26
  # spans.
27
27
  PRODUCER = :producer
28
28
 
29
- # Indicates that the span describes consumer recieving a message from a broker. Unlike client
29
+ # Indicates that the span describes consumer receiving a message from a broker. Unlike client
30
30
  # and server, there is no direct critical path latency relationship between producer and
31
31
  # consumer spans.
32
32
  CONSUMER = :consumer
@@ -6,5 +6,5 @@
6
6
 
7
7
  module OpenTelemetry
8
8
  ## Current OpenTelemetry version
9
- VERSION = '1.3.0'
9
+ VERSION = '1.5.0'
10
10
  end
data/lib/opentelemetry.rb CHANGED
@@ -34,7 +34,7 @@ module OpenTelemetry
34
34
  # @return [Callable] configured error handler or a default that logs the
35
35
  # exception and message at ERROR level.
36
36
  def error_handler
37
- @error_handler ||= ->(exception: nil, message: nil) { logger.error("OpenTelemetry error: #{[message, exception&.message].compact.join(' - ')}") }
37
+ @error_handler ||= ->(exception: nil, message: nil) { logger.error("OpenTelemetry error: #{[message, exception&.message, exception&.backtrace&.first].compact.join(' - ')}") }
38
38
  end
39
39
 
40
40
  # Handles an error by calling the configured error_handler.
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.3.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-24 00:00:00.000000000 Z
11
+ date: 2025-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ipsa
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.17'
41
+ - !ruby/object:Gem::Dependency
42
+ name: concurrent-ruby
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: faraday
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +114,14 @@ dependencies:
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '1.30'
117
+ version: '1.65'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '1.30'
124
+ version: '1.65'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: simplecov
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -201,11 +215,11 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
201
215
  licenses:
202
216
  - Apache-2.0
203
217
  metadata:
204
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-api/v1.3.0/file.CHANGELOG.html
218
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-api/v1.5.0/file.CHANGELOG.html
205
219
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/api
206
220
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
207
- documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-api/v1.3.0
208
- post_install_message:
221
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-api/v1.5.0
222
+ post_install_message:
209
223
  rdoc_options: []
210
224
  require_paths:
211
225
  - lib
@@ -213,15 +227,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
213
227
  requirements:
214
228
  - - ">="
215
229
  - !ruby/object:Gem::Version
216
- version: '3.0'
230
+ version: '3.1'
217
231
  required_rubygems_version: !ruby/object:Gem::Requirement
218
232
  requirements:
219
233
  - - ">="
220
234
  - !ruby/object:Gem::Version
221
235
  version: '0'
222
236
  requirements: []
223
- rubygems_version: 3.2.33
224
- signing_key:
237
+ rubygems_version: 3.3.27
238
+ signing_key:
225
239
  specification_version: 4
226
240
  summary: A stats collection and distributed tracing framework
227
241
  test_files: []