influxdb-rails 1.0.1.beta2 → 1.0.1.beta3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rubocop.yml +18 -0
  3. data/.github/workflows/spec.yml +31 -0
  4. data/.rubocop.yml +34 -6
  5. data/CHANGELOG.md +3 -0
  6. data/README.md +3 -4
  7. data/gemfiles/Gemfile.rails-6.0.x +1 -2
  8. data/gemfiles/Gemfile.rails-6.1.x +9 -0
  9. data/influxdb-rails.gemspec +1 -1
  10. data/lib/influxdb-rails.rb +1 -2
  11. data/lib/influxdb/rails/middleware/active_job_subscriber.rb +11 -11
  12. data/lib/influxdb/rails/railtie.rb +0 -1
  13. data/lib/influxdb/rails/sql/normalizer.rb +3 -3
  14. data/lib/influxdb/rails/tags.rb +1 -1
  15. data/lib/influxdb/rails/version.rb +1 -1
  16. data/lib/rails/generators/influxdb/templates/initializer.rb +4 -0
  17. data/sample-dashboard/Rakefile +2 -2
  18. data/spec/requests/action_controller_metrics_spec.rb +4 -4
  19. data/spec/requests/action_mailer_deliver_metrics_spec.rb +1 -1
  20. data/spec/requests/action_view_collection_metrics_spec.rb +2 -2
  21. data/spec/requests/action_view_partial_metrics_spec.rb +2 -2
  22. data/spec/requests/action_view_template_metrics_spec.rb +2 -2
  23. data/spec/requests/active_job_enqueue_metrics_spec.rb +1 -1
  24. data/spec/requests/active_job_perform_metrics_spec.rb +1 -1
  25. data/spec/requests/active_record_instantiation_metrics_spec.rb +2 -2
  26. data/spec/requests/active_record_sql_metrics_spec.rb +3 -3
  27. data/spec/requests/block_inistrumentation_spec.rb +2 -2
  28. data/spec/requests/context_spec.rb +1 -1
  29. data/spec/requests/logger_spec.rb +1 -1
  30. data/spec/spec_helper.rb +2 -1
  31. data/spec/support/rails5/app.rb +2 -3
  32. data/spec/support/rails6/app.rb +2 -3
  33. metadata +8 -9
  34. data/.travis.yml +0 -28
  35. data/spec/requests/active_job_perform_start_metrics_spec.rb +0 -68
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d47f714f971f95efc094148a585d056fe54cfa5847d30a2e18847ccc87a63f7b
4
- data.tar.gz: 16c57b616923500e54755db3116560f7573837cc2c6c663ff1ecaf03b30bc16e
3
+ metadata.gz: 3fe64b1f95e624972f8ef34c23e3d3f3b9312d33bbdd8480c1ba630449edcc03
4
+ data.tar.gz: 95efa62efbc63f9d480cf896c8b6b37d32aebd27e9ca874fcb5d9542cdcf6de0
5
5
  SHA512:
6
- metadata.gz: 957abc17d22ddb564455fa17c3dbb927715dbf44b004bc53da1c71dc405d3d15ca0b9fa7804c7bd0d30e09f68d68bc7b82dcffea9e4c1dd8d07086065d0f6e8f
7
- data.tar.gz: 6a8f535427d62b5b7db4830885a26fb8c4ed64ffce7d8b40d2cae618d130829bb6ee5cffcaad34a1443233e4fec5eca154638511b9adf1d96fb61b91c51dda33
6
+ metadata.gz: 9d730e69f948734211948092f47f2d089cde0a117e8cf50a4abd6de0a76f382f16f7e7da565547a5e6daf3740aa806ba2376f2dfe8145c4d61749639bdc095e7
7
+ data.tar.gz: 25e4085b54c19d22e6fa06bc09f52243fe1d4cc932de513deebafe922b6c415eed2a0250d120a663bdd5621401669a9eba922178e2136b519d2c98124e7fe63a
@@ -0,0 +1,18 @@
1
+ name: Rubocop
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ rubocop:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - uses: ruby/setup-ruby@v1
15
+ with:
16
+ ruby-version: 2.7
17
+ bundler-cache: true
18
+ - run: bundle exec rake rubocop
@@ -0,0 +1,31 @@
1
+ name: Specs
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ spec:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ ruby: [ '2.5', '2.6', '2.7', 'head' ]
15
+ rails: [ 'gemfiles/Gemfile.rails-6.1.x', 'gemfiles/Gemfile.rails-6.0.x', 'gemfiles/Gemfile.rails-5.2.x']
16
+ exclude:
17
+ - { ruby: '2.7', rails: 'gemfiles/Gemfile.rails-5.2.x' }
18
+ - { ruby: 'head', rails: 'gemfiles/Gemfile.rails-5.2.x' }
19
+ - { ruby: '2.5', rails: 'gemfiles/Gemfile.rails-6.0.x' }
20
+ continue-on-error: ${{ endsWith(matrix.ruby, 'head') || matrix.ruby == 'debug' }}
21
+ env:
22
+ BUNDLE_GEMFILE: ${{ matrix.rails }}
23
+ name: Ruby ${{ matrix.ruby }} ${{ matrix.rails }} specs
24
+ steps:
25
+ - uses: actions/checkout@v2
26
+ - uses: ruby/setup-ruby@v1
27
+ with:
28
+ ruby-version: ${{ matrix.ruby }}
29
+ bundler-cache: true
30
+ - name: Run tests
31
+ run: bundle exec rake spec
@@ -13,16 +13,13 @@ AllCops:
13
13
  StyleGuideCopsOnly: false
