opentelemetry-sdk 0.9.0 → 0.10.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 +6 -0
- data/lib/opentelemetry/sdk/trace/samplers.rb +2 -9
- data/lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb +4 -5
- data/lib/opentelemetry/sdk/trace/samplers/result.rb +13 -2
- data/lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb +3 -4
- data/lib/opentelemetry/sdk/trace/tracer.rb +3 -4
- data/lib/opentelemetry/sdk/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5dd502ccc29f875d2af8691a99945f9ff6fcea5505ec0541fffb9798cc8406ec
|
4
|
+
data.tar.gz: 32c4805d198ad93f29c8b51ebd0d0b2fa0c5d13b5bfc595c22b12762d954259a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a10fb701cec552ce95f61cdbc124dc82f962cbab938e8c41b897d23d5ad8f778b6487605d35d09876fa8259612cef6f570e8991ba8258dcd0ed2ef9af82040a
|
7
|
+
data.tar.gz: ec7430fe3bd0ab0f0999c9d22c5d6addbcb45bc37e31b2eb83cb9ddc492c900cf5bf5acd2721c5eadaf1f58caf358d8a0607d7a08aeec7a8de09569f9badb5be
|
data/CHANGELOG.md
CHANGED
@@ -38,18 +38,11 @@ module OpenTelemetry
|
|
38
38
|
# to the {Span} to be created. Can be nil.
|
39
39
|
# @return [Result] The sampling result.
|
40
40
|
module Samplers
|
41
|
-
RECORD_AND_SAMPLE = Result.new(decision: Decision::RECORD_AND_SAMPLE)
|
42
|
-
DROP = Result.new(decision: Decision::DROP)
|
43
|
-
RECORD_ONLY = Result.new(decision: Decision::RECORD_ONLY)
|
44
|
-
SAMPLING_HINTS = [Decision::DROP, Decision::RECORD_ONLY, Decision::RECORD_AND_SAMPLE].freeze
|
45
|
-
|
46
|
-
private_constant(:RECORD_AND_SAMPLE, :DROP, :RECORD_ONLY, :SAMPLING_HINTS)
|
47
|
-
|
48
41
|
# Returns a {Result} with {Decision::RECORD_AND_SAMPLE}.
|
49
|
-
ALWAYS_ON = ConstantSampler.new(
|
42
|
+
ALWAYS_ON = ConstantSampler.new(decision: Decision::RECORD_AND_SAMPLE, description: 'AlwaysOnSampler')
|
50
43
|
|
51
44
|
# Returns a {Result} with {Decision::DROP}.
|
52
|
-
ALWAYS_OFF = ConstantSampler.new(
|
45
|
+
ALWAYS_OFF = ConstantSampler.new(decision: Decision::DROP, description: 'AlwaysOffSampler')
|
53
46
|
|
54
47
|
# Returns a new sampler. It delegates to samplers according to the following rules:
|
55
48
|
#
|
@@ -10,12 +10,12 @@ module OpenTelemetry
|
|
10
10
|
module Samplers
|
11
11
|
# @api private
|
12
12
|
#
|
13
|
-
# Implements a sampler returning a constant
|
13
|
+
# Implements a sampler returning a result with a constant decision.
|
14
14
|
class ConstantSampler
|
15
15
|
attr_reader :description
|
16
16
|
|
17
|
-
def initialize(
|
18
|
-
@
|
17
|
+
def initialize(decision:, description:)
|
18
|
+
@decision = decision
|
19
19
|
@description = description
|
20
20
|
end
|
21
21
|
|
@@ -23,8 +23,7 @@ module OpenTelemetry
|
|
23
23
|
#
|
24
24
|
# See {Samplers}.
|
25
25
|
def should_sample?(trace_id:, parent_context:, links:, name:, kind:, attributes:)
|
26
|
-
|
27
|
-
@result
|
26
|
+
Result.new(decision: @decision, tracestate: OpenTelemetry::Trace.current_span(parent_context).context.tracestate)
|
28
27
|
end
|
29
28
|
end
|
30
29
|
end
|
@@ -17,11 +17,16 @@ module OpenTelemetry
|
|
17
17
|
DECISIONS = [Decision::RECORD_ONLY, Decision::DROP, Decision::RECORD_AND_SAMPLE].freeze
|
18
18
|
private_constant(:EMPTY_HASH, :DECISIONS)
|
19
19
|
|
20
|
-
# Returns a frozen hash of attributes to be attached span.
|
20
|
+
# Returns a frozen hash of attributes to be attached to the span.
|
21
21
|
#
|
22
22
|
# @return [Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>}]
|
23
23
|
attr_reader :attributes
|
24
24
|
|
25
|
+
# Returns a Tracestate to be associated with the span.
|
26
|
+
#
|
27
|
+
# @return [Tracestate]
|
28
|
+
attr_reader :tracestate
|
29
|
+
|
25
30
|
# Returns a new sampling result with the specified decision and
|
26
31
|
# attributes.
|
27
32
|
#
|
@@ -30,9 +35,15 @@ module OpenTelemetry
|
|
30
35
|
# @param [optional Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>}]
|
31
36
|
# attributes A frozen or freezable hash containing attributes to be
|
32
37
|
# attached to the span.
|
33
|
-
|
38
|
+
# @param [Tracestate] tracestate A Tracestate that will be associated
|
39
|
+
# with the Span through the new SpanContext. If the sampler returns
|
40
|
+
# an empty Tracestate here, the Tracestate will be cleared, so
|
41
|
+
# samplers SHOULD normally return the passed-in Tracestate if they
|
42
|
+
# do not intend to change it.
|
43
|
+
def initialize(decision:, attributes: nil, tracestate:)
|
34
44
|
@decision = decision
|
35
45
|
@attributes = attributes.freeze || EMPTY_HASH
|
46
|
+
@tracestate = tracestate
|
36
47
|
end
|
37
48
|
|
38
49
|
# Returns true if this span should be sampled.
|
@@ -24,12 +24,11 @@ module OpenTelemetry
|
|
24
24
|
#
|
25
25
|
# See {Samplers}.
|
26
26
|
def should_sample?(trace_id:, parent_context:, links:, name:, kind:, attributes:)
|
27
|
-
|
28
|
-
|
27
|
+
tracestate = OpenTelemetry::Trace.current_span(parent_context).context.tracestate
|
29
28
|
if sample?(trace_id)
|
30
|
-
RECORD_AND_SAMPLE
|
29
|
+
Result.new(decision: Decision::RECORD_AND_SAMPLE, tracestate: tracestate)
|
31
30
|
else
|
32
|
-
DROP
|
31
|
+
Result.new(decision: Decision::DROP, tracestate: tracestate)
|
33
32
|
end
|
34
33
|
end
|
35
34
|
|
@@ -40,21 +40,20 @@ module OpenTelemetry
|
|
40
40
|
parent_span_context = OpenTelemetry::Trace.current_span(with_parent).context
|
41
41
|
if parent_span_context.valid?
|
42
42
|
parent_span_id = parent_span_context.span_id
|
43
|
-
tracestate = parent_span_context.tracestate
|
44
43
|
trace_id = parent_span_context.trace_id
|
45
44
|
end
|
46
45
|
trace_id ||= OpenTelemetry::Trace.generate_trace_id
|
47
46
|
sampler = tracer_provider.active_trace_config.sampler
|
48
47
|
result = sampler.should_sample?(trace_id: trace_id, parent_context: with_parent, links: links, name: name, kind: kind, attributes: attributes)
|
49
|
-
internal_create_span(result, name, kind, trace_id, parent_span_id, attributes, links, start_timestamp,
|
48
|
+
internal_create_span(result, name, kind, trace_id, parent_span_id, attributes, links, start_timestamp, with_parent)
|
50
49
|
end
|
51
50
|
|
52
51
|
private
|
53
52
|
|
54
|
-
def internal_create_span(result, name, kind, trace_id, parent_span_id, attributes, links, start_timestamp,
|
53
|
+
def internal_create_span(result, name, kind, trace_id, parent_span_id, attributes, links, start_timestamp, parent_context) # rubocop:disable Metrics/AbcSize
|
55
54
|
if result.recording? && !tracer_provider.stopped?
|
56
55
|
trace_flags = result.sampled? ? OpenTelemetry::Trace::TraceFlags::SAMPLED : OpenTelemetry::Trace::TraceFlags::DEFAULT
|
57
|
-
context = OpenTelemetry::Trace::SpanContext.new(trace_id: trace_id, trace_flags: trace_flags, tracestate: tracestate)
|
56
|
+
context = OpenTelemetry::Trace::SpanContext.new(trace_id: trace_id, trace_flags: trace_flags, tracestate: result.tracestate)
|
58
57
|
attributes = attributes&.merge(result.attributes) || result.attributes
|
59
58
|
Span.new(
|
60
59
|
context,
|
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
|
+
version: 0.10.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-
|
11
|
+
date: 2020-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opentelemetry-api
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.10.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.
|
26
|
+
version: 0.10.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: opentelemetry-common
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.10.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.10.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -200,10 +200,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
|
|
200
200
|
licenses:
|
201
201
|
- Apache-2.0
|
202
202
|
metadata:
|
203
|
-
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v0.
|
203
|
+
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v0.10.0/file.CHANGELOG.html
|
204
204
|
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/master/sdk
|
205
205
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
|
206
|
-
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v0.
|
206
|
+
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v0.10.0
|
207
207
|
post_install_message:
|
208
208
|
rdoc_options: []
|
209
209
|
require_paths:
|