opentelemetry-instrumentation-rails 0.14.0 → 0.18.1

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: aa57c712e5dc2710cacea0e73785e8018a69cdfddaf14d5e6f19b53e5e9830b8
4
- data.tar.gz: 8cf9ed60563cf8261125dde504371e5ae94b8c35b09e8ebc6b5d0c9ab8ffc309
3
+ metadata.gz: e34571f27de616ba58694c8237c0aa261d2fb4bd0fffdc233a2c6aadb57a9db6
4
+ data.tar.gz: eb6d54e06b7e8b4e25d863ce342130de2c41c41ebdf23c287c8dda0b9d286462
5
5
  SHA512:
6
- metadata.gz: 8193298f090a9cea32abbde4ea4e7973602857db4907337bb7343e59f349140911055fbb4ebfa8a74f97d7f991799023c371c52eb1b1d06d194368d469548156
7
- data.tar.gz: 69756502459d29daa02bd656340b2ba04486422143bb7af6cc8baf21d25ef70850539153b4c5bb867fd18ca807614029041a9281170dbc30414989253dc6f17b
6
+ metadata.gz: d9a6b78d0b3aba5bc89f0b4c7a5cc6f4af50509958d65f789356fe5823688682cea61e8167b317e82f9c25427d5b80f4cffba7032784d7c5213d3a107153d53d
7
+ data.tar.gz: 1948237271395861da709a3ec93f0cccc6ddfce8ccf3bea1f3065ee48df1ead58f1dfcb657d23c834bd854dcf5ced63ff66adf8501fba8c9d86fe6ae9513a512
data/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Release History: opentelemetry-instrumentation-rails
2
2
 
3
+ ### v0.18.1 / 2021-06-23
4
+
5
+ * FIXED: Updated rack middleware position to zero
6
+
7
+ ### v0.18.0 / 2021-05-21
8
+
9
+ * ADDED: Updated API depedency for 1.0.0.rc1
10
+
11
+ ### v0.17.0 / 2021-04-22
12
+
13
+ * ADDED: Added http.route in rails instrumentation to match the spec
14
+ * FIXED: Rails example by not using `rails` from git
15
+ * FIXED: Updated rack middleware position to zero
16
+
17
+ ### v0.16.0 / 2021-03-17
18
+
19
+ * FIXED: Example scripts now reference local common lib
20
+ * DOCS: Replace Gitter with GitHub Discussions
21
+
22
+ ### v0.15.0 / 2021-02-18
23
+
24
+ * (No significant changes)
25
+
3
26
  ### v0.14.0 / 2021-02-03
4
27
 
5
28
  * (No significant changes)
@@ -14,12 +37,12 @@
14
37
 
15
38
  ### v0.11.0 / 2020-12-11
16
39
 
17
- * FIXED: Rails tests
18
- * FIXED: Copyright comments to not reference year
40
+ * FIXED: Rails tests
41
+ * FIXED: Copyright comments to not reference year
19
42
 
20
43
  ### v0.10.0 / 2020-12-03
21
44
 
22
- * FIXED: Otel-instrumentation-all not installing all
45
+ * FIXED: Otel-instrumentation-all not installing all
23
46
 
24
47
  ### v0.9.0 / 2020-11-27
25
48
 
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
@@ -14,8 +14,8 @@ module OpenTelemetry
14
14
  config.before_initialize do |app|
15
15
  OpenTelemetry::Instrumentation::Rack::Instrumentation.instance.install({})
16
16
 
17
- app.middleware.insert_after(
18
- ActionDispatch::RequestId,
17
+ app.middleware.insert_before(
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.14.0'
10
+ VERSION = '0.18.1'
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.14.0
4
+ version: 0.18.1
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-02-03 00:00:00.000000000 Z
11
+ date: 2021-06-24 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.14.0
19
+ version: 1.0.0.rc2
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.14.0
26
+ version: 1.0.0.rc2
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.1
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.1
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.14.0
47
+ version: 0.19.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.14.0
54
+ version: 0.19.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