14
14
  TargetRubyVersion: 2.4
15
15
 
16
- Rails:
17
- Enabled: false
18
-
19
16
  Layout/EmptyLinesAroundArguments:
20
17
  Enabled: false
21
18
 
22
19
  Layout/SpaceBeforeBlockBraces:
23
20
  EnforcedStyleForEmptyBraces: space
24
21
 
25
- Layout/AlignHash:
22
+ Layout/HashAlignment:
26
23
  EnforcedColonStyle: table
27
24
  EnforcedHashRocketStyle: table
28
25
 
@@ -34,7 +31,7 @@ Metrics/BlockLength:
34
31
  - 'spec/**/*.rb'
35
32
  - 'influxdb-rails.gemspec'
36
33
 
37
- Metrics/LineLength:
34
+ Layout/LineLength:
38
35
  Max: 100
39
36
  Exclude:
40
37
  - 'spec/**/*.rb'
@@ -46,7 +43,7 @@ Metrics/ModuleLength:
46
43
  Metrics/ParameterLists:
47
44
  Max: 6
48
45
 
49
- Naming/UncommunicativeMethodParamName:
46
+ Naming/MethodParameterName:
50
47
  AllowedNames: [io, id, db, ex]
51
48
 
52
49
  Naming/FileName:
@@ -81,3 +78,34 @@ Style/TrailingCommaInHashLiteral:
81
78
  EnforcedStyleForMultiline: comma
82
79
  Exclude:
83
80
  - "spec/**/*.rb"
81
+
82
+ Lint/DuplicateBranch:
83
+ Enabled: true
84
+ Lint/DuplicateRegexpCharacterClassElement:
85
+ Enabled: true
86
+ Lint/EmptyBlock:
87
+ Enabled: true
88
+ Lint/EmptyClass:
89
+ Enabled: true
90
+ Lint/NoReturnInBeginEndBlocks:
91
+ Enabled: true
92
+ Lint/ToEnumArguments:
93
+ Enabled: true
94
+ Lint/UnexpectedBlockArity:
95
+ Enabled: true
96
+ Lint/UnmodifiedReduceAccumulator:
97
+ Enabled: true
98
+ Style/ArgumentsForwarding:
99
+ Enabled: true
100
+ Style/CollectionCompact:
101
+ Enabled: true
102
+ Style/DocumentDynamicEvalDefinition:
103
+ Enabled: true
104
+ Style/NegatedIfElseCondition:
105
+ Enabled: true
106
+ Style/NilLambda:
107
+ Enabled: true
108
+ Style/RedundantArgument:
109
+ Enabled: true
110
+ Style/SwapValues:
111
+ Enabled: true
@@ -2,6 +2,9 @@
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.beta3, release 2020-10-16
6
+ - Drop `perform_start.active_job` subscriber, it's rather useless on dashboards.
7
+
5
8
  ## v1.0.1.beta2, released 2020-09-14
