opentelemetry-instrumentation-rails 0.14.0 → 0.18.1

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: 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