opentelemetry-instrumentation-mongo 0.17.0 → 0.18.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b30814818cff85acd7f96eb672243a031795bf864b7d5af7198bbfe8601ade57
4
- data.tar.gz: 99e17a520388944e5d58ecad18c9047eb72e9c36f03994d1cc196513c24a2bd5
3
+ metadata.gz: da0f8cafdadc51eb770d7d9348ebaefc26bd2a3b214e80e244c436037fc4818a
4
+ data.tar.gz: 8b3124ed58dff5c2f88bd259ef8386c295a566a8de47771687fc1eeec7456113
5
5
  SHA512:
6
- metadata.gz: 712045008dc942d63f359a2fb7b3841ad7f284bc2739e41743a015af4a87f7ba8f37737a0197d98e9661109dd64f26ef2c55210726ab376c29f3d4687c5987a3
7
- data.tar.gz: f3427445fbc8bbd10f7a5e923b00d075539ddeb60d8dd6ad2e6a15f708ed05830eed98d6a0eab79a8348637d0f9a3b97cde7df3175b9d9a737d4899f3424f5c9
6
+ metadata.gz: 3aad0a67e9bd65dd7080207e64fbf392a90587e14dd0734a440aed2999ff410428e9e4292dac1f5fd80b889fa7b1cc7cf9b74bb0ab35def8cf7207fcb55f0c5a
7
+ data.tar.gz: e47f6d70b0c6da744ecacf08cd6b16a70d2088fec04adc5c0188f4015e63858aa6599addd5672c37eae7cff1b8f04525d34155f79bd1146d0e6d225d512ee0ed
data/CHANGELOG.md CHANGED
@@ -1,15 +1,35 @@
1
1
  # Release History: opentelemetry-instrumentation-mongo
2
2
 
3
+ ### v0.18.3 / 2021-09-29
4
+
5
+ * (No significant changes)
6
+
7
+ ### v0.18.2 / 2021-08-12
8
+
9
+ * FIXED: Flakey mongo test
10
+
11
+ ### v0.18.1 / 2021-06-23
12
+
13
+ * (No significant changes)
14
+
15
+ ### v0.18.0 / 2021-05-21
16
+
17
+ * BREAKING CHANGE: Replace Time.now with Process.clock_gettime
18
+
19
+ * ADDED: Updated API depedency for 1.0.0.rc1
20
+ * FIXED: Replace Time.now with Process.clock_gettime
21
+ * FIXED: Mongodb test asserting error message
22
+
3
23
  ### v0.17.0 / 2021-04-22
4
24
 
5
- * ADDED: Mongo instrumentation accepts peer service config attribute.
6
- * FIXED: Fix Mongo instrumentation example.
7
- * FIXED: Refactor propagators to add #fields
25
+ * ADDED: Mongo instrumentation accepts peer service config attribute.
26
+ * FIXED: Fix Mongo instrumentation example.
27
+ * FIXED: Refactor propagators to add #fields
8
28
 
9
29
  ### v0.16.0 / 2021-03-17
10
30
 
11
- * FIXED: Example scripts now reference local common lib
12
- * DOCS: Replace Gitter with GitHub Discussions
31
+ * FIXED: Example scripts now reference local common lib
32
+ * DOCS: Replace Gitter with GitHub Discussions
13
33
 
14
34
  ### v0.15.0 / 2021-02-18
15
35
 
@@ -17,13 +37,13 @@
17
37
 
18
38
  ### v0.14.0 / 2021-02-03
19
39
 
20
- * BREAKING CHANGE: Replace getter and setter callables and remove rack specific propagators
40
+ * BREAKING CHANGE: Replace getter and setter callables and remove rack specific propagators
21
41
 
22
- * ADDED: Replace getter and setter callables and remove rack specific propagators
42
+ * ADDED: Replace getter and setter callables and remove rack specific propagators
23
43
 
24
44
  ### v0.13.0 / 2021-01-29
25
45
 
26
- * FIXED: Mongo Instrumenter: Do not send nil attributes
46
+ * FIXED: Mongo Instrumenter: Do not send nil attributes
27
47
 
28
48
  ### v0.12.0 / 2020-12-24
29
49
 
@@ -31,7 +51,7 @@
31
51
 
32
52
  ### v0.11.0 / 2020-12-11
33
53
 
