inst-jobs-statsd 2.1.2 → 3.0.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: efc6027a4283d4fbe37e336710c974dfd2ddd1ab273613fbd9936fb0cfca37e5
4
+ data.tar.gz: eef10d80500c432b596436e28422c5b1243c1ec48de44fd73ec1a208ccc58734
5
5
  SHA512:
6
- metadata.gz: 7a3cf26ef4330f4cb30ffa49b00d4bb9926c4b8098c62946539fdac755afb7e58cf009c21231ff046eab196eb0cf5b9aaca2a3653ac0156705207f10ad35b715
7
- data.tar.gz: 945d7bdb0a403f99a75baabaa70985d1094c6cbe069e244f872d835082dfcf178ca9280a8688c697ce9ee4f1af95a9341051a9437e6a1ade65d92b84ea9fff47
6
+ metadata.gz: c4c9cad4da6c5d3897239e390445c852230655cb47fc5d5ca97c045d8d6923e1b33a8a6b7f8c8a66dda12e2636a204b4df6b8b1ca3f5912ece8a8ec991e7470f
7
+ data.tar.gz: f94e0bf3044911fbfc165f2320a2a08bbd744746e98771c3aded317e210ab2884294bf093b31ff386d2c7d0a22751d2dd48085b7e5785fe15a2191df2621cd65
@@ -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
@@ -8,10 +8,6 @@ module InstJobsStatsd
8
8
  BASENAME
9
9
  end
10
10
 
11
- def self.configure(strand_filter: nil)
12
- @strand_filter = strand_filter
13
- end
14
-
15
11
  def self.qualified_names(stat_name, job)
16
12
  names = ["#{basename}.#{stat_name}"]
17
13
  tagged = tagged_stat(names[0], job)
@@ -36,9 +32,7 @@ module InstJobsStatsd
36
32
 
37
33
  def self.dd_job_tags(job)
38
34
  tags = dd_region_tags
39
- return tags unless job
40
- tags = custom_tags(job, tags)
41
- return tags unless job.tag
35
+ return tags unless job&.tag
42
36
  return tags if job.tag =~ /Class:0x/
43
37
 
44
38
  method_tag, obj_tag = split_to_tag(job)
@@ -48,12 +42,6 @@ module InstJobsStatsd
48
42
  tags
49
43
  end
50
44
 
51
- def self.custom_tags(job, tags)
52
- tags[:jobshard] = job.shard.id if job.respond_to?(:shard)
53
- tags[:strand] = job.strand if job&.strand && @strand_filter&.call(job)
54
- tags
55
- end
56
-
57
45
  # this converts Foo#bar" or "Foo.bar" into "Foo and "bar",
58
46
  # and makes sure the values are valid to be used for statsd names
59
47
  def self.job_tags(job)
@@ -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 = '3.0.0'.freeze
3
3
  end
@@ -1,6 +1,6 @@
1
1
  FactoryGirl.define do
2
2
  class JobFixture
3
- attr_accessor :tag, :run_at, :strand
3
+ attr_accessor :tag, :run_at
4
4
  end
5
5
 
6
6
  factory :job_fixture, aliases: [:job] do
@@ -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)
@@ -43,12 +43,12 @@ RSpec.describe InstJobsStatsd::Naming do
43
43
 
44
44
  describe '.dd_job_tags' do
45
45
  it 'works' do
46
- job = double(tag: 'Account.run_reports_later', shard: double(id: 101), strand: 'special')
47
- expect(InstJobsStatsd::Naming.dd_job_tags(job)).to eq(tag: 'Account.run_reports_later', jobshard: 101)
46
+ job = double(tag: 'Account.run_reports_later')
47
+ expect(InstJobsStatsd::Naming.dd_job_tags(job)).to eq(tag: 'Account.run_reports_later')
48
48
  end
49
49
 
50
50
  it 'properly munges job tags' do
51
- job = double(tag: 'Quizzes::Quiz#do_something', strand: nil)
51
+ job = double(tag: 'Quizzes::Quiz#do_something')
52
52
  expect(InstJobsStatsd::Naming.dd_job_tags(job)).to eq(tag: 'Quizzes-Quiz.do_something')
53
53
  end
54
54
  end
@@ -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: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Slade
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-30 00:00:00.000000000 Z
11
+ date: 2023-07-14 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'
@@ -34,20 +34,14 @@ dependencies:
34
34
  name: inst_statsd
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: 2.1.2
40
- - - "<"
37
+ - - "~>"
41
38
  - !ruby/object:Gem::Version
42
39
  version: '3.0'
43
40
  type: :runtime
44
41
  prerelease: false
45
42
  version_requirements: !ruby/object:Gem::Requirement
46
43
  requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 2.1.2
50
- - - "<"
44
+ - - "~>"
51
45
  - !ruby/object:Gem::Version
52
46
  version: '3.0'
53
47
  - !ruby/object:Gem::Dependency
@@ -245,6 +239,8 @@ files:
245
239
  - lib/inst_jobs_statsd/jobs_tracker.rb
246
240
  - lib/inst_jobs_statsd/naming.rb
247
241
  - lib/inst_jobs_statsd/stats/counters.rb
242
+ - lib/inst_jobs_statsd/stats/counters/complete.rb
243
+ - lib/inst_jobs_statsd/stats/counters/create.rb
248
244
  - lib/inst_jobs_statsd/stats/counters/run.rb
249
245
  - lib/inst_jobs_statsd/stats/periodic.rb
250
246
  - lib/inst_jobs_statsd/stats/periodic/failed.rb
@@ -261,6 +257,8 @@ files:
261
257
  - spec/inst_jobs_statsd/ext/job_spec.rb
262
258
  - spec/inst_jobs_statsd/jobs_tracker_spec.rb
263
259
  - spec/inst_jobs_statsd/naming_spec.rb
260
+ - spec/inst_jobs_statsd/stats/counters/complete_spec.rb
261
+ - spec/inst_jobs_statsd/stats/counters/create_spec.rb
264
262
  - spec/inst_jobs_statsd/stats/counters/run_spec.rb
265
263
  - spec/inst_jobs_statsd/stats/periodic/failed_spec.rb
266
264
  - spec/inst_jobs_statsd/stats/periodic/queue_spec.rb
@@ -286,14 +284,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
286
284
  requirements:
287
285
  - - ">="
288
286
  - !ruby/object:Gem::Version
289
- version: '2.4'
287
+ version: '2.7'
290
288
  required_rubygems_version: !ruby/object:Gem::Requirement
291
289
  requirements:
292
290
  - - ">="
293
291
  - !ruby/object:Gem::Version
294
292
  version: '0'
295
293
  requirements: []
296
- rubygems_version: 3.2.24
294
+ rubygems_version: 3.1.6
297
295
  signing_key:
298
296
  specification_version: 4
299
297
  summary: Stats reporting for inst-jobs
@@ -308,6 +306,8 @@ test_files:
308
306
  - spec/inst_jobs_statsd/stats/timing/perform_spec.rb
309
307
  - spec/inst_jobs_statsd/stats/periodic_spec.rb
310
308
  - spec/inst_jobs_statsd/stats/counters/run_spec.rb
309
+ - spec/inst_jobs_statsd/stats/counters/create_spec.rb
310
+ - spec/inst_jobs_statsd/stats/counters/complete_spec.rb
311
311
  - spec/inst_jobs_statsd/stats/timing_spec.rb
312
312
  - spec/inst_jobs_statsd/jobs_tracker_spec.rb
313
313
  - spec/spec_helper.rb