opentelemetry-common 0.19.2 → 0.19.6
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 +17 -0
- data/README.md +2 -2
- data/lib/opentelemetry/common/http/client_context.rb +1 -1
- data/lib/opentelemetry/common/propagation/rack_env_getter.rb +48 -0
- data/lib/opentelemetry/common/propagation/symbol_key_getter.rb +26 -0
- data/lib/opentelemetry/common/propagation.rb +33 -0
- data/lib/opentelemetry/common/utilities.rb +37 -0
- data/lib/opentelemetry/common/version.rb +1 -1
- data/lib/opentelemetry/common.rb +1 -0
- metadata +22 -6
- data/lib/opentelemetry/common/test_helpers.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 286a98f703c4c88fa99e50dc57c30aa2d49ca4eef437a7ea3151ff904ea16dfc
|
4
|
+
data.tar.gz: b6cbfd1808ff51e47600dc27e6093d903b42c7c04ca5333114ad8447a269563c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 694e7ed9f4a0c0ea9463c9bce044d16ea2ebdb6805d6d6cdb4c66dac1f5e1c2066951b4b30afd5455afd1bc49c2f7bd9804a50ac90ba873a133fedea5627a282
|
7
|
+
data.tar.gz: a3c5598137f319384f48196f529b2c627b4ed302d646dab2849c29db8171ed9f0c1f866b82751508da9a259b0fe73f85a8baf6c02bcfa171292a9152afe80920
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,21 @@
|
|
1
|
+
# Release History: opentelemetry-common
|
1
2
|
|
3
|
+
### v0.19.6 / 2022-05-18
|
4
|
+
|
5
|
+
* (No significant changes)
|
6
|
+
|
7
|
+
### v0.19.5 / 2022-05-10
|
8
|
+
|
9
|
+
* FIXED: Common changelog
|
10
|
+
|
11
|
+
### v0.19.4 / 2022-05-08
|
12
|
+
|
13
|
+
* FIXED: Check that a variable is a string before truncating
|
14
|
+
* FIXED: Attribute length limit. only truncate strings and strings in arrays
|
15
|
+
|
16
|
+
### v0.19.3 / 2021-12-01
|
17
|
+
|
18
|
+
* FIXED: Change net attribute names to match the semantic conventions spec for http
|
2
19
|
|
3
20
|
### v0.19.2 / 2021-09-29
|
4
21
|
|
data/README.md
CHANGED
@@ -40,8 +40,8 @@ tracer.in_span(
|
|
40
40
|
'http.method' => req.method,
|
41
41
|
'http.scheme' => USE_SSL_TO_SCHEME[use_ssl?],
|
42
42
|
'http.target' => req.path,
|
43
|
-
'peer.
|
44
|
-
'peer.port' => @port
|
43
|
+
'net.peer.name' => @address,
|
44
|
+
'net.peer.port' => @port
|
45
45
|
),
|
46
46
|
kind: :client
|
47
47
|
) do |span|
|
@@ -11,7 +11,7 @@ module OpenTelemetry
|
|
11
11
|
module ClientContext
|
12
12
|
extend self
|
13
13
|
|
14
|
-
CURRENT_ATTRIBUTES_HASH = Context.create_key('
|
14
|
+
CURRENT_ATTRIBUTES_HASH = Context.create_key('http-client-context-attributes-hash')
|
15
15
|
|
16
16
|
private_constant :CURRENT_ATTRIBUTES_HASH
|
17
17
|
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright The OpenTelemetry Authors
|
4
|
+
#
|
5
|
+
# SPDX-License-Identifier: Apache-2.0
|
6
|
+
|
7
|
+
module OpenTelemetry
|
8
|
+
module Common
|
9
|
+
module Propagation
|
10
|
+
# The RackEnvGetter class provides a common methods for reading
|
11
|
+
# keys from a rack environment. It abstracts away the rack-normalization
|
12
|
+
# process so that keys can be looked up without having to transform them
|
13
|
+
# first. With this class you can get +traceparent+ instead of
|
14
|
+
# +HTTP_TRACEPARENT+
|
15
|
+
class RackEnvGetter
|
16
|
+
# Converts key into a rack-normalized key and reads it from the carrier.
|
17
|
+
# Useful for extract operations.
|
18
|
+
def get(carrier, key)
|
19
|
+
carrier[to_rack_key(key)] || carrier[key]
|
20
|
+
end
|
21
|
+
|
22
|
+
# Reads all keys from a carrier and converts them from the rack-normalized
|
23
|
+
# form to the original. The resulting keys will be lowercase and
|
24
|
+
# underscores will be replaced with dashes.
|
25
|
+
def keys(carrier)
|
26
|
+
carrier.keys.map(&method(:from_rack_key))
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def to_rack_key(key)
|
32
|
+
ret = 'HTTP_' + key
|
33
|
+
ret.tr!('-', '_')
|
34
|
+
ret.upcase!
|
35
|
+
ret
|
36
|
+
end
|
37
|
+
|
38
|
+
def from_rack_key(key)
|
39
|
+
start = key.start_with?('HTTP_') ? 5 : 0
|
40
|
+
ret = key[start..-1]
|
41
|
+
ret.tr!('_', '-')
|
42
|
+
ret.downcase!
|
43
|
+
ret
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright The OpenTelemetry Authors
|
4
|
+
#
|
5
|
+
# SPDX-License-Identifier: Apache-2.0
|
6
|
+
|
7
|
+
module OpenTelemetry
|
8
|
+
module Common
|
9
|
+
module Propagation
|
10
|
+
# The SymbolKeyGetter class provides a common method for reading
|
11
|
+
# symbol keys from a hash.
|
12
|
+
class SymbolKeyGetter
|
13
|
+
# Converts key into a symbol and reads it from the carrier.
|
14
|
+
# Useful for extract operations.
|
15
|
+
def get(carrier, key)
|
16
|
+
carrier[key.to_sym]
|
17
|
+
end
|
18
|
+
|
19
|
+
# Reads all keys from a carrier
|
20
|
+
def keys(carrier)
|
21
|
+
carrier.keys.map(&:to_s)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright The OpenTelemetry Authors
|
4
|
+
#
|
5
|
+
# SPDX-License-Identifier: Apache-2.0
|
6
|
+
|
7
|
+
require_relative './propagation/rack_env_getter'
|
8
|
+
require_relative './propagation/symbol_key_getter'
|
9
|
+
|
10
|
+
module OpenTelemetry
|
11
|
+
module Common
|
12
|
+
# Propagation contains common helpers for context propagation.
|
13
|
+
module Propagation
|
14
|
+
extend self
|
15
|
+
|
16
|
+
RACK_ENV_GETTER = RackEnvGetter.new
|
17
|
+
SYMBOL_KEY_GETTER = SymbolKeyGetter.new
|
18
|
+
private_constant :RACK_ENV_GETTER, :SYMBOL_KEY_GETTER
|
19
|
+
|
20
|
+
# Returns a {RackEnvGetter} instance suitable for reading values from a
|
21
|
+
# Rack environment.
|
22
|
+
def rack_env_getter
|
23
|
+
RACK_ENV_GETTER
|
24
|
+
end
|
25
|
+
|
26
|
+
# Returns a {SymbolKeyGetter} instance for reading values from a
|
27
|
+
# symbol keyed hash.
|
28
|
+
def symbol_key_getter
|
29
|
+
SYMBOL_KEY_GETTER
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -72,6 +72,17 @@ module OpenTelemetry
|
|
72
72
|
string.size > size ? "#{string[0...size - 3]}..." : string
|
73
73
|
end
|
74
74
|
|
75
|
+
def truncate_attribute_value(value, limit)
|
76
|
+
case value
|
77
|
+
when Array
|
78
|
+
value.map { |x| truncate_attribute_value(x, limit) }
|
79
|
+
when String
|
80
|
+
truncate(value, limit)
|
81
|
+
else
|
82
|
+
value
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
75
86
|
def untraced
|
76
87
|
OpenTelemetry::Trace.with_span(OpenTelemetry::Trace.non_recording_span(OpenTelemetry::Trace::SpanContext.new)) { yield }
|
77
88
|
end
|
@@ -90,6 +101,32 @@ module OpenTelemetry
|
|
90
101
|
url
|
91
102
|
end
|
92
103
|
|
104
|
+
# Returns the first non nil environment variable requested,
|
105
|
+
# or the default value if provided.
|
106
|
+
#
|
107
|
+
# @param [String] env_vars The environment variable(s) to retrieve
|
108
|
+
# @param default The fallback value to return if the requested
|
109
|
+
# env var(s) are not present
|
110
|
+
#
|
111
|
+
# @returns [String]
|
112
|
+
def config_opt(*env_vars, default: nil)
|
113
|
+
ENV.values_at(*env_vars).compact.fetch(0, default)
|
114
|
+
end
|
115
|
+
|
116
|
+
# Returns a true if the provided url is valid
|
117
|
+
#
|
118
|
+
# @param [String] url the URL string to test validity
|
119
|
+
#
|
120
|
+
# @return [boolean]
|
121
|
+
def valid_url?(url)
|
122
|
+
return false if url.nil? || url.strip.empty?
|
123
|
+
|
124
|
+
URI(url)
|
125
|
+
true
|
126
|
+
rescue URI::InvalidURIError
|
127
|
+
false
|
128
|
+
end
|
129
|
+
|
93
130
|
# Returns true if exporter is a valid exporter.
|
94
131
|
def valid_exporter?(exporter)
|
95
132
|
exporter && %i[export shutdown force_flush].all? { |m| exporter.respond_to?(m) }
|
data/lib/opentelemetry/common.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opentelemetry-common
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.19.
|
4
|
+
version: 0.19.6
|
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-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opentelemetry-api
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '5.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: opentelemetry-test-helpers
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,17 +151,19 @@ files:
|
|
137
151
|
- lib/opentelemetry/common.rb
|
138
152
|
- lib/opentelemetry/common/http.rb
|
139
153
|
- lib/opentelemetry/common/http/client_context.rb
|
140
|
-
- lib/opentelemetry/common/
|
154
|
+
- lib/opentelemetry/common/propagation.rb
|
155
|
+
- lib/opentelemetry/common/propagation/rack_env_getter.rb
|
156
|
+
- lib/opentelemetry/common/propagation/symbol_key_getter.rb
|
141
157
|
- lib/opentelemetry/common/utilities.rb
|
142
158
|
- lib/opentelemetry/common/version.rb
|
143
159
|
homepage: https://github.com/open-telemetry/opentelemetry-ruby
|
144
160
|
licenses:
|
145
161
|
- Apache-2.0
|
146
162
|
metadata:
|
147
|
-
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-common/v0.19.
|
163
|
+
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-common/v0.19.6/file.CHANGELOG.html
|
148
164
|
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/common
|
149
165
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
|
150
|
-
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-common/v0.19.
|
166
|
+
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-common/v0.19.6
|
151
167
|
post_install_message:
|
152
168
|
rdoc_options: []
|
153
169
|
require_paths:
|
@@ -156,7 +172,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
156
172
|
requirements:
|
157
173
|
- - ">="
|
158
174
|
- !ruby/object:Gem::Version
|
159
|
-
version: 2.
|
175
|
+
version: 2.6.0
|
160
176
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
161
177
|
requirements:
|
162
178
|
- - ">="
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Copyright The OpenTelemetry Authors
|
4
|
-
#
|
5
|
-
# SPDX-License-Identifier: Apache-2.0
|
6
|
-
|
7
|
-
def with_env(new_env)
|
8
|
-
env_to_reset = ENV.select { |k, _| new_env.key?(k) }
|
9
|
-
keys_to_delete = new_env.keys - ENV.keys
|
10
|
-
new_env.each_pair { |k, v| ENV[k] = v }
|
11
|
-
yield
|
12
|
-
ensure
|
13
|
-
env_to_reset.each_pair { |k, v| ENV[k] = v }
|
14
|
-
keys_to_delete.each { |k| ENV.delete(k) }
|
15
|
-
end
|
16
|
-
|
17
|
-
def exportable_timestamp(time = Time.now)
|
18
|
-
(time.to_r * 1_000_000_000).to_i
|
19
|
-
end
|