opentelemetry-instrumentation-rails 0.13.0 → 0.18.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dcfbd1df327dfb01a1e969dc1282231650d00d3eb00313834c7c49b5c3381ea3
4
- data.tar.gz: 83b8a23d8fd0bb426a533cc2ea8c3928e96b4bab27033fcdead5fb132ca219aa
3
+ metadata.gz: ce9c51efe3309c265a51f9779f89fafbfcb7ee7c89e8491892736f80aa8c473d
4
+ data.tar.gz: cee3ae8c0b9165a3c40532b1114dde2d6f33a3a2527fad94ac28cd0bb17c5544
5
5
  SHA512:
6
- metadata.gz: c678fe7128282df1aa601be0dbd43bf293a7a2ed78c057e98c957772885dbb83de42aa4f2baae4e093e3abf000613a75eafa7e6a5bed9744c2bad7f71e6a92ac
7
- data.tar.gz: 6626077ce2cf87a2e9acae3df98ea0dce99e730007729f3e7002f6cbbc022cf0a96966c8f928ec7b092fe2a50063f9a16d4d0e2ca676d50c7b19118b5bff48d2
6
+ metadata.gz: 24a1491adf9c2aaf800a89a3141fc331b142d8db8ba04f5ad0ba01707b7a155d65a20495c698baae766ce06c5acf908ac6c585e368931351f78adc3603b2a2db
7
+ data.tar.gz: cb6b640fcdba28eca82caa3b3cd2232c93dbd43e00b5cf3cdbdefd8d7bba9e98819e692f7a1ee6d8878f0d27a0b96cec483638e8df1c397b1baff6bca31cd17a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Release History: opentelemetry-instrumentation-rails
2
2
 
3
+ ### v0.18.0 / 2021-05-21
4
+
5
+ * ADDED: Updated API depedency for 1.0.0.rc1
6
+
7
+ ### v0.17.0 / 2021-04-22
8
+
9
+ * ADDED: Added http.route in rails instrumentation to match the spec
10
+ * FIXED: Rails example by not using `rails` from git
11
+ * FIXED: Updated rack middleware position to zero
12
+
13
+ ### v0.16.0 / 2021-03-17
14
+
15
+ * FIXED: Example scripts now reference local common lib
16
+ * DOCS: Replace Gitter with GitHub Discussions
17
+
18
+ ### v0.15.0 / 2021-02-18
19
+
20
+ * (No significant changes)
21
+
22
+ ### v0.14.0 / 2021-02-03
23
+
24
+ * (No significant changes)
25
+
3
26
  ### v0.13.0 / 2021-01-29
4
27
 
5
28
  * (No significant changes)
@@ -10,12 +33,12 @@
10
33
 
11
34
  ### v0.11.0 / 2020-12-11
12
35
 
13
- * FIXED: Rails tests
14
- * FIXED: Copyright comments to not reference year
36
+ * FIXED: Rails tests
37
+ * FIXED: Copyright comments to not reference year
15
38
 
16
39
  ### v0.10.0 / 2020-12-03
17
40
 
18
- * FIXED: Otel-instrumentation-all not installing all
41
+ * FIXED: Otel-instrumentation-all not installing all
19
42
 
20
43
  ### v0.9.0 / 2020-11-27
21
44
 
data/README.md CHANGED
@@ -30,6 +30,18 @@ OpenTelemetry::SDK.configure do |c|
30
30
  end
