influxdb-rails 1.0.1.beta1 → 1.0.1.beta2

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: 0c7bbb899eeb093fce13f1997b9f99eeb4451ca059676cd7b23e44fc29058769
4
- data.tar.gz: c05d83cb5fbbb99b1b8a34794a174e1c4a1d6193d4aa2560fa3dba22fa665da1
3
+ metadata.gz: d47f714f971f95efc094148a585d056fe54cfa5847d30a2e18847ccc87a63f7b
4
+ data.tar.gz: 16c57b616923500e54755db3116560f7573837cc2c6c663ff1ecaf03b30bc16e
5
5
  SHA512:
6
- metadata.gz: c1681dc59869917c09f4da05beaa880565814a263df81567c33af9ab6b5b529d49e8c7dbf666a9758e998adf08f2f521b2fa4734b80845381b3672c824040450
7
- data.tar.gz: 420b905817df05e25cda3a22dfa05bf32118e94104915a3aba212dc56f39396f1ff1aadf3261a2018b650b56f1431140829b6142a7324022fea8542413872697
6
+ metadata.gz: 957abc17d22ddb564455fa17c3dbb927715dbf44b004bc53da1c71dc405d3d15ca0b9fa7804c7bd0d30e09f68d68bc7b82dcffea9e4c1dd8d07086065d0f6e8f
7
+ data.tar.gz: 6a8f535427d62b5b7db4830885a26fb8c4ed64ffce7d8b40d2cae618d130829bb6ee5cffcaad34a1443233e4fec5eca154638511b9adf1d96fb61b91c51dda33
@@ -10,12 +10,9 @@ rvm:
10
10
  - "2.7"
11
11
  - "2.6"
12
12
  - "2.5"
13
- - "2.4"
14
13
  gemfile:
15
14
  - gemfiles/Gemfile.rails-6.0.x
16
15
  - gemfiles/Gemfile.rails-5.2.x
17
- - gemfiles/Gemfile.rails-5.1.x
18
- - gemfiles/Gemfile.rails-5.0.x
19
16
  env:
20
17
  - TEST_TASK=spec
21
18
  matrix:
@@ -23,9 +20,6 @@ matrix:
23
20
  - rvm: ruby-head
24
21
  include:
25
22
  - { rvm: "2.6", gemfile: "Gemfile", env: [TEST_TASK=rubocop] }
26
- exclude:
27
- # Rails > 5 not on MRI 2.4+
28
- - { rvm: "2.4", gemfile: "gemfiles/Gemfile.rails-6.0.x" }
29
23
  addons:
30
24
  apt:
31
25
  packages:
@@ -2,6 +2,12 @@
2
2
 