6
9
  - Implement [`deliver.action_mailer`](https://guides.rubyonrails.org/active_support_instrumentation.html#deliver-action-mailer) subscriber
7
10
  - Add missing Active Job documentation
data/README.md CHANGED
@@ -137,7 +137,6 @@ Reported tags:
137
137
  Reported ActiveSupport instrumentation hooks:
138
138
 
139
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
140
  - [perform.active\_job](https://guides.rubyonrails.org/active_support_instrumentation.html#perform-active-job)
142
141
 
143
142
  Reported values:
@@ -149,14 +148,14 @@ Reported values:
149
148
  Reported tags:
150
149
 
151
150
  ```ruby
152
- hook: ["enqueue", "perform_start", "perform"],
153
- state: ["queued", "running", "succeeded", "failed"],
151
+ hook: ["enqueue", "perform"],
152
+ state: ["queued", "succeeded", "failed"],
154
153
  job: "SomeJobClassName",
155
154
  queue: "queue_name"
156
155
  ```
157
156
 
158
157
  *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`.
158
+ The enqueue hook is a counter and always reports a value of `1`.
160
159
 
161
160
  ### Action Mailer
162
161
 
@@ -4,7 +4,6 @@ gem 'actionpack', '~> 6.0.0'
4
4
  gem 'activesupport', '~> 6.0.0'
5
5
  gem 'activemodel', '~> 6.0.0'
6
6
  gem 'sqlite3', '~> 1.4'
7
- # FIXME: https://github.com/rspec/rspec-rails/issues/2177
8
- gem 'rspec-rails', '~> 4.0.0.beta2'
7
+ gem 'rspec-rails'
9
8
 
10
9
  gemspec :path => '../'
@@ -0,0 +1,9 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem 'actionpack', '~> 6.1.0'
4
+ gem 'activesupport', '~> 6.1.0'
5
+ gem 'activemodel', '~> 6.1.0'
6
+ gem 'sqlite3', '~> 1.4'
7
+ gem 'rspec-rails'
8
+
9
+ gemspec :path => '../'
@@ -38,7 +38,7 @@ Gem::Specification.new do |spec|
38
38
  spec.add_development_dependency "rdoc"
39
39
  spec.add_development_dependency "rspec"
40
40
  spec.add_development_dependency "rspec-rails", ">= 3.0.0"
41
- spec.add_development_dependency "rubocop", "~> 0.61.1"
41
+ spec.add_development_dependency "rubocop", "~> 1.7.0"
42
42
  spec.add_development_dependency "sqlite3"
43
43
  spec.add_development_dependency "tzinfo"
44
44
  end
@@ -21,8 +21,7 @@ module InfluxDB
21
21
  # InfluxDB and Rails. This is a singleton class.
22
22
  module Rails
23
23
  class << self
24
- attr_writer :configuration
25
- attr_writer :client
24
+ attr_writer :configuration, :client
26
25
 
27
26
  def configure
28
27
  return configuration unless block_given?
@@ -6,6 +6,13 @@ module InfluxDB
6
6
  class ActiveJobSubscriber < Subscriber # :nodoc:
7
7
  private
8
8
 
9
+ JOB_STATE = {
10
+ "enqueue" => "queued",
11
+ "perform_start" => "running",
12
+ "perform" => "succeeded",
13
+ }.freeze
14
+ private_constant :JOB_STATE
15
+
9
16
  def values
10
17
  {
11
18
  value: value,
@@ -24,14 +31,7 @@ module InfluxDB
24
31
  def job_state
25
32
  return "failed" if failed?
26
33
 
27
- case short_hook_name
28
- when "enqueue"
29
- "queued"
30
- when "perform_start"
31
- "running"
32
- when "perform"
33
- "succeeded"
34
- end
34
+ JOB_STATE[short_hook_name]
35
35
  end
36
36
 
37
37
  def measure_performance?
@@ -44,8 +44,8 @@ module InfluxDB
44
44
 
45
45
  def fetch_short_hook_name
46
46
  return "enqueue" if hook_name.include?("enqueue")
47
- return "perform_start" if hook_name.include?("perform_start")
48
- return "perform" if hook_name.include?("perform")
47
+
48
+ "perform"
49
49
  end
50
50
 
51
51
  def job
@@ -59,7 +59,7 @@ module InfluxDB
59
59
  end
60
60
 
61
61
  def failed?
62
- payload[:exception_object]
62
+ payload[:aborted]
63
63
  end
64
64
  end
65
65
  end
@@ -32,7 +32,6 @@ module InfluxDB
32
32
  "sql.active_record" => Middleware::SqlSubscriber,
33
33
  "instantiation.active_record" => Middleware::ActiveRecordSubscriber,
34
34
  "enqueue.active_job" => Middleware::ActiveJobSubscriber,
35
- "perform_start.active_job" => Middleware::ActiveJobSubscriber,
36
35
  "perform.active_job" => Middleware::ActiveJobSubscriber,
37
36
  "deliver.action_mailer" => Middleware::ActionMailerSubscriber,
38
37
  "block_instrumentation.influxdb_rails" => Middleware::BlockInstrumentationSubscriber,
@@ -8,9 +8,9 @@ module InfluxDB
8
8
 
9
9
  def perform
10
10
  query.squish!
11
- query.gsub!(/(\s(=|>|<|>=|<=|<>|!=)\s)('[^']+'|[\$\+\-\w\.]+)/, '\1xxx')
12
- query.gsub!(/(\sIN\s)\([^\(\)]+\)/i, '\1(xxx)')
13
- regex = /(\sBETWEEN\s)('[^']+'|[\+\-\w\.]+)(\sAND\s)('[^']+'|[\+\-\w\.]+)/i
11
+ query.gsub!(/(\s(=|>|<|>=|<=|<>|!=)\s)('[^']+'|[$+\-\w.]+)/, '\1xxx')
12
+ query.gsub!(/(\sIN\s)\([^()]+\)/i, '\1(xxx)')
13
+ regex = /(\sBETWEEN\s)('[^']+'|[+\-\w.]+)(\sAND\s)('[^']+'|[+\-\w.]+)/i
14
14
  query.gsub!(regex, '\1xxx\3xxx')
15
15
  query.gsub!(/(\sVALUES\s)\(.+\)/i, '\1(xxx)')
16
16
  query.gsub!(/(\s(LIKE|ILIKE|SIMILAR TO|NOT SIMILAR TO)\s)('[^']+')/i, '\1xxx')
@@ -1,7 +1,7 @@
1
1
  module InfluxDB
2
2
  module Rails
3
3
  class Tags
4
- def initialize(tags: {}, config:, additional_tags: InfluxDB::Rails.current.tags)
4
+ def initialize(config:, tags: {}, additional_tags: InfluxDB::Rails.current.tags)
5
5
  @tags = tags
6
6
  @config = config
7
7
  @additional_tags = additional_tags
@@ -1,5 +1,5 @@
1
1
  module InfluxDB
2
2
  module Rails
3
- VERSION = "1.0.1.beta2".freeze
3
+ VERSION = "1.0.1.beta3".freeze
4
4
  end
5
5
  end
@@ -11,6 +11,10 @@ InfluxDB::Rails.configure do |config|
11
11
  # config.client.username = "root"
12
12
  # config.client.password = "root"
13
13
 
14
+ ## If your InfluxDB service requires an HTTPS connection then you can
15
+ ## enable it here.
16
+ # config.client.use_ssl = true
17
+
14
18
  ## Various other client and connection options. These are used to create
15
19
  ## an `InfluxDB::Client` instance (i.e. `InfluxDB::Rails.client`).
16
20
  ##
@@ -1,9 +1,9 @@
1
1
  task default: %w[prepare]
2
2
 
3
- # rubocop:disable Metrics/LineLength
3
+ # rubocop:disable Layout/LineLength
4
4
  task :prepare do
5
5
  sh "cat 'Ruby On Rails Performance.json' | sed 's/${DS_INFLUXDB}/InfluxDB/g' > provisioning/performance.json"
6
6
  sh "cat 'Ruby On Rails Performance (per Request).json' | sed 's/${DS_INFLUXDB}/InfluxDB/g' > provisioning/performance-request.json"
7
7
  sh "cat 'Ruby On Rails Performance (per Action).json' | sed 's/${DS_INFLUXDB}/InfluxDB/g' > provisioning/performance-action.json"
8
8
  end
9
- # rubocop:enable Metrics/LineLength
9
+ # rubocop:enable Layout/LineLength
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../spec_helper"
2
2
 
3
3
  RSpec.describe "ActionController metrics", type: :request do
4
4
  let(:tags_middleware) do
@@ -31,9 +31,9 @@ RSpec.describe "ActionController metrics", type: :request do
31
31
  values: a_hash_including(
32
32
  additional_value: :value,
33
33
  request_id: :request_id,
34
- view: be_between(1, 30),
35
- db: be_between(1, 30),
36
- controller: be_between(1, 30)
34
+ view: be_between(1, 500),
35
+ db: be_between(1, 500),
36
+ controller: be_between(1, 500)
37
37
  )
38
38
  )
39
39
  end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../spec_helper"
2
2
 
3
3
  RSpec.describe "ActionMailer deliver metrics", type: :request do
4
4
  let(:tags_middleware) do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../spec_helper"
2
2
 
3
3
  RSpec.describe "ActionView collection metrics", type: :request do
4
4
  let(:tags_middleware) do
@@ -30,7 +30,7 @@ RSpec.describe "ActionView collection metrics", type: :request do
30
30
  additional_value: :value,
31
31
  count: 3,
32
32
  request_id: :request_id,
33
- value: be_between(1, 30)
33
+ value: be_between(1, 500)
34
34
  )
35
35
  )
36
36
  end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../spec_helper"
2
2
 
3
3
  RSpec.describe "ActionView partial metrics", type: :request do
4
4
  let(:tags_middleware) do
@@ -28,7 +28,7 @@ RSpec.describe "ActionView partial metrics", type: :request do
28
28
  values: a_hash_including(
29
29
  additional_value: :value,
30
30
  request_id: :request_id,
31
- value: be_between(1, 30)
31
+ value: be_between(1, 500)
32
32
  )
33
33
  )
34
34
  end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../spec_helper"
2
2
 
3
3
  RSpec.describe "ActionView template metrics", type: :request do
4
4
  let(:tags_middleware) do
@@ -28,7 +28,7 @@ RSpec.describe "ActionView template metrics", type: :request do
28
28
  values: a_hash_including(
29
29
  additional_value: :value,
30
30
  request_id: :request_id,
31
- value: be_between(1, 30)
31
+ value: be_between(1, 500)
32
32
  )
33
33
  )
34
34
  end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../spec_helper"
2
2
 
3
3
  RSpec.describe "ActiveJob enqueue metrics", type: :request do
4
4
  let(:tags_middleware) do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../spec_helper"
2
2
 
3
3
  RSpec.describe "ActiveJobs perform metrics", type: :request do
4
4
  let(:tags_middleware) do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../spec_helper"
2
2
 
3
3
  RSpec.describe "ActiveRecord instantiation metrics", type: :request do
4
4
  let(:tags_middleware) do
@@ -30,7 +30,7 @@ RSpec.describe "ActiveRecord instantiation metrics", type: :request do
30
30
  values: a_hash_including(
31
31
  additional_value: :value,
32
32
  request_id: :request_id,
33
- value: be_between(1, 30),
33
+ value: be_between(1, 500),
34
34
  record_count: 1
35
35
  )
36
36
  )
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../spec_helper"
2
2
 
3
3
  RSpec.describe "ActiveRecord SQL metrics", type: :request do
4
4
  let(:tags_middleware) do
@@ -32,7 +32,7 @@ RSpec.describe "ActiveRecord SQL metrics", type: :request do
32
32
  values: a_hash_including(
33
33
  additional_value: :value,
34
34
  request_id: :request_id,
35
- value: be_between(1, 30),
35
+ value: be_between(1, 500),
36
36
  sql: "INSERT INTO \"metrics\" (\"name\", \"created_at\", \"updated_at\") VALUES (xxx)"
37
37
  )
38
38
  )
@@ -58,7 +58,7 @@ RSpec.describe "ActiveRecord SQL metrics", type: :request do
58
58
  values: a_hash_including(
59
59
  additional_value: :value,
60
60
  request_id: :request_id,
61
- value: be_between(1, 30),
61
+ value: be_between(1, 500),
62
62
  sql: "INSERT INTO \"metrics\" (\"name\", \"created_at\", \"updated_at\") VALUES (xxx)"
63
63
  )
64
64
  )
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../spec_helper"
2
2
 
3
3
  RSpec.describe "BlockInstrumentation metrics", type: :request do
4
4
  let(:tags_middleware) do
@@ -30,7 +30,7 @@ RSpec.describe "BlockInstrumentation metrics", type: :request do
30
30
  additional_value: :value,
31
31
  request_id: :request_id,
32
32
  block_value: :block_value,
33
- value: be_between(1, 30)
33
+ value: be_between(1, 500)
34
34
  )
35
35
  )
36
36
  end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../spec_helper"
2
2
 
3
3
  RSpec.describe "Context", type: :request do
4
4
  it "resets the context after a request" do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../spec_helper"
2
2
 
3
3
  RSpec.describe "Logger", type: :request do
4
4
  it "logs exception" do
@@ -2,7 +2,7 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
2
2
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
  require "active_support"
4
4
  require_relative "../lib/influxdb/rails/helpers/rspec_matchers"
5
- require File.expand_path(File.dirname(__FILE__) + "/support/broken_client")
5
+ require File.expand_path("#{File.dirname(__FILE__)}/support/broken_client")
6
6
 
7
7
  ENV["RAILS_ENV"] ||= "test"
8
8
 
@@ -34,6 +34,7 @@ RSpec.configure do |config|
34
34
  end
35
35
 
36
36
  config.include ActiveSupport::Testing::TimeHelpers
37
+ config.include ActiveSupport::Testing::Assertions
37
38
  config.include ActiveJob::TestHelper
38
39
 
39
40
  config.include InfluxDB::Rails::BrokenClient
@@ -20,9 +20,6 @@ app.routes.draw do
20
20
  resources :exceptions, only: :index
21
21
  end
22
22
 
23
- InfluxDB::Rails.configure do |config|
24
- end
25
-
26
23
  ENV["DATABASE_URL"] = "sqlite3::memory:"
27
24
  ActiveRecord::Schema.define do
28
25
  create_table :metrics, force: true do |t|
@@ -52,7 +49,9 @@ class MetricMailer < ActionMailer::Base
52
49
  end
53
50
 
54
51
  class Metric < ActiveRecord::Base; end
52
+
55
53
  class ApplicationController < ActionController::Base; end
54
+
56
55
  class MetricsController < ApplicationController
57
56
  prepend_view_path File.join(__dir__, "..", "views")
58
57
 
@@ -20,9 +20,6 @@ app.routes.draw do
20
20
  resources :exceptions, only: :index
21
21
  end
22
22
 
23
- InfluxDB::Rails.configure do |config|
24
- end
25
-
26
23
  ENV["DATABASE_URL"] = "sqlite3::memory:"
27
24
  ActiveRecord::Schema.define do
28
25
  create_table :metrics, force: true do |t|
@@ -52,7 +49,9 @@ class MetricMailer < ActionMailer::Base
52
49
  end
53
50
 
54
51
  class Metric < ActiveRecord::Base; end
52
+
55
53
  class ApplicationController < ActionController::Base; end
54
+
56
55
  class MetricsController < ApplicationController
57
56
  prepend_view_path File.join(__dir__, "..", "views")
58
57
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: influxdb-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1.beta2
4
+ version: 1.0.1.beta3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Bruckmayer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-09-14 00:00:00.000000000 Z
12
+ date: 2021-01-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: influxdb
@@ -205,14 +205,14 @@ dependencies:
205
205
  requirements:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: 0.61.1
208
+ version: 1.7.0
209
209
  type: :development
210
210
  prerelease: false
211
211
  version_requirements: !ruby/object:Gem::Requirement
212
212
  requirements:
213
213
  - - "~>"
214
214
  - !ruby/object:Gem::Version
215
- version: 0.61.1
215
+ version: 1.7.0
216
216
  - !ruby/object:Gem::Dependency
217
217
  name: sqlite3
218
218
  requirement: !ruby/object:Gem::Requirement
@@ -250,10 +250,11 @@ extensions: []
250
250
  extra_rdoc_files: []
251
251
  files:
252
252
  - ".github/dependabot.yml"
253
+ - ".github/workflows/rubocop.yml"
254
+ - ".github/workflows/spec.yml"
253
255
  - ".gitignore"
254
256
  - ".rspec"
255
257
  - ".rubocop.yml"
256
- - ".travis.yml"
257
258
  - CHANGELOG.md
258
259
  - Gemfile
259
260
  - LICENSE.txt
@@ -262,6 +263,7 @@ files:
262
263
  - config.ru
263
264
  - gemfiles/Gemfile.rails-5.2.x
264
265
  - gemfiles/Gemfile.rails-6.0.x
266
+ - gemfiles/Gemfile.rails-6.1.x
265
267
  - influxdb-rails.gemspec
266
268
  - lib/influxdb-rails.rb
267
269
  - lib/influxdb/rails/configuration.rb
@@ -304,7 +306,6 @@ files:
304
306
  - spec/requests/action_view_template_metrics_spec.rb
305
307
  - spec/requests/active_job_enqueue_metrics_spec.rb
306
308
  - spec/requests/active_job_perform_metrics_spec.rb
307
- - spec/requests/active_job_perform_start_metrics_spec.rb
308
309
  - spec/requests/active_record_instantiation_metrics_spec.rb
309
310
  - spec/requests/active_record_sql_metrics_spec.rb
310
311
  - spec/requests/block_inistrumentation_spec.rb
@@ -345,8 +346,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
345
346
  - !ruby/object:Gem::Version
346
347
  version: 1.3.1
347
348
  requirements: []
348
- rubyforge_project:
349
- rubygems_version: 2.7.6.2
349
+ rubygems_version: 3.1.4
350
350
  signing_key:
351
351
  specification_version: 4
352
352
  summary: InfluxDB bindings for Ruby on Rails.
@@ -358,7 +358,6 @@ test_files:
358
358
  - spec/requests/action_view_template_metrics_spec.rb
359
359
  - spec/requests/active_job_enqueue_metrics_spec.rb
360
360
  - spec/requests/active_job_perform_metrics_spec.rb
361
- - spec/requests/active_job_perform_start_metrics_spec.rb
362
361
  - spec/requests/active_record_instantiation_metrics_spec.rb
363
362
  - spec/requests/active_record_sql_metrics_spec.rb
364
363
  - spec/requests/block_inistrumentation_spec.rb
@@ -1,28 +0,0 @@
1
- sudo: required
2
- dist: trusty
3
- language: ruby
4
- before_install:
5
- - gem update --system --no-doc
6
- - gem install bundler --no-doc
7
- - gem update bundler --no-doc
8
- rvm:
9
- - ruby-head
10
- - "2.7"
11
- - "2.6"
12
- - "2.5"
13
- gemfile:
14
- - gemfiles/Gemfile.rails-6.0.x
15
- - gemfiles/Gemfile.rails-5.2.x
16
- env:
17
- - TEST_TASK=spec
18
- matrix:
19
- allow_failures:
20
- - rvm: ruby-head
21
- include:
22
- - { rvm: "2.6", gemfile: "Gemfile", env: [TEST_TASK=rubocop] }
23
- addons:
24
- apt:
25
- packages:
26
- - haveged
27
- - libgmp-dev
28
- script: bundle exec rake $TEST_TASK
@@ -1,68 +0,0 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
2
-
3
- RSpec.describe "ActiveJob start 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
- perform_enqueued_jobs do
18
- get "/metrics"
19
- end
20
-
21
- expect_metric(
22
- tags: a_hash_including(
23
- location: "MetricsController#index",
24
- hook: "perform_start",
25
- state: "running",
26
- job: "MetricJob",
27
- queue: "default",
28
- server: Socket.gethostname,
29
- app_name: :app_name,
30
- tags_middleware: :tags_middleware
31
- ),
32
- values: a_hash_including(
33
- value: 1
34
- )
35
- )
36
- end
37
-
38
- it "includes correct timestamps" do
39
- travel_to Time.zone.local(2018, 1, 1, 9, 0, 0)
40
-
41
- perform_enqueued_jobs do
42
- get "/metrics"
43
- end
44
-
45
- expect_metric(
46
- tags: a_hash_including(
47
- location: "MetricsController#index",
48
- hook: "perform_start"
49
- ),
50
- timestamp: 1_514_797_200
51
- )
52
- end
53
-
54
- it "does not write metric when hook is ignored" do
55
- allow_any_instance_of(InfluxDB::Rails::Configuration).to receive(:ignored_hooks).and_return(["perform_start.active_job"])
56
-
57
- perform_enqueued_jobs do
58
- get "/metrics"
59
- end
60
-
61
- expect_no_metric(
62
- tags: a_hash_including(
63
- location: "MetricsController#index",
64
- hook: "perform_start"
65
- )
66
- )
67
- end
68
- end