influxdb-rails 1.0.1.beta2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rubocop.yml +18 -0
  3. data/.github/workflows/spec.yml +32 -0
  4. data/.rubocop.yml +36 -7
  5. data/CHANGELOG.md +22 -1
  6. data/README.md +43 -34
  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 +2 -2
  10. data/lib/influxdb/rails/middleware/active_job_subscriber.rb +11 -11
  11. data/lib/influxdb/rails/middleware/request_subscriber.rb +9 -1
  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 +2 -2
  15. data/lib/influxdb/rails/values.rb +1 -1
  16. data/lib/influxdb/rails/version.rb +1 -1
  17. data/lib/influxdb-rails.rb +1 -2
  18. data/lib/rails/generators/influxdb/templates/initializer.rb +4 -0
  19. data/sample-dashboard/Dockerfile +2 -2
  20. data/sample-dashboard/README.md +21 -28
  21. data/sample-dashboard/Rakefile +10 -5
  22. data/sample-dashboard/Ruby On Rails ActiveJob.json +600 -0
  23. data/sample-dashboard/{Ruby On Rails Performance (per Action).json → Ruby On Rails Performance per Action.json } +343 -589
  24. data/sample-dashboard/{Ruby On Rails Performance (per Request).json → Ruby On Rails Performance per Request.json } +361 -211
  25. data/sample-dashboard/Ruby On Rails Performance.json +1347 -1139
  26. data/sample-dashboard/Ruby On Rails Requests.json +834 -0
  27. data/sample-dashboard/Ruby On Rails Slowlog by Action.json +278 -0
  28. data/sample-dashboard/Ruby On Rails Slowlog by Request.json +277 -0
  29. data/sample-dashboard/Ruby On Rails Slowlog by SQL.json +328 -0
  30. data/sample-dashboard/docker-compose.yml +6 -1
  31. data/sample-dashboard/provisioning/activejob.json +600 -0
  32. data/sample-dashboard/provisioning/performance-action.json +334 -580
  33. data/sample-dashboard/provisioning/performance-request.json +355 -205
  34. data/sample-dashboard/provisioning/performance.json +1336 -1128
  35. data/sample-dashboard/provisioning/requests.json +834 -0
  36. data/sample-dashboard/provisioning/slowlog-action.json +278 -0
  37. data/sample-dashboard/provisioning/slowlog-requests.json +277 -0
  38. data/sample-dashboard/provisioning/slowlog-sql.json +328 -0
  39. data/spec/requests/action_controller_metrics_spec.rb +24 -10
  40. data/spec/requests/action_mailer_deliver_metrics_spec.rb +4 -11
  41. data/spec/requests/action_view_collection_metrics_spec.rb +7 -16
  42. data/spec/requests/action_view_partial_metrics_spec.rb +6 -15
  43. data/spec/requests/action_view_template_metrics_spec.rb +6 -15
  44. data/spec/requests/active_job_enqueue_metrics_spec.rb +6 -15
  45. data/spec/requests/active_job_perform_metrics_spec.rb +5 -11
  46. data/spec/requests/active_record_instantiation_metrics_spec.rb +7 -16
  47. data/spec/requests/active_record_sql_metrics_spec.rb +13 -29
  48. data/spec/requests/block_inistrumentation_spec.rb +8 -17
  49. data/spec/requests/context_spec.rb +1 -1
  50. data/spec/requests/logger_spec.rb +1 -1
  51. data/spec/spec_helper.rb +2 -1
  52. data/spec/support/rails5/app.rb +3 -4
  53. data/spec/support/rails6/app.rb +3 -4
  54. data/spec/unit/tags.rb +47 -0
  55. metadata +25 -14
  56. data/.travis.yml +0 -28
  57. data/spec/requests/active_job_perform_start_metrics_spec.rb +0 -68
data/spec/unit/tags.rb ADDED
@@ -0,0 +1,47 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe InfluxDB::Rails::Tags do
4
+ let(:config) { InfluxDB::Rails::Configuration.new }
5
+
6
+ describe ".to_h" do
7
+ it "returns TrueClass" do
8
+ subject = InfluxDB::Rails::Tags.new(config: config, tags: { hans: true })
9
+ expect(subject.to_h).to a_hash_including(hans: true)
10
+ end
11
+
12
+ it "returns FalseClass" do
13
+ subject = InfluxDB::Rails::Tags.new(config: config, tags: { hans: false })
14
+ expect(subject.to_h).to a_hash_including(hans: false)
15
+ end
16
+
17
+ it "returns strings" do
18
+ subject = InfluxDB::Rails::Tags.new(config: config, tags: { hans: "franz" })
19
+ expect(subject.to_h).to a_hash_including(hans: "franz")
20
+ end
21
+
22
+ it "returns strings containing blank" do
23
+ subject = InfluxDB::Rails::Tags.new(config: config, tags: { hans: "franz hans" })
24
+ expect(subject.to_h).to a_hash_including(hans: "franz hans")
25
+ end
26
+
27
+ it "removes empty strings" do
28
+ subject = InfluxDB::Rails::Tags.new(config: config, tags: { hans: "", franz: " " })
29
+ expect(subject.to_h).not_to a_hash_including(hans: "", franz: " ")
30
+ end
31
+
32
+ it "returns symbols" do
33
+ subject = InfluxDB::Rails::Tags.new(config: config, tags: { hans: :franz })
34
+ expect(subject.to_h).to a_hash_including(hans: :franz)
35
+ end
36
+
37
+ it "removes nil" do
38
+ subject = InfluxDB::Rails::Tags.new(config: config, tags: { hans: nil })
39
+ expect(subject.to_h).not_to a_hash_including(hans: nil)
40
+ end
41
+
42
+ it "leaves arrays alone" do
43
+ subject = InfluxDB::Rails::Tags.new(config: config, tags: { hans: [], franz: %w[a b] })
44
+ expect(subject.to_h).to a_hash_including(hans: [], franz: %w[a b])
45
+ end
46
+ end
47
+ end
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.3
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-09-15 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.9.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.9.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
@@ -288,15 +290,25 @@ files:
288
290
  - sample-dashboard/Dockerfile