3
3
  For the full commit log, [see here](https://github.com/influxdata/influxdb-rails/commits/master).
4
4
 
5
+ ## v1.0.1.beta2, released 2020-09-14
6
+ - Implement [`deliver.action_mailer`](https://guides.rubyonrails.org/active_support_instrumentation.html#deliver-action-mailer) subscriber
7
+ - Add missing Active Job documentation
8
+ - Drop support for Ruby 2.4
9
+ - Drop support for Rails < 5.2
10
+
5
11
  ## v1.0.1.beta1, released 2020-08-21
6
12
  - Drop support for Ruby 2.3
7
13
  - Drop support for Rails 4.x
data/README.md CHANGED
@@ -132,6 +132,53 @@ Reported tags:
132
132
  name: "Post Load"
133
133
  ```
134
134
 
135
+ ### Active Job
136
+
137
+ Reported ActiveSupport instrumentation hooks:
138
+
139
+ - [enqueue.active\_job](https://guides.rubyonrails.org/active_support_instrumentation.html#enqueue-active-job)
140
+ - [perform_start.active\_job](https://guides.rubyonrails.org/active_support_instrumentation.html#perform-start-active-job)
141
+ - [perform.active\_job](https://guides.rubyonrails.org/active_support_instrumentation.html#perform-active-job)
142
+
143
+ Reported values:
144
+
145
+ ```ruby
146
+ value: 89.467
147
+ ```
148
+
149
+ Reported tags:
150
+
151
+ ```ruby
152
+ hook: ["enqueue", "perform_start", "perform"],
153
+ state: ["queued", "running", "succeeded", "failed"],
154
+ job: "SomeJobClassName",
155
+ queue: "queue_name"
156
+ ```
157
+
158
+ *Note*: Only the measurements with the hook `perform` report a duration in the value.
159
+ The other hooks are counters and always report a value of `1`.
160
+
161
+ ### Action Mailer
162
+
163
+ Reported ActiveSupport instrumentation hooks:
164
+
165
+ - [deliver.action\_mailer](https://guides.rubyonrails.org/active_support_instrumentation.html#deliver-action-mailer)
166
+
167
+ Reported values:
168
+
169
+ ```ruby
170
+ value: 1
171
+ ```
172
+
173
+ Reported tags:
174
+
175
+ ```ruby
176
+ hook: "deliver",
177
+ mailer: "SomeMailerClassName"
178
+ ```
179
+
180
+ *Note*: The hook is just a counter and always report a value of `1`.
181
+
135
182
  ## Configuration
136
183
 
137
184
  The only setting you actually need to configure is the name of the database
@@ -27,6 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.add_runtime_dependency "influxdb", "~> 0.6", ">= 0.6.4"
28
28
  spec.add_runtime_dependency "railties", ">= 5.0"
29
29
 
30
+ spec.add_development_dependency "actionmailer"
30
31
  spec.add_development_dependency "activejob"
31
32
  spec.add_development_dependency "activerecord"
32
33
  spec.add_development_dependency "bundler", ">= 1.0.0"
@@ -8,6 +8,7 @@ require "influxdb/rails/middleware/request_subscriber"
8
8
  require "influxdb/rails/middleware/sql_subscriber"
9
9
  require "influxdb/rails/middleware/active_record_subscriber"
10
10
  require "influxdb/rails/middleware/active_job_subscriber"
11
+ require "influxdb/rails/middleware/action_mailer_subscriber"
11
12
  require "influxdb/rails/sql/query"
12
13
  require "influxdb/rails/version"
13
14
  require "influxdb/rails/configuration"
@@ -0,0 +1,22 @@
1
+ require "influxdb/rails/middleware/subscriber"
2
+
3
+ module InfluxDB
4
+ module Rails
5
+ module Middleware
6
+ class ActionMailerSubscriber < Subscriber # :nodoc:
7
+ private
8
+
9
+ def values
10
+ { value: 1 }
11
+ end
12
+
13
+ def tags
14
+ {
15
+ hook: "deliver",
16
+ mailer: payload[:mailer],
17
+ }
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -34,6 +34,7 @@ module InfluxDB
34
34
  "enqueue.active_job" => Middleware::ActiveJobSubscriber,
35
35
  "perform_start.active_job" => Middleware::ActiveJobSubscriber,
36
36
  "perform.active_job" => Middleware::ActiveJobSubscriber,
37
+ "deliver.action_mailer" => Middleware::ActionMailerSubscriber,
37
38
  "block_instrumentation.influxdb_rails" => Middleware::BlockInstrumentationSubscriber,
38
39
  }.each do |hook_name, subscriber|
39
40
  ActiveSupport::Notifications.subscribe(hook_name, subscriber)
@@ -1,5 +1,5 @@
1
1
  module InfluxDB
2
2
  module Rails
3
- VERSION = "1.0.1.beta1".freeze
3
+ VERSION = "1.0.1.beta2".freeze
4
4
  end
5
5
  end
@@ -0,0 +1,49 @@
1
+ require File.dirname(__FILE__) + "/../spec_helper"
2
+
3
+ RSpec.describe "ActionMailer deliver metrics", type: :request do
4
+ let(:tags_middleware) do
5
+ lambda do |tags|
6
+ tags.merge(tags_middleware: :tags_middleware)
7
+ end
8
+ end
9
+ before do
10
+ allow_any_instance_of(InfluxDB::Rails::Configuration).to receive(:ignored_environments).and_return(%w[development])
11
+ allow_any_instance_of(ActionDispatch::Request).to receive(:request_id).and_return(:request_id)
12
+ allow_any_instance_of(InfluxDB::Rails::Configuration).to receive(:application_name).and_return(:app_name)
13
+ allow_any_instance_of(InfluxDB::Rails::Configuration).to receive(:tags_middleware).and_return(tags_middleware)
14
+ end
15
+
16
+ it "writes metric" do
17
+ get "/metrics"
18
+
19
+ expect_metric(
20
+ tags: a_hash_including(
21
+ hook: "deliver",
22
+ mailer: "MetricMailer",
23
+ location: "MetricsController#index",
24
+ additional_tag: :value,
25
+ server: Socket.gethostname,
26
+ app_name: :app_name,
27
+ tags_middleware: :tags_middleware
28
+ ),
29
+ values: a_hash_including(
30
+ additional_value: :value,
31
+ request_id: :request_id,
32
+ value: 1
33
+ )
34
+ )
35
+ end
36
+
37
+ it "does not write metric when hook is ignored" do
38
+ allow_any_instance_of(InfluxDB::Rails::Configuration).to receive(:ignored_hooks).and_return(["deliver.action_mailer"])
39
+
40
+ get "/metrics"
41
+
42
+ expect_no_metric(
43
+ tags: a_hash_including(
44
+ hook: "deliver",
45
+ mailer: "MetricMailer"
46
+ )
47
+ )
48
+ end
49
+ end
@@ -35,5 +35,6 @@ RSpec.configure do |config|
35
35
 
36
36
  config.include ActiveSupport::Testing::TimeHelpers
37
37
  config.include ActiveJob::TestHelper
38
+
38
39
  config.include InfluxDB::Rails::BrokenClient
39
40
  end
@@ -1,6 +1,7 @@
1
1
  require "action_controller/railtie"
2
2
  require "active_record/railtie"
3
3
  require "active_job"
4
+ require "action_mailer"
4
5
 
5
6
  app = Class.new(Rails::Application)
6
7
  app.config.secret_key_base = "1234567890abcdef1234567890abcdef"
@@ -11,6 +12,7 @@ app.config.eager_load = false
11
12
  app.config.root = __dir__
12
13
  Rails.backtrace_cleaner.remove_silencers!
13
14
  ActiveJob::Base.logger = Rails.logger
15
+ ActionMailer::Base.delivery_method = :test
14
16
  app.initialize!
15
17
 
16
18
  app.routes.draw do
@@ -38,6 +40,17 @@ class MetricJob < ActiveJob::Base
38
40
  end
39
41
  end
40
42
 
43
+ class MetricMailer < ActionMailer::Base
44
+ default from: "from@example.com"
45
+ layout "mailer"
46
+
47
+ def welcome_mail
48
+ mail(to: "eisendieter@werder.de", subject: "Welcome to metrics!") do |format|
49
+ format.text { render plain: "Hello Dieter!" }
50
+ end
51
+ end
52
+ end
53
+
41
54
  class Metric < ActiveRecord::Base; end
42
55
  class ApplicationController < ActionController::Base; end
43
56
  class MetricsController < ApplicationController
@@ -53,6 +66,7 @@ class MetricsController < ApplicationController
53
66
  1 + 1
54
67
  end
55
68
  MetricJob.perform_later
69
+ MetricMailer.with(user: "eisendieter").welcome_mail.deliver_now
56
70
  Metric.create!(name: "name")
57
71
  end
58
72
 
@@ -1,6 +1,7 @@
1
1
  require "action_controller/railtie"
2
2
  require "active_record/railtie"
3
3
  require "active_job"
4
+ require "action_mailer"
4
5
 
5
6
  app = Class.new(Rails::Application)
6
7
  app.config.secret_key_base = "1234567890abcdef1234567890abcdef"
@@ -11,6 +12,7 @@ app.config.eager_load = false
11
12
  app.config.root = __dir__
12
13
  Rails.backtrace_cleaner.remove_silencers!
13
14
  ActiveJob::Base.logger = Rails.logger
15
+ ActionMailer::Base.delivery_method = :test
14
16
  app.initialize!
15
17
 
16
18
  app.routes.draw do
@@ -38,6 +40,17 @@ class MetricJob < ActiveJob::Base
38
40
  end
39
41
  end
40
42
 
43
+ class MetricMailer < ActionMailer::Base
44
+ default from: "from@example.com"
45
+ layout "mailer"
46
+
47
+ def welcome_mail
48
+ mail(to: "eisendieter@werder.de", subject: "Welcome to metrics!") do |format|
49
+ format.text { render plain: "Hello Dieter!" }
50
+ end
51
+ end
52
+ end
53
+
41
54
  class Metric < ActiveRecord::Base; end
42
55
  class ApplicationController < ActionController::Base; end
43
56
  class MetricsController < ApplicationController
@@ -53,6 +66,7 @@ class MetricsController < ApplicationController
53
66
  1 + 1
54
67
  end
55
68
  MetricJob.perform_later
69
+ MetricMailer.with(user: "eisendieter").welcome_mail.deliver_now
56
70
  Metric.create!(name: "name")
57
71
  end
58
72
 
@@ -0,0 +1 @@
1
+ <%= yield %>
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: influxdb-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1.beta1
4
+ version: 1.0.1.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Bruckmayer
8
8
  - Henne Vogelsang
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-08-21 00:00:00.000000000 Z
12
+ date: 2020-09-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: influxdb
@@ -45,6 +45,20 @@ dependencies:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '5.0'
48
+ - !ruby/object:Gem::Dependency
49
+ name: actionmailer
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
48
62
  - !ruby/object:Gem::Dependency
49
63
  name: activejob
50
64
  requirement: !ruby/object:Gem::Requirement
@@ -246,8 +260,6 @@ files:
246
260
  - README.md
247
261
  - Rakefile
248
262
  - config.ru
249
- - gemfiles/Gemfile.rails-5.0.x
250
- - gemfiles/Gemfile.rails-5.1.x
251
263
  - gemfiles/Gemfile.rails-5.2.x
252
264
  - gemfiles/Gemfile.rails-6.0.x
253
265
  - influxdb-rails.gemspec
@@ -256,6 +268,7 @@ files:
256
268
  - lib/influxdb/rails/context.rb
257
269
  - lib/influxdb/rails/helpers/rspec_matchers.rb
258
270
  - lib/influxdb/rails/metric.rb
271
+ - lib/influxdb/rails/middleware/action_mailer_subscriber.rb
259
272
  - lib/influxdb/rails/middleware/active_job_subscriber.rb
260
273
  - lib/influxdb/rails/middleware/active_record_subscriber.rb
261
274
  - lib/influxdb/rails/middleware/block_instrumentation_subscriber.rb
@@ -285,6 +298,7 @@ files:
285
298
  - sample-dashboard/provisioning/performance-request.json
286
299
  - sample-dashboard/provisioning/performance.json
287
300
  - spec/requests/action_controller_metrics_spec.rb
301
+ - spec/requests/action_mailer_deliver_metrics_spec.rb
288
302
  - spec/requests/action_view_collection_metrics_spec.rb
289
303
  - spec/requests/action_view_partial_metrics_spec.rb
290
304
  - spec/requests/action_view_template_metrics_spec.rb
@@ -300,6 +314,7 @@ files:
300
314
  - spec/support/broken_client.rb
301
315
  - spec/support/rails5/app.rb
302
316
  - spec/support/rails6/app.rb
317
+ - spec/support/views/layouts/mailer.txt.erb
303
318
  - spec/support/views/metrics/_item.html.erb
304
319
  - spec/support/views/metrics/index.html.erb
305
320
  - spec/support/views/metrics/show.html.erb
@@ -315,7 +330,7 @@ metadata:
315
330
  changelog_uri: https://github.com/influxdata/influxdb-rails/blob/master/CHANGELOG.md
316
331
  documentation_uri: https://github.com/influxdata/influxdb-rails/blob/master/README.md
317
332
  source_code_uri: https://github.com/influxdata/influxdb-rails
318
- post_install_message:
333
+ post_install_message:
319
334
  rdoc_options: []
320
335
  require_paths:
321
336
  - lib
@@ -330,13 +345,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
330
345
  - !ruby/object:Gem::Version
331
346
  version: 1.3.1
332
347
  requirements: []
333
- rubyforge_project:
348
+ rubyforge_project:
334
349
  rubygems_version: 2.7.6.2
335
- signing_key:
350
+ signing_key:
336
351
  specification_version: 4
337
352
  summary: InfluxDB bindings for Ruby on Rails.
338
353
  test_files:
339
354
  - spec/requests/action_controller_metrics_spec.rb
355
+ - spec/requests/action_mailer_deliver_metrics_spec.rb
340
356
  - spec/requests/action_view_collection_metrics_spec.rb
341
357
  - spec/requests/action_view_partial_metrics_spec.rb
342
358
  - spec/requests/action_view_template_metrics_spec.rb
@@ -352,6 +368,7 @@ test_files:
352
368
  - spec/support/broken_client.rb
353
369
  - spec/support/rails5/app.rb
354
370
  - spec/support/rails6/app.rb
371
+ - spec/support/views/layouts/mailer.txt.erb
355
372
  - spec/support/views/metrics/_item.html.erb
356
373
  - spec/support/views/metrics/index.html.erb
357
374
  - spec/support/views/metrics/show.html.erb
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem 'actionpack', '~> 5.0.0'
4
- gem 'activesupport', '~> 5.0.0'
5
- gem 'activemodel', '~> 5.0.0'
6
- gem 'sqlite3', '1.3.13'
7
-
8
-
9
- gemspec :path => '../'
@@ -1,7 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem 'actionpack', '~> 5.1.0'
4
- gem 'activesupport', '~> 5.1.0'
5
- gem 'activemodel', '~> 5.1.0'
6
-
7
- gemspec :path => '../'