31
31
  ```
32
32
 
33
+
34
+ ### Configuration options
35
+
36
+ The `http.route` attribute is disabled by default because we use [.recognize](https://github.com/rails/rails/blob/v6.1.3/actionpack/lib/action_dispatch/journey/router.rb#L65)
37
+ ```ruby
38
+ OpenTelemetry::SDK.configure do |c|
39
+ c.use 'OpenTelemetry::Instrumentation::Rails', {
40
+ enable_recognize_route: true
41
+ }
42
+ end
43
+ ```
44
+
33
45
  ## Examples
34
46
 
35
47
  Example usage can be seen in the `./example/trace_demonstration.rb` file [here](https://github.com/open-telemetry/opentelemetry-ruby/blob/main/instrumentation/rails/example/trace_request_demonstration.ru)
@@ -38,7 +50,7 @@ Example usage can be seen in the `./example/trace_demonstration.rb` file [here](
38
50
 
39
51
  The `opentelemetry-instrumentation-rails` gem source is [on github][repo-github], along with related gems including `opentelemetry-api` and `opentelemetry-sdk`.
40
52
 
41
- The OpenTelemetry Ruby gems are maintained by the OpenTelemetry-Ruby special interest group (SIG). You can get involved by joining us on our [gitter channel][ruby-gitter] or attending our weekly meeting. See the [meeting calendar][community-meetings] for dates and times. For more information on this and other language SIGs, see the OpenTelemetry [community page][ruby-sig].
53
+ The OpenTelemetry Ruby gems are maintained by the OpenTelemetry-Ruby special interest group (SIG). You can get involved by joining us in [GitHub Discussions][discussions-url] or attending our weekly meeting. See the [meeting calendar][community-meetings] for dates and times. For more information on this and other language SIGs, see the OpenTelemetry [community page][ruby-sig].
42
54
 
43
55
  ## License
44
56
 
@@ -50,4 +62,4 @@ The `opentelemetry-instrumentation-rails` gem is distributed under the Apache 2.
50
62
  [license-github]: https://github.com/open-telemetry/opentelemetry-ruby/blob/main/LICENSE
51
63
  [ruby-sig]: https://github.com/open-telemetry/community#ruby-sig
52
64
  [community-meetings]: https://github.com/open-telemetry/community#community-meetings
53
- [ruby-gitter]: https://gitter.im/open-telemetry/opentelemetry-ruby
65
+ [discussions-url]: https://github.com/open-telemetry/opentelemetry-ruby/discussions
@@ -5,6 +5,7 @@
5
5
  # SPDX-License-Identifier: Apache-2.0
6
6
 
7
7
  require 'opentelemetry'
8
+ require 'opentelemetry-instrumentation-base'
8
9
 
9
10
  module OpenTelemetry
10
11
  module Instrumentation
@@ -22,6 +22,8 @@ module OpenTelemetry
22
22
  defined?(::Rails)
23
23
  end
24
24
 
25
+ option :enable_recognize_route, default: false, validate: :boolean
26
+
25
27
  private
26
28
 
27
29
  def require_dependencies
@@ -14,8 +14,22 @@ module OpenTelemetry
14
14
  def dispatch(name, request, response)
15
15
  rack_span = OpenTelemetry::Instrumentation::Rack.current_span
16
16
  rack_span.name = "#{self.class.name}##{name}" if rack_span.context.valid? && !request.env['action_dispatch.exception']
17
+
18
+ add_rails_route(rack_span, request) if instrumentation_config[:enable_recognize_route]
17
19
  super(name, request, response)
18
20
  end
21
+
22
+ private
23
+
24
+ def add_rails_route(rack_span, request)
25
+ ::Rails.application.routes.router.recognize(request) do |route, _params|
26
+ rack_span.set_attribute('http.route', route.path.spec.to_s)
27
+ end
28
+ end
29
+
30
+ def instrumentation_config
31
+ Rails::Instrumentation.instance.config
32
+ end
19
33
  end
20
34
  end
21
35
  end
@@ -15,7 +15,7 @@ module OpenTelemetry
15
15
  OpenTelemetry::Instrumentation::Rack::Instrumentation.instance.install({})
16
16
 
17
17
  app.middleware.insert_after(
18
- ActionDispatch::RequestId,
18
+ 0,
19
19
  OpenTelemetry::Instrumentation::Rack::Middlewares::TracerMiddleware
20
20
  )
21
21
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Rails
10
- VERSION = '0.13.0'
10
+ VERSION = '0.18.0'
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-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.18.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: 2021-01-30 00:00:00.000000000 Z
11
+ date: 2021-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -16,28 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.13.0
19
+ version: 1.0.0.rc1
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.13.0
26
+ version: 1.0.0.rc1
27
+ - !ruby/object:Gem::Dependency
28
+ name: opentelemetry-instrumentation-base
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.18.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.18.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: opentelemetry-instrumentation-rack
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: 0.13.0
47
+ version: 0.18.0
34
48
  type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: 0.13.0
54
+ version: 0.18.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: appraisal
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +100,14 @@ dependencies:
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '0.0'
103
+ version: 1.0.0.rc1
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '0.0'
110
+ version: 1.0.0.rc1
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rack-test
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -227,7 +241,8 @@ files:
227
241
  homepage: https://github.com/open-telemetry/opentelemetry-ruby
228
242
  licenses:
229
243
  - Apache-2.0
230
- metadata: {}
244
+ metadata:
245
+ source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/instrumentation/rails
231
246
  post_install_message:
232
247
  rdoc_options: []
233
248
  require_paths:
@@ -243,7 +258,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
258
  - !ruby/object:Gem::Version
244
259
  version: '0'
245
260
  requirements: []
246
- rubygems_version: 3.1.4
261
+ rubygems_version: 3.1.6
247
262
  signing_key:
248
263
  specification_version: 4
249
264
  summary: Rails instrumentation for the OpenTelemetry framework