inst-jobs-statsd 2.1.2 → 2.2.0

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: fd7dc1bb11dbc52f03746c3003067ab3583c2941bbde910a5afebe56a3b67db8
4
- data.tar.gz: 7fda921fe197a011e611d5b9a6840c670064970cf62e536caa1b8600c78e7e02
3
+ metadata.gz: 10d4bb1c1c2d71c7a93df1ccd59657c96f871dd65b4e90ea7430fdf7b6da4991
4
+ data.tar.gz: f8af74f6d0e5abd4ec7f490ad592ee75c2909126574d889d275d7e8a2227df8d
5
5
  SHA512:
6
- metadata.gz: 7a3cf26ef4330f4cb30ffa49b00d4bb9926c4b8098c62946539fdac755afb7e58cf009c21231ff046eab196eb0cf5b9aaca2a3653ac0156705207f10ad35b715
7
- data.tar.gz: 945d7bdb0a403f99a75baabaa70985d1094c6cbe069e244f872d835082dfcf178ca9280a8688c697ce9ee4f1af95a9341051a9437e6a1ade65d92b84ea9fff47
6
+ metadata.gz: 26f9240b397a8012fd8173c1a4658c53b7106eeecb4c2c833c82e2dc7963b4b73bb38bd442b469fcd551636f49c998daea5c8f7d7d929e5f7b3c0e1ac5361172
7
+ data.tar.gz: 8704615a3f54eed9d808930932ebb293818ab7af537bfc8e3a88cff6de685e3e6b3153342f643d1547f84f8a4c34b1181cc2d830cc3a91520b5e5e398d093d1c
@@ -9,7 +9,9 @@ require_relative 'inst_jobs_statsd/jobs_tracker'
9
9
  require_relative 'inst_jobs_statsd/naming'
10
10
 
11
11
  require_relative 'inst_jobs_statsd/stats/counters'
12
+ require_relative 'inst_jobs_statsd/stats/counters/create'
12
13
  require_relative 'inst_jobs_statsd/stats/counters/run'
14
+ require_relative 'inst_jobs_statsd/stats/counters/complete'
13
15
 
14
16
  require_relative 'inst_jobs_statsd/stats/periodic'
15
17
  require_relative 'inst_jobs_statsd/stats/periodic/failed'
@@ -9,7 +9,9 @@ module InstJobsStatsd
9
9
  end
10
10
 
11
11
  def initialize(enable_periodic_queries: true)
12
+ Stats::Counters::Create.enable
12
13
  Stats::Counters::Run.enable
14
+ Stats::Counters::Complete.enable
13
15
  ::Delayed::Job.prepend InstJobsStatsd::Ext::Job
14
16
 
15
17
  if enable_periodic_queries
@@ -0,0 +1,21 @@
1
+ module InstJobsStatsd
2
+ module Stats
3
+ module Counters
4
+ module Complete
5
+ def self.enable
6
+ enable_complete_count
7
+ end
8
+
9
+ def self.enable_complete_count
10
+ Delayed::Worker.lifecycle.after(:perform) do |_worker, job|
11
+ report_complete_count(job)
12
+ end
13
+ end
14
+
15
+ def self.report_complete_count(job)
16
+ Counters.report_count(:complete, 1, job: job)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module InstJobsStatsd
2
+ module Stats
3
+ module Counters
4
+ module Create
5
+ def self.enable
6
+ enable_create_count
7
+ end
8
+
9
+ def self.enable_create_count
10
+ Delayed::Worker.lifecycle.after(:create) do |_, result:|
11
+ report_create_count(result)
12
+ end
13
+ end
14
+
15
+ def self.report_create_count(job)
16
+ Counters.report_count(:create, 1, job: job)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,3 +1,3 @@
1
1
  module InstJobsStatsd
2
- VERSION = '2.1.2'.freeze
2
+ VERSION = '2.2.0'.freeze
3
3
  end
@@ -5,11 +5,13 @@ RSpec.describe 'InstJobsStatsd::Ext::Job' do
5
5
  end
6
6
  let(:x) { Struct.new(:perform).new(true) }
7
7
  it 'sends a stat' do