289
291
  - sample-dashboard/README.md
290
292
  - sample-dashboard/Rakefile
291
- - sample-dashboard/Ruby On Rails Performance (per Action).json
292
- - sample-dashboard/Ruby On Rails Performance (per Request).json
293
+ - sample-dashboard/Ruby On Rails ActiveJob.json
294
+ - sample-dashboard/Ruby On Rails Performance per Action.json
295
+ - sample-dashboard/Ruby On Rails Performance per Request.json
293
296
  - sample-dashboard/Ruby On Rails Performance.json
297
+ - sample-dashboard/Ruby On Rails Requests.json
298
+ - sample-dashboard/Ruby On Rails Slowlog by Action.json
299
+ - sample-dashboard/Ruby On Rails Slowlog by Request.json
300
+ - sample-dashboard/Ruby On Rails Slowlog by SQL.json
294
301
  - sample-dashboard/docker-compose.yml
302
+ - sample-dashboard/provisioning/activejob.json
295
303
  - sample-dashboard/provisioning/grafana-dashboards.yml
296
304
  - sample-dashboard/provisioning/grafana-datasource.yml
297
305
  - sample-dashboard/provisioning/performance-action.json
298
306
  - sample-dashboard/provisioning/performance-request.json
299
307
  - sample-dashboard/provisioning/performance.json
308
+ - sample-dashboard/provisioning/requests.json
309
+ - sample-dashboard/provisioning/slowlog-action.json
310
+ - sample-dashboard/provisioning/slowlog-requests.json
311
+ - sample-dashboard/provisioning/slowlog-sql.json
300
312
  - spec/requests/action_controller_metrics_spec.rb
301
313
  - spec/requests/action_mailer_deliver_metrics_spec.rb
302
314
  - spec/requests/action_view_collection_metrics_spec.rb
@@ -304,7 +316,6 @@ files:
304
316
  - spec/requests/action_view_template_metrics_spec.rb
305
317
  - spec/requests/active_job_enqueue_metrics_spec.rb
306
318
  - spec/requests/active_job_perform_metrics_spec.rb
307
- - spec/requests/active_job_perform_start_metrics_spec.rb
308
319
  - spec/requests/active_record_instantiation_metrics_spec.rb
309
320
  - spec/requests/active_record_sql_metrics_spec.rb
310
321
  - spec/requests/block_inistrumentation_spec.rb
@@ -322,6 +333,7 @@ files:
322
333
  - spec/unit/configuration_spec.rb
323
334
  - spec/unit/sql/normalizer_spec.rb
324
335
  - spec/unit/sql/query_spec.rb
336
+ - spec/unit/tags.rb
325
337
  homepage: https://influxdata.com
326
338
  licenses:
327
339
  - MIT
@@ -338,15 +350,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
338
350
  requirements:
339
351
  - - ">="
340
352
  - !ruby/object:Gem::Version
341
- version: 2.4.0
353
+ version: 2.5.0
342
354
  required_rubygems_version: !ruby/object:Gem::Requirement
343
355
  requirements:
344
- - - ">"
356
+ - - ">="
345
357
  - !ruby/object:Gem::Version
346
- version: 1.3.1
358
+ version: '0'
347
359
  requirements: []
348
- rubyforge_project:
349
- rubygems_version: 2.7.6.2
360
+ rubygems_version: 3.1.6
350
361
  signing_key:
351
362
  specification_version: 4
352
363
  summary: InfluxDB bindings for Ruby on Rails.
@@ -358,7 +369,6 @@ test_files:
358
369
  - spec/requests/action_view_template_metrics_spec.rb
359
370
  - spec/requests/active_job_enqueue_metrics_spec.rb
360
371
  - spec/requests/active_job_perform_metrics_spec.rb
361
- - spec/requests/active_job_perform_start_metrics_spec.rb
362
372
  - spec/requests/active_record_instantiation_metrics_spec.rb
363
373
  - spec/requests/active_record_sql_metrics_spec.rb
364
374
  - spec/requests/block_inistrumentation_spec.rb
@@ -376,3 +386,4 @@ test_files:
376
386
  - spec/unit/configuration_spec.rb
377
387
  - spec/unit/sql/normalizer_spec.rb
378
388
  - spec/unit/sql/query_spec.rb
389
+ - spec/unit/tags.rb
data/.travis.yml DELETED
@@ -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