sidekiq-skylight 0.0.4 → 0.1.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
  SHA1:
3
- metadata.gz: 3443a4fe1cb4b12ba1f62189c03689fa9637d94e
4
- data.tar.gz: 6e31c081e4403f5a0196e0c7ab77165c15fcb04a
3
+ metadata.gz: 8e2c60a848b24d3651ca7f79732057f783341c1e
4
+ data.tar.gz: acf95b402036e11b68a1216f8775fb7018e359c5
5
5
  SHA512:
6
- metadata.gz: cda709bddcee26addacc9ab156d0520187aa83e37c6bf5b49d95aa55194a1fde31333da4b18fd97b91e7b235e3e371f63e2b639a6c389b754de792409e4dd80b
7
- data.tar.gz: 8b635e7e007a502bb24c7f9c554edbf4940aec00b4c049ff0f568040b67618cc42416ce5c49653410afdc9569ffa55fcebee7a1077e0a96ad101e42770ea4a1a
6
+ metadata.gz: 100a2d39ce801249bfad8327b181e8a23c1ea2ee4a56e6ffcf392364b6a9739420551eb39b0a2d66f6bae225b14aa1132bf0b4d2bbdf365215a0aecf306f9b45
7
+ data.tar.gz: 34292932066fd99422bb8ad14591481503d0b6a36e74b906a59e3e7d1971d4a6ad709cad15404b15ea17e2927d13e0c06e357e08e7a35106dbc8f1f3a320eb04
data/.rubocop.yml ADDED
@@ -0,0 +1,98 @@
1
+ # Common configuration.
2
+ AllCops:
3
+ # Include gemspec and Rakefile
4
+ Include:
5
+ - '**/*.gemspec'
6
+ - '**/Rakefile'
7
+ - '**/*.rake'
8
+ - '**/Gemfile'
9
+ Exclude:
10
+ - 'vendor/**'
11
+ - 'spec/fixtures/**'
12
+ - 'bin/**'
13
+ RunRailsCops: true
14
+
15
+ # Indent private/protected/public as deep as method definitions
16
+ AccessModifierIndentation:
17
+ EnforcedStyle: outdent
18
+ SupportedStyles:
19
+ - outdent
20
+ - indent
21
+
22
+ # Indentation of `when`.
23
+ CaseIndentation:
24
+ IndentWhenRelativeTo: end
25
+ SupportedStyles:
26
+ - case
27
+ - end
28
+ IndentOneStep: false
29
+
30
+ ClassLength:
31
+ CountComments: false # count full line comments?
32
+ Max: 200
33
+
34
+ # Align ends correctly.
35
+ EndAlignment:
36
+ # The value `keyword` means that `end` should be aligned with the matching
37
+ # keyword (if, while, etc.).
38
+ # The value `variable` means that in assignments, `end` should be aligned
39
+ # with the start of the variable on the left hand side of `=`. In all other
40
+ # situations, `end` should still be aligned with the keyword.
41
+ AlignWith: variable
42
+ SupportedStyles:
43
+ - keyword
44
+ - variable
45
+
46
+ # Built-in global variables are allowed by default.
47
+ GlobalVars:
48
+ AllowedVariables: ['$1', '$2', '$3', '$4', '$5', '$6']
49
+
50
+ LineLength:
51
+ Max: 120
52
+
53
+ MethodLength:
54
+ CountComments: false # count full line comments?
55
+ Max: 20
56
+
57
+ NumericLiterals:
58
+ MinDigits: 10
59
+
60
+ SignalException:
61
+ EnforcedStyle: only_raise
62
+ SupportedStyles:
63
+ - only_raise
64
+ - only_fail
65
+ - semantic
66
+
67
+ SpaceBeforeBlockBraces:
68
+ EnforcedStyle: no_space
69
+ SupportedStyles:
70
+ - space
71
+ - no_space
72
+
73
+ SpaceInsideBlockBraces:
74
+ EnforcedStyle: no_space
75
+ SupportedStyles:
76
+ - space
77
+ - no_space
78
+ # Valid values are: space, no_space
79
+ EnforcedStyleForEmptyBraces: no_space
80
+ # Space between { and |. Overrides EnforcedStyle if there is a conflict.
81
+ SpaceBeforeBlockParameters: false
82
+
83
+ SpaceInsideHashLiteralBraces:
84
+ EnforcedStyle: no_space
85
+ EnforcedStyleForEmptyBraces: no_space
86
+ SupportedStyles:
87
+ - space
88
+ - no_space
89
+
90
+ # Checks whether the source file has a utf-8 encoding comment or not
91
+ Encoding:
92
+ EnforcedStyle: when_needed
93
+ SupportedStyles:
94
+ - when_needed
95
+ - always
96
+
97
+ WordArray:
98
+ MinSize: 0
data/README.md CHANGED
@@ -20,6 +20,19 @@ Or install it yourself as:
20
20
 