8
- expect(InstStatsd::Statsd).to receive(:count)
9
- .with(array_including(/\.failed$/), 1, 1, short_stat: :failed, tags: {})
8
+ allow(InstStatsd::Statsd).to receive(:count)
10
9
 
11
10
  x.delay.perform
12
11
  Delayed::Job.first.fail!
12
+
13
+ expect(InstStatsd::Statsd).to have_received(:count)
14
+ .with(array_including(/\.failed$/), 1, 1, short_stat: :failed, tags: {})
13
15
  end
14
16
  end
15
17
  end
@@ -12,7 +12,9 @@ RSpec.describe InstJobsStatsd::JobsTracker do
12
12
 
13
13
  describe '.initialize' do
14
14
  it 'enables everything' do
15
+ expect(InstJobsStatsd::Stats::Counters::Create).to receive(:enable)
15
16
  expect(InstJobsStatsd::Stats::Counters::Run).to receive(:enable)
17
+ expect(InstJobsStatsd::Stats::Counters::Complete).to receive(:enable)
16
18
 
17
19
  expect(InstJobsStatsd::Stats::Periodic::Failed).to receive(:enable)
18
20
  expect(InstJobsStatsd::Stats::Periodic::Queue).to receive(:enable)
@@ -0,0 +1,27 @@
1
+ RSpec.describe InstJobsStatsd::Stats::Counters::Complete do
2
+ describe '.enable' do
3
+ it 'enables all the things' do
4
+ expect(InstJobsStatsd::Stats::Counters::Complete).to receive(:enable_complete_count)
5
+ InstJobsStatsd::Stats::Counters::Complete.enable
6
+ end
7
+ end
8
+
9
+ describe '.report_complete_count' do
10
+ let(:x) { Struct.new(:perform).new(true) }
11
+
12
+ before do
13
+ Delayed::Worker.lifecycle.reset!
14
+ InstJobsStatsd::Stats::Counters::Complete.enable
15
+
16
+ 2.times { x.delay.perform }
17
+ end
18
+
19
+ it "increments the counter" do
20
+ expect(InstStatsd::Statsd).to receive(:count)
21
+ .twice.with(array_including(/\.complete$/), 1, 1, short_stat: anything, tags: {})
22
+ Delayed::Job.all.each do |job|
23
+ Delayed::Worker.lifecycle.run_callbacks(:perform, {}, job) {}
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ RSpec.describe InstJobsStatsd::Stats::Counters::Create do
2
+ describe '.enable' do
3
+ it 'enables all the things' do
4
+ expect(InstJobsStatsd::Stats::Counters::Create).to receive(:enable_create_count)
5
+ InstJobsStatsd::Stats::Counters::Create.enable
6
+ end
7
+ end
8
+
9
+ describe '.report_create_count' do
10
+ let(:x) { Struct.new(:perform).new(true) }
11
+
12
+ before do
13
+ Delayed::Worker.lifecycle.reset!
14
+ InstJobsStatsd::Stats::Counters::Create.enable
15
+
16
+ 2.times { x.delay.perform }
17
+ end
18
+
19
+ it "increments the counter" do
20
+ expect(InstStatsd::Statsd).to receive(:count)
21
+ .twice.with(array_including(/\.create$/), 1, 1, short_stat: anything, tags: {})
22
+ Delayed::Job.all.each do |job|
23
+ Delayed::Worker.lifecycle.run_callbacks(:create, job) {}
24
+ end
25
+ end
26
+ end
27
+ end
metadata CHANGED
@@ -1,22 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inst-jobs-statsd
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Slade
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-30 00:00:00.000000000 Z
11
+ date: 2022-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inst-jobs
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: 3.1.1
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '4.0'
@@ -24,9 +24,9 @@ dependencies:
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ">"
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '1.0'
29
+ version: 3.1.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '4.0'
@@ -232,7 +232,7 @@ dependencies:
232
232
  - - "~>"
233
233
  - !ruby/object:Gem::Version
234
234
  version: 1.4.0
235
- description:
235
+ description:
236
236
  email:
237
237
  - jslade@instructure.com
238
238
  executables: []
@@ -245,6 +245,8 @@ files:
245
245
  - lib/inst_jobs_statsd/jobs_tracker.rb
