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 +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/opentelemetry/context/propagation/composite_text_map_propagator.rb +1 -1
- data/lib/opentelemetry/context/propagation/rack_env_getter.rb +2 -2
- data/lib/opentelemetry/trace/propagation/trace_context/text_map_propagator.rb +5 -2
- data/lib/opentelemetry/trace/status.rb +1 -1
- data/lib/opentelemetry/trace/trace_flags.rb +1 -1
- data/lib/opentelemetry/trace/tracer.rb +2 -2
- data/lib/opentelemetry/trace/tracestate.rb +5 -2
- data/lib/opentelemetry/trace.rb +3 -13
- data/lib/opentelemetry/version.rb +1 -1
- data/lib/opentelemetry.rb +1 -1
- metadata +21 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5400a18cd6777fa998c3d664fdc51842c56ea59afe213529bce195c0bb41e4ba
|
4
|
+
data.tar.gz: bd680b47e192fced89f66b6cf5c088247604f2126cc39663eba1d15eba1bcba6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
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
|
-
|
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
|
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
|
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
|
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
|
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
|
-
|
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
|
data/lib/opentelemetry/trace.rb
CHANGED
@@ -13,17 +13,7 @@ module OpenTelemetry
|
|
13
13
|
|
14
14
|
CURRENT_SPAN_KEY = Context.create_key('current-span')
|
15
15
|
|
16
|
-
|
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 =
|
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 =
|
41
|
+
id = Random.bytes(8)
|
52
42
|
return id unless id == INVALID_SPAN_ID
|
53
43
|
end
|
54
44
|
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(
|
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
|
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:
|
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:
|
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:
|
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
|
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
|
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.
|
216
|
+
version: 2.6.0
|
203
217
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
204
218
|
requirements:
|
205
219
|
- - ">="
|