21
21
  $ gem install sidekiq-skylight
22
22
 
23
+ ## Blacklisted Jobs
24
+
25
+ If there's a job that you don't want to be instrumented via Skylight, you can
26
+ use the `blacklisted_workers` config option like so:
27
+
28
+ ```ruby
29
+ Sidekiq::Skylight.configure do |config|
30
+ config.blacklisted_workers = ['BlacklistedWorker']
31
+ end
32
+ ```
33
+
34
+ Any workers with the class names you specify will be ignored from any Skylight tracing.
35
+
23
36
  ## Usage
24
37
 
25
38
  Make sure you've setup skylight.io for your project already. Everything else should be automatic.
data/Rakefile CHANGED
@@ -1,7 +1,6 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
7
-
6
+ task default: :spec
@@ -2,6 +2,7 @@ require 'sidekiq'
2
2
 
3
3
  require_relative 'skylight/version'
4
4
  require_relative 'skylight/server_middleware'
5
+ require_relative 'skylight/configuration'
5
6
 
6
7
  Sidekiq.configure_server do |config|
7
8
  config.server_middleware do |chain|
@@ -0,0 +1,19 @@
1
+ module Sidekiq
2
+ module Skylight
3
+ class Configuration
4
+ attr_accessor :blacklisted_workers
5
+
6
+ def blacklisted_workers
7
+ @blacklisted_workers ||= []
8
+ end
9
+ end
10
+
11
+ def self.config
12
+ @configuration ||= Configuration.new
13
+ end
14
+
15
+ def self.configure
16
+ yield config
17
+ end
18
+ end
19
+ end
@@ -3,11 +3,17 @@ require 'skylight'
3
3
  module Sidekiq
4
4
  module Skylight
5
5
  class ServerMiddleware
6
- def call(worker, job, queue)
7
- ::Skylight.trace("#{worker.class.to_s}#perform", 'app.sidekiq.worker', 'process') do
6
+ def call(worker, _job, _queue)
7
+ if config.blacklisted_workers.include?(worker.class.name)
8
8
  yield
9
+ else
10
+ ::Skylight.trace("#{worker.class}#perform", 'app.sidekiq.worker', 'process', &Proc.new)
9
11
  end
10
12
  end
13
+
14
+ def config
15
+ Sidekiq::Skylight.config
16
+ end
11
17
  end
12
18
  end
13
19
  end
@@ -1,5 +1,5 @@
1
1
  module Sidekiq
2
2
  module Skylight
3
- VERSION = "0.0.4"
3
+ VERSION = '0.1.0'
4
4
  end
5
5
  end
@@ -4,23 +4,23 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'sidekiq/skylight/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "sidekiq-skylight"
7
+ spec.name = 'sidekiq-skylight'
8
8
  spec.version = Sidekiq::Skylight::VERSION
9
- spec.authors = ["Allen Madsen"]
10
- spec.email = ["blatyo@gmail.com"]
11
- spec.summary = %q{Middleware for instrumenting Sidekiq with Skylight.io}
12
- spec.description = %q{Middleware for instrumenting Sidekiq with Skylight.io. Automatically configured when required.}
13
- spec.homepage = "https://github.com/lintci/sidekiq-skylight"
14
- spec.license = "MIT"
9
+ spec.authors = ['Allen Madsen']
10
+ spec.email = ['blatyo@gmail.com']
11
+ spec.summary = 'Middleware for instrumenting Sidekiq with Skylight.io'
12
+ spec.description = 'Middleware for instrumenting Sidekiq with Skylight.io. Automatically configured when required.'
13
+ spec.homepage = 'https://github.com/lintci/sidekiq-skylight'
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.executables = spec.files.grep(%r{^bin/}){|f| File.basename(f)}
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
19
+ spec.require_paths = ['lib']
20
20
 