34
- * FIXED: Copyright comments to not reference year
54
+ * FIXED: Copyright comments to not reference year
35
55
 
36
56
  ### v0.10.0 / 2020-12-03
37
57
 
@@ -39,4 +59,4 @@
39
59
 
40
60
  ### v0.9.0 / 2020-11-03
41
61
 
42
- * Initial release of Mongo instrumenter (ported from Datadog)
62
+ * Initial release of Mongo instrumenter (ported from Datadog)
@@ -25,6 +25,7 @@ module OpenTelemetry
25
25
  end
26
26
 
27
27
  option :peer_service, default: nil, validate: :string
28
+ option :db_statement, default: :include, validate: ->(opt) { %I[omit include].include?(opt) }
28
29
 
29
30
  private
30
31
 
@@ -13,15 +13,30 @@ module OpenTelemetry
13
13
  class Subscriber
14
14
  THREAD_KEY = :__opentelemetry_mongo_spans__
15
15
 
16
- def started(event)
16
+ def started(event) # rubocop:disable Metrics/AbcSize
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:
20
20
  # https://github.com/mongodb/mongo-ruby-driver/blob/master/lib/mongo/monitoring.rb#L70
21
21
  # https://github.com/mongodb/mongo-ruby-driver/blob/master/lib/mongo/monitoring/publishable.rb#L38-L56
22
+
22
23
  collection = get_collection(event.command)
23
- attributes = build_attributes(event)
24
+
25
+ attributes = {
26
+ 'db.system' => 'mongodb',
27
+ 'db.name' => event.database_name,
28
+ 'db.operation' => event.command_name,
29
+ 'net.peer.name' => event.address.host,
30
+ 'net.peer.port' => event.address.port
31
+ }
32
+
33
+ config = Mongo::Instrumentation.instance.config
34
+ attributes['peer.service'] = config[:peer_service] if config[:peer_service]
35
+ # attributes['db.statement'] = CommandSerializer.new(event.command).serialize
36
+ attributes['db.statement'] = CommandSerializer.new(event.command).serialize if config[:db_statement] == :include
24
37
  attributes['db.mongodb.collection'] = collection if collection
38
+ attributes.compact!
39
+
25
40
  span = tracer.start_span(span_name(collection, event.command_name), attributes: attributes, kind: :client)
26
41
  set_span(event, span)
27
42
  end
@@ -63,21 +78,6 @@ module OpenTelemetry
63
78
  "#{collection}.#{command_name}"
64
79
  end
65
80
 
66
- def build_attributes(event)
67
- attrs = {
68
- 'db.system' => 'mongodb',
69
- 'db.name' => event.database_name,
70
- 'db.operation' => event.command_name,
71
- 'db.statement' => CommandSerializer.new(event.command).serialize,
72
- 'net.peer.name' => event.address.host,
73
- 'net.peer.port' => event.address.port
74
- }
75
- config = Mongo::Instrumentation.instance.config
76
- attrs['peer.service'] = config[:peer_service] if config[:peer_service]
77
- attrs.compact!
78
- attrs
79
- end
80
-
81
81
  def get_collection(command)
82
82
  collection = command.values.first
83
83
  collection if collection.is_a?(String)
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Mongo
10
- VERSION = '0.17.0'
10
+ VERSION = '0.18.3'
11
11
  end
12
12
  end
13
13
  end
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.17.0
4
+ version: 0.18.3
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-04-23 00:00:00.000000000 Z
11
+ date: 2021-09-30 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.17.0
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: 0.17.0
26
+ version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: opentelemetry-instrumentation-base
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.17.0
33
+ version: 0.18.3
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.17.0
40
+ version: 0.18.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: appraisal
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,42 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0.0'
103
+ version: '1.0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0.0'
110
+ version: '1.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry
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'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry-byebug
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: rspec-mocks
113
141
  requirement: !ruby/object:Gem::Requirement
@@ -214,10 +242,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
214
242
  licenses:
215
243
  - Apache-2.0
216
244
  metadata:
217
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-mongo/v0.17.0/file.CHANGELOG.html
245
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-mongo/v0.18.3/file.CHANGELOG.html
218
246
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/instrumentation/mongo
219
247
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
220
- documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-mongo/v0.17.0
248
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-mongo/v0.18.3
221
249
  post_install_message:
222
250
  rdoc_options: []
223
251
  require_paths: