opentelemetry-common 0.19.1 → 0.19.5

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: ec9e692d58a21b093de31eaea17d7ec972cf3716efb580658fd0f8a284addc0d
4
- data.tar.gz: d6ecdd5414c4e8edea8acd1efb21ceb0dbc1d749beddeb29ec5143bad7b5b161
3
+ metadata.gz: 58a2d895adece2c6a96be7355362c2bc630da33eced02fad36f25ccb6f9dd543
4
+ data.tar.gz: 1db1cbe0cd4f566e7f96e475f25de913d639780a44bce94b3e40875fd813cc92
5
5
  SHA512:
6
- metadata.gz: 73907cd010768cbe5ae6db720c7f3d830239c585b542d6a61f9e64b8d06c39d07bab5b87494225a44de3a68cdd13d64c2ca2225efcbcc3f8406f2bc7566a9caf
7
- data.tar.gz: 65bb01c8d9dcab774ac65be62683a48eb2a1c2defcd8ad0736e64999451230fb284674f45ef82a1c276b2991158d39e2c4890aa36beb7a96fdb30ff5528f6dd1
6
+ metadata.gz: 836efd569b9efae0067951776782942b1d378232d80f29c7c8ddb7319f1d786b06b3f08cf741eb821adc0463bb09269249d656d9db5c63be1956bb7a2d850791
7
+ data.tar.gz: b42f204f66bb84eb28302ecff3135c0dea6c462e78e6e7b5a6e7244440a8aa6818d274b933995b4fba397ef6db4b52e706198dbadf13507a5df431e0d4aa8f01
data/CHANGELOG.md CHANGED
@@ -1,4 +1,21 @@
1
+ # Release History: opentelemetry-common
1
2
 
3
+ ### v0.19.5 / 2022-05-10
4
+
5
+ * FIXED: Common changelog
6
+
7
+ ### v0.19.4 / 2022-05-08
8
+
9
+ * FIXED: Check that a variable is a string before truncating
10
+ * FIXED: Attribute length limit. only truncate strings and strings in arrays
11
+
12
+ ### v0.19.3 / 2021-12-01
13
+
14
+ * FIXED: Change net attribute names to match the semantic conventions spec for http
15
+
16
+ ### v0.19.2 / 2021-09-29
17
+
18
+ * (No significant changes)
2
19
 
3
20
  ### v0.19.1 / 2021-08-12
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.hostname' => @address,
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('current-attributes-hash')
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
@@ -6,6 +6,6 @@
6
6
 
7
7
  module OpenTelemetry
8
8
  module Common
9
- VERSION = '0.19.1'
9
+ VERSION = '0.19.5'
10
10
  end
11
11
  end
@@ -6,6 +6,7 @@
6
6
 
7
7
  require 'opentelemetry'
8
8
  require 'opentelemetry/common/http'
9
+ require 'opentelemetry/common/propagation'
9
10
  require 'opentelemetry/common/utilities'
10
11
  require 'opentelemetry/common/version'
11
12
 
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.1
4
+ version: 0.19.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-16 00:00:00.000000000 Z
11
+ date: 2022-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.0.rc3
19
+ version: '1.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: 1.0.0.rc3
26
+ version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -137,17 +137,19 @@ files:
137
137
  - lib/opentelemetry/common.rb
138
138
  - lib/opentelemetry/common/http.rb
139
139
  - lib/opentelemetry/common/http/client_context.rb
140
- - lib/opentelemetry/common/test_helpers.rb
140
+ - lib/opentelemetry/common/propagation.rb
141
+ - lib/opentelemetry/common/propagation/rack_env_getter.rb
142
+ - lib/opentelemetry/common/propagation/symbol_key_getter.rb
141
143
  - lib/opentelemetry/common/utilities.rb
142
144
  - lib/opentelemetry/common/version.rb
143
145
  homepage: https://github.com/open-telemetry/opentelemetry-ruby
144
146
  licenses:
145
147
  - Apache-2.0
146
148
  metadata:
147
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-common/v0.19.1/file.CHANGELOG.html
149
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-common/v0.19.5/file.CHANGELOG.html
148
150
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/common
149
151
  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.1
152
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-common/v0.19.5
151
153
  post_install_message:
152
154
  rdoc_options: []
153
155
  require_paths:
@@ -156,7 +158,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
156
158
  requirements:
157
159
  - - ">="
158
160
  - !ruby/object:Gem::Version
159
- version: 2.5.0
161
+ version: 2.6.0
160
162
  required_rubygems_version: !ruby/object:Gem::Requirement
161
163
  requirements:
162
164
  - - ">="
@@ -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