opentelemetry-instrumentation-mongo 0.20.0 → 0.21.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 +4 -0
- data/README.md +15 -2
- data/lib/opentelemetry/instrumentation/mongo/command_serializer.rb +12 -5
- data/lib/opentelemetry/instrumentation/mongo/instrumentation.rb +1 -1
- data/lib/opentelemetry/instrumentation/mongo/subscriber.rb +4 -2
- data/lib/opentelemetry/instrumentation/mongo/version.rb +1 -1
- metadata +23 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85f1636546167aa1e9e6603257eeb965dbb08f9c5bc26050c15cc929758e847d
|
4
|
+
data.tar.gz: 15dc6ba2a31cbe827bd81d16edc5aa8a8de6635a3822dba0479adf9de50d61bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '08fd54a2850631ac755508538495dc9fc91507a7827437ca4e046dfaa685eaee3a81c54f3c995bc33d74754e7fda385c4a1fd1f67c362404cf0059a7a219b677'
|
7
|
+
data.tar.gz: e958b40ba06c2f5f28baf26877fba8ecb3056dc600c4068aa71a6d3919434447eba2cddb8f9269e28cc367fe8bf21b1e7696340ef807aae337814b9bcc36b6f0
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -30,6 +30,20 @@ OpenTelemetry::SDK.configure do |c|
|
|
30
30
|
end
|
31
31
|
```
|
32
32
|
|
33
|
+
### Configuration options
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
OpenTelemetry::SDK.configure do |c|
|
37
|
+
c.use 'OpenTelemetry::Instrumentation::Mongo', {
|
38
|
+
# Sets how db_statement appears in your traces. The options are:
|
39
|
+
# :obfuscate - (default) query parameters are visible, but values are masked.
|
40
|
+
# :include - query parameters and values are both fully visible.
|
41
|
+
# :omit - db_statement is omitted entirely.
|
42
|
+
db_statement: :include,
|
43
|
+
}
|
44
|
+
end
|
45
|
+
```
|
46
|
+
|
33
47
|
## Example
|
34
48
|
|
35
49
|
To run the example:
|
@@ -57,8 +71,7 @@ Apache 2.0 license. See [LICENSE][license-github] for more information.
|
|
57
71
|
[mongo-home]: https://github.com/mongodb/mongo-ruby-driver
|
58
72
|
[bundler-home]: https://bundler.io
|
59
73
|
[repo-github]: https://github.com/open-telemetry/opentelemetry-ruby
|
60
|
-
[license-github]: https://github.com/open-telemetry/opentelemetry-ruby/blob/main/LICENSE
|
74
|
+
[license-github]: https://github.com/open-telemetry/opentelemetry-ruby-contrib/blob/main/LICENSE
|
61
75
|
[ruby-sig]: https://github.com/open-telemetry/community#ruby-sig
|
62
76
|
[community-meetings]: https://github.com/open-telemetry/community#community-meetings
|
63
77
|
[discussions-url]: https://github.com/open-telemetry/opentelemetry-ruby/discussions
|
64
|
-
|
@@ -14,10 +14,10 @@ module OpenTelemetry
|
|
14
14
|
|
15
15
|
attr_reader :command, :command_name, :collection, :payload
|
16
16
|
|
17
|
-
def initialize(command)
|
17
|
+
def initialize(command, obfuscate)
|
18
18
|
@command = command
|
19
19
|
@command_name, @collection = command.first
|
20
|
-
@
|
20
|
+
@obfuscate = obfuscate
|
21
21
|
@payload = {}
|
22
22
|
end
|
23
23
|
|
@@ -35,7 +35,7 @@ module OpenTelemetry
|
|
35
35
|
build_pipeline
|
36
36
|
end
|
37
37
|
|
38
|
-
def build_command
|
38
|
+
def build_command
|
39
39
|
add_val(payload, command, 'key')
|
40
40
|
add_map(payload, command, 'query')
|
41
41
|
add_map(payload, command, 'filter')
|
@@ -87,14 +87,21 @@ module OpenTelemetry
|
|
87
87
|
|
88
88
|
def add_map(payload, command, key)
|
89
89
|
value = command[key]
|
90
|
-
return unless value
|
90
|
+
return unless value.is_a?(Hash) && !value.empty?
|
91
91
|
|
92
92
|
payload[key] = mask(value)
|
93
93
|
end
|
94
94
|
|
95
95
|
def mask(hash)
|
96
96
|
hash.each_with_object({}) do |(k, v), h|
|
97
|
-
|
97
|
+
value = if v.is_a?(Hash)
|
98
|
+
mask(v)
|
99
|
+
elsif @obfuscate
|
100
|
+
MASK_VALUE
|
101
|
+
else
|
102
|
+
v
|
103
|
+
end
|
104
|
+
h[k] = value
|
98
105
|
end
|
99
106
|
end
|
100
107
|
end
|
@@ -13,7 +13,7 @@ module OpenTelemetry
|
|
13
13
|
class Subscriber
|
14
14
|
THREAD_KEY = :__opentelemetry_mongo_spans__
|
15
15
|
|
16
|
-
def started(event)
|
16
|
+
def started(event)
|
17
17
|
# start a trace and store it in the current thread; using the `operation_id`
|
18
18
|
# is safe since it's a unique id used to link events together. Also only one
|
19
19
|
# thread is involved in this execution so thread-local storage should be safe. Reference:
|
@@ -33,7 +33,9 @@ module OpenTelemetry
|
|
33
33
|
config = Mongo::Instrumentation.instance.config
|
34
34
|
attributes['peer.service'] = config[:peer_service] if config[:peer_service]
|
35
35
|
# attributes['db.statement'] = CommandSerializer.new(event.command).serialize
|
36
|
-
|
36
|
+
omit = config[:db_statement] == :omit
|
37
|
+
obfuscate = config[:db_statement] == :obfuscate
|
38
|
+
attributes['db.statement'] = CommandSerializer.new(event.command, obfuscate).serialize unless omit
|
37
39
|
attributes['db.mongodb.collection'] = collection if collection
|
38
40
|
attributes.compact!
|
39
41
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opentelemetry-instrumentation-mongo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.21.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: 2022-
|
11
|
+
date: 2022-10-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opentelemetry-api
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '1.1'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: opentelemetry-test-helpers
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: pry
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,14 +170,14 @@ dependencies:
|
|
156
170
|
requirements:
|
157
171
|
- - "~>"
|
158
172
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
173
|
+
version: 1.3.0
|
160
174
|
type: :development
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
178
|
- - "~>"
|
165
179
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
180
|
+
version: 1.3.0
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
182
|
name: simplecov
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -238,14 +252,14 @@ files:
|
|
238
252
|
- lib/opentelemetry/instrumentation/mongo/instrumentation.rb
|
239
253
|
- lib/opentelemetry/instrumentation/mongo/subscriber.rb
|
240
254
|
- lib/opentelemetry/instrumentation/mongo/version.rb
|
241
|
-
homepage: https://github.com/open-telemetry/opentelemetry-
|
255
|
+
homepage: https://github.com/open-telemetry/opentelemetry-contrib
|
242
256
|
licenses:
|
243
257
|
- Apache-2.0
|
244
258
|
metadata:
|
245
|
-
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-mongo/v0.
|
246
|
-
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/instrumentation/mongo
|
247
|
-
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
|
248
|
-
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-mongo/v0.
|
259
|
+
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby-contrib/opentelemetry-instrumentation-mongo/v0.21.0/file.CHANGELOG.html
|
260
|
+
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/mongo
|
261
|
+
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
|
262
|
+
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby-contrib/opentelemetry-instrumentation-mongo/v0.21.0
|
249
263
|
post_install_message:
|
250
264
|
rdoc_options: []
|
251
265
|
require_paths:
|