246
246
  - lib/inst_jobs_statsd/naming.rb
247
247
  - lib/inst_jobs_statsd/stats/counters.rb
248
+ - lib/inst_jobs_statsd/stats/counters/complete.rb
249
+ - lib/inst_jobs_statsd/stats/counters/create.rb
248
250
  - lib/inst_jobs_statsd/stats/counters/run.rb
249
251
  - lib/inst_jobs_statsd/stats/periodic.rb
250
252
  - lib/inst_jobs_statsd/stats/periodic/failed.rb
@@ -261,6 +263,8 @@ files:
261
263
  - spec/inst_jobs_statsd/ext/job_spec.rb
262
264
  - spec/inst_jobs_statsd/jobs_tracker_spec.rb
263
265
  - spec/inst_jobs_statsd/naming_spec.rb
266
+ - spec/inst_jobs_statsd/stats/counters/complete_spec.rb
267
+ - spec/inst_jobs_statsd/stats/counters/create_spec.rb
264
268
  - spec/inst_jobs_statsd/stats/counters/run_spec.rb
265
269
  - spec/inst_jobs_statsd/stats/periodic/failed_spec.rb
266
270
  - spec/inst_jobs_statsd/stats/periodic/queue_spec.rb
@@ -278,7 +282,7 @@ homepage: https://github.com/instructure/inst-jobs-statsd
278
282
  licenses:
279
283
  - MIT
280
284
  metadata: {}
281
- post_install_message:
285
+ post_install_message:
282
286
  rdoc_options: []
283
287
  require_paths:
284
288
  - lib
@@ -293,27 +297,29 @@ required_rubygems_version: !ruby/object:Gem::Requirement
293
297
  - !ruby/object:Gem::Version
294
298
  version: '0'
295
299
  requirements: []
296
- rubygems_version: 3.2.24
297
- signing_key:
300
+ rubygems_version: 3.1.4
301
+ signing_key:
298
302
  specification_version: 4
299
303
  summary: Stats reporting for inst-jobs
300
304
  test_files:
305
+ - spec/factories/jobs.rb
306
+ - spec/factories/workers.rb
307
+ - spec/gemfiles/60.gemfile
301
308
  - spec/inst_jobs_statsd/ext/job_spec.rb
309
+ - spec/inst_jobs_statsd/jobs_tracker_spec.rb
302
310
  - spec/inst_jobs_statsd/naming_spec.rb
311
+ - spec/inst_jobs_statsd/stats/counters/complete_spec.rb
312
+ - spec/inst_jobs_statsd/stats/counters/create_spec.rb
313
+ - spec/inst_jobs_statsd/stats/counters/run_spec.rb
303
314
  - spec/inst_jobs_statsd/stats/periodic/failed_spec.rb
304
- - spec/inst_jobs_statsd/stats/periodic/run_spec.rb
305
315
  - spec/inst_jobs_statsd/stats/periodic/queue_spec.rb
316
+ - spec/inst_jobs_statsd/stats/periodic/run_spec.rb
317
+ - spec/inst_jobs_statsd/stats/periodic_spec.rb
306
318
  - spec/inst_jobs_statsd/stats/timing/failed_spec.rb
307
- - spec/inst_jobs_statsd/stats/timing/pop_spec.rb
308
319
  - spec/inst_jobs_statsd/stats/timing/perform_spec.rb
309
- - spec/inst_jobs_statsd/stats/periodic_spec.rb
310
- - spec/inst_jobs_statsd/stats/counters/run_spec.rb
320
+ - spec/inst_jobs_statsd/stats/timing/pop_spec.rb
311
321
  - spec/inst_jobs_statsd/stats/timing_spec.rb
312
- - spec/inst_jobs_statsd/jobs_tracker_spec.rb
313
- - spec/spec_helper.rb
314
- - spec/setup_test_db.rb
315
- - spec/matchers.rb
316
- - spec/gemfiles/60.gemfile
317
- - spec/factories/workers.rb
318
- - spec/factories/jobs.rb
319
322
  - spec/inst_statsd/default_tracking_spec.rb
323
+ - spec/matchers.rb
324
+ - spec/setup_test_db.rb
325
+ - spec/spec_helper.rb