21
21
  spec.add_runtime_dependency 'sidekiq', '>= 3.3.0'
22
22
  spec.add_runtime_dependency 'skylight', '>= 0.5.2'
23
- spec.add_development_dependency "bundler", "~> 1.7"
24
- spec.add_development_dependency "rake", "~> 10.0"
25
- spec.add_development_dependency "rspec"
23
+ spec.add_development_dependency 'bundler', '~> 1.7'
24
+ spec.add_development_dependency 'rake', '~> 10.0'
25
+ spec.add_development_dependency 'rspec'
26
26
  end
@@ -4,10 +4,38 @@ describe Sidekiq::Skylight::ServerMiddleware do
4
4
  subject(:middleware){described_class.new}
5
5
 
6
6
  FakeWorker = Class.new
7
+ BlacklistedWorker = Class.new
7
8
 
8
9
  it 'wraps block in skylight instrument' do
9
- expect(::Skylight).to receive(:trace).with('FakeWorker#perform', 'app.sidekiq.worker', 'process'){|&block| block.call}
10
+ expect(::Skylight).to receive(:trace).with('FakeWorker#perform', 'app.sidekiq.worker', 'process') do |&block|
11
+ block.call
12
+ end
10
13
 
11
14
  expect{|probe| middleware.call(FakeWorker.new, double(:job), double(:queue), &probe)}.to yield_control
12
15
  end
16
+
17
+ context 'with blacklisted workers' do
18
+ around(:each) do |example|
19
+ previous_blacklisted = Sidekiq::Skylight.config.blacklisted_workers
20
+ Sidekiq::Skylight.config.blacklisted_workers = %w(BlacklistedWorker)
21
+
22
+ example.run
23
+
24
+ Sidekiq::Skylight.config.blacklisted_workers = previous_blacklisted
25
+ end
26
+
27
+ it 'does not instrument a blacklisted worker' do
28
+ expect(::Skylight).to_not receive(:trace)
29
+
30
+ expect{|probe| middleware.call(BlacklistedWorker.new, double(:job), double(:queue), &probe)}.to yield_control
31
+ end
32
+
33
+ it 'still instruments non-blacklisted workers' do
34
+ expect(::Skylight).to receive(:trace).with('FakeWorker#perform', 'app.sidekiq.worker', 'process') do |&block|
35
+ block.call
36
+ end
37
+
38
+ expect{|probe| middleware.call(FakeWorker.new, double(:job), double(:queue), &probe)}.to yield_control
39
+ end
40
+ end
13
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-skylight
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Allen Madsen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-15 00:00:00.000000000 Z
11
+ date: 2015-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sidekiq
@@ -90,6 +90,7 @@ extra_rdoc_files: []
90
90
  files:
91
91
  - ".gitignore"
92
92
  - ".rspec"
93
+ - ".rubocop.yml"
93
94
  - Gemfile
94
95
  - LICENSE.txt
95
96
  - README.md
@@ -97,6 +98,7 @@ files:
97
98
  - circle.yml
98
99
  - lib/sidekiq-skylight.rb
99
100
  - lib/sidekiq/skylight.rb
101
+ - lib/sidekiq/skylight/configuration.rb
100
102
  - lib/sidekiq/skylight/server_middleware.rb
101
103
  - lib/sidekiq/skylight/version.rb
102
104
  - sidekiq-skylight.gemspec
@@ -123,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
125
  version: '0'
124
126
  requirements: []
125
127
  rubyforge_project:
126
- rubygems_version: 2.4.5
128
+ rubygems_version: 2.4.6
127
129
  signing_key:
128
130
  specification_version: 4
129
131
  summary: Middleware for instrumenting Sidekiq with Skylight.io