sidekiq-logstash 1.2.1 → 2.0.2

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: 2a99b4b463ed0d2801d2a32447a29767572a979675d6fca72781fbf0c1971fd9
4
- data.tar.gz: dfbfffd67d75c8e0aff617ff8da1a219b264e72e84431632131ec346d4d0dcbb
3
+ metadata.gz: bda6970e2b9e7d059cd81dd78764a9d99957a4e0b54b6e678fee631be419ffab
4
+ data.tar.gz: 8a03e0bb6409da9d0664a10cb24f9d215b419e917bf5fdb4054f2d1df153d492
5
5
  SHA512:
6
- metadata.gz: 38a2a810c8af2eb4afda4f2a340ee39680c4c768d6a9714d897950d23630c189063bf84001f60c97a57ca94c5f0ab03a2464fd9ea8d50803321ac3cfdae86d8d
7
- data.tar.gz: 7c4338444e79978f20322d8491e8f4b1b04ff95c643f89fd8d51b92b8379e5b39265190f0b0b0c201ccc6081e89317eec8cedbc9f9fdbe72f505a23e8d705433
6
+ metadata.gz: 2eadcfac4c1e2c7cadaaf831435d827c52f97bd05d06369d69d31b8ff07afb0e416116964ae0c7aa73e7393f9af38212e10f7c2ff45c22524bec51e8369cf5b0
7
+ data.tar.gz: 3b7cd2319c92b287757475d78dcdbc1785a8b15572b56b2a85ce5c4ce16874a7108db24150221c04d06bd9c144b610c6b6e5c2ea952e6bcd0ac70605836d331a
@@ -19,8 +19,7 @@ jobs:
19
19
  - uses: ruby/setup-ruby@v1
20
20
  with:
21
21
  ruby-version: 2.7
22
- - name: Install dependencies
23
- run: bundle install
22
+ bundler-cache: true
24
23
  - name: Run rubocop
25
24
  run: bundle exec rubocop --format progress
26
25
  build:
@@ -28,7 +27,7 @@ jobs:
28
27
  runs-on: ubuntu-latest
29
28
  strategy:
30
29
  matrix:
31
- ruby: [2.5, 2.6, 2.7]
30
+ ruby: ['2.6', '2.7', '3.0', '3.1']
32
31
 
33
32
  steps:
34
33
  - uses: actions/checkout@v2
@@ -36,7 +35,5 @@ jobs:
36
35
  with:
37
36
  ruby-version: ${{ matrix.ruby }}
38
37
  bundler-cache: true
39
- - name: Install dependencies
40
- run: bundle install
41
38
  - name: Run tests
42
39
  run: bundle exec rake
@@ -10,12 +10,12 @@ jobs:
10
10
  runs-on: ubuntu-latest
11
11
 
12
12
  steps:
13
- - uses: actions/checkout@v2
13
+ - uses: actions/checkout@master
14
14
 
15
15
  - name: Set up Ruby 2.7
16
- uses: ruby/setup-ruby@v1
16
+ uses: actions/setup-ruby@v1
17
17
  with:
18
- ruby-version: 2.7
18
+ ruby-version: 2.7.x
19
19
 
20
20
  - name: Publish to RubyGems
21
21
  run: |
@@ -26,4 +26,4 @@ jobs:
26
26
  gem build sidekiq-logstash.gemspec
27
27
  gem push sidekiq-logstash-*.gem
28
28
  env:
29
- GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_AUTH_TOKEN }}
29
+ GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_AUTH_TOKEN }}
data/.rubocop.yml CHANGED
@@ -6,17 +6,18 @@ require:
6
6
  AllCops:
7
7
  DisplayCopNames: true
8
8
  DisplayStyleGuide: true
9
- TargetRubyVersion: 2.3
9
+ NewCops: enable
10
+ TargetRubyVersion: 2.5
10
11
 
11
12
  Metrics/BlockLength:
12
13
  Exclude:
13
14
  - spec/**/*.rb
14
15
 
15
- Metrics/LineLength:
16
+ Layout/LineLength:
16
17
  Max: 120
17
18
  Exclude:
18
19
  - spec/**/*.rb
19
20
 
20
21
  Style/Documentation:
21
22
  Exclude:
22
- - 'spec/**/*'
23
+ - 'spec/**/*'
data/.rubocop_todo.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2019-04-20 13:23:53 +0200 using RuboCop version 0.67.2.
3
+ # on 2020-08-16 16:36:05 UTC using RuboCop version 0.89.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
@@ -11,31 +11,27 @@ Lint/DuplicateMethods:
11
11
  Exclude:
12
12
  - 'lib/sidekiq/logstash/configuration.rb'
13
13
 
14
- # Offense count: 4
14
+ # Offense count: 3
15
+ # Configuration parameters: IgnoredMethods.
15
16
  Metrics/AbcSize:
16
- Max: 31
17
+ Max: 36
17
18
 
18
- # Offense count: 1
19
+ # Offense count: 2
20
+ # Configuration parameters: IgnoredMethods.
19
21
  Metrics/CyclomaticComplexity:
20
- Max: 13
22
+ Max: 18
21
23
 
22
24
  # Offense count: 6
23
- # Configuration parameters: CountComments, ExcludedMethods.
25
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods.
24
26
  Metrics/MethodLength:
25
27
  Max: 28
26
28
 
27
29
  # Offense count: 1
30
+ # Configuration parameters: IgnoredMethods.
28
31
  Metrics/PerceivedComplexity:
29
- Max: 14
32
+ Max: 19
30
33
 
31
- # Offense count: 7
32
- Style/Documentation:
34
+ # Offense count: 1
35
+ Style/OptionalBooleanParameter:
33
36
  Exclude:
34
- - 'spec/**/*'
35
- - 'lib/sidekiq/logging/argument_filter.rb'
36
- - 'lib/sidekiq/logging/logstash_formatter.rb'
37
- - 'lib/sidekiq/logging/shared.rb'
38
- - 'lib/sidekiq/logstash.rb'
39
- - 'lib/sidekiq/logstash/configuration.rb'
40
- - 'lib/sidekiq/logstash_job_logger.rb'
41
- - 'lib/sidekiq/middleware/server/logstash_logging.rb'
37
+ - 'spec/workers/spec_worker.rb'
data/Gemfile CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
- # Specify your gem's dependencies in sidekiq-logstash.gemspec
6
-
7
5
  gemspec
6
+
7
+ gem 'rubocop-rake'
8
+ gem 'rubocop-rspec'
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Sidekiq::Logstash
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/sidekiq-logstash.svg)](https://badge.fury.io/rb/sidekiq-logstash) [<img src="https://travis-ci.org/iMacTia/sidekiq-logstash.svg?branch=master" alt="version" />](https://travis-ci.org/iMacTia/sidekiq-logstash)
4
-
3
+ [![Gem Version](https://badge.fury.io/rb/sidekiq-logstash.svg)](https://badge.fury.io/rb/sidekiq-logstash)
4
+ [![GitHub Actions CI](https://github.com/iMacTia/sidekiq-logstash/workflows/CI/badge.svg)](https://github.com/iMacTia/sidekiq-logstash/actions?query=workflow%3ACI)
5
5
 
6
6
  Sidekiq::Logstash turns your [Sidekiq](https://github.com/mperham/sidekiq) log into an organised, aggregated, JSON-syntax log ready to be sent to a logstash server.
7
7
 
@@ -30,10 +30,11 @@ Sidekiq::Logstash turns your [Sidekiq](https://github.com/mperham/sidekiq) log i
30
30
 
31
31
  ## Installation
32
32
 
33
- Add this line to your application's Gemfile:
33
+ Add one of the following lines to your application's Gemfile:
34
34
 
35
35
  ```ruby
36
- gem 'sidekiq-logstash'
36
+ gem 'sidekiq-logstash', '~> 2.0' # Sidekiq 6
37
+ gem 'sidekiq-logstash', '< 2' # Sidekiq 5 or older
37
38
  ```
38
39
 
39
40
  And then execute:
data/bin/test_console CHANGED
@@ -4,7 +4,7 @@
4
4
  require 'bundler/setup'
5
5
  require 'sidekiq/logstash'
6
6
  require_relative '../spec/spec_helper'
7
- FactoryGirl.find_definitions
7
+ FactoryBot.find_definitions
8
8
 
9
9
  require 'irb'
10
10
  IRB.start
@@ -14,7 +14,7 @@ module Sidekiq
14
14
  end
15
15
 
16
16
  # Filters argument by using the filters provided upon initialization.
17
- # @param args [Array] the list of arguments.
17
+ # @param args [Hash] the list of arguments in a hash with key :args.
18
18
  def filter(args)
19
19
  compiled_filter.call(args)
20
20
  end
@@ -63,7 +63,7 @@ module Sidekiq
63
63
  parents.push(key) if deep_regexps
64
64
  if regexps.any? { |r| key =~ r }
65
65
  value = FILTERED
66
- elsif deep_regexps && (joined = parents.join('.')) && deep_regexps.any? { |r| joined =~ r }
66
+ elsif deep_regexps && (joined = parents.join('.')) && deep_regexps.any? { |r| joined =~ r } # rubocop:disable Lint/DuplicateBranch
67
67
  value = FILTERED
68
68
  elsif value.is_a?(Hash)
69
69
  value = call(value, parents)
@@ -71,15 +71,15 @@ module Sidekiq
71
71
  value = value.map { |v| v.is_a?(Hash) ? call(v, parents) : v }
72
72
  elsif blocks.any?
73
73
  key = begin
74
- key.dup
75
- rescue StandardError
76
- key
77
- end
74
+ key.dup
75
+ rescue StandardError
76
+ key
77
+ end
78
78
  value = begin
79
- value.dup
80
- rescue StandardError
81
- value
82
- end
79
+ value.dup
80
+ rescue StandardError
81
+ value
82
+ end
83
83
  blocks.each { |b| b.call(key, value) }
84
84
  end
85
85
  parents.pop if deep_regexps
@@ -15,8 +15,8 @@ module Sidekiq
15
15
  rescue StandardError => e
16
16
  begin
17
17
  Sidekiq.logger.warn log_job_exception(job, started_at, e)
18
- rescue StandardError => ex
19
- log_standard_error(job, e, ex)
18
+ rescue StandardError => e
19
+ log_standard_error(job, e, e)
20
20
  end
21
21
  raise
22
22
  end
@@ -49,6 +49,8 @@ module Sidekiq
49
49
 
50
50
  payload['message'] += ": fail: #{payload['duration']} sec"
51
51
  payload['job_status'] = 'fail'
52
+
53
+ exc = exc.cause || exc if exc.is_a? Sidekiq::JobRetry::Handled
52
54
  payload['error_message'] = exc.message
53
55
  payload['error'] = exc.class
54
56
  payload['error_backtrace'] = %('#{exc.backtrace.join("\n")}')
@@ -128,7 +130,7 @@ module Sidekiq
128
130
  def deep_stringify!(args)
129
131
  case args
130
132
  when Hash
131
- Hash[args.map { |key, value| [deep_stringify!(key), deep_stringify!(value)] }]
133
+ args.map { |key, value| [deep_stringify!(key), deep_stringify!(value)] }.to_h
132
134
  when Array
133
135
  args.map! { |val| deep_stringify!(val) }
134
136
  else
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Sidekiq
4
4
  module Logstash
5
- VERSION = '1.2.1'
5
+ VERSION = '2.0.2'
6
6
  end
7
7
  end
@@ -2,7 +2,6 @@
2
2
 
3
3
  require 'sidekiq/logstash/configuration'
4
4
  require 'sidekiq/logstash/version'
5
- require 'sidekiq/middleware/server/logstash_logging'
6
5
  require 'sidekiq/logging/logstash_formatter'
7
6
  require 'sidekiq/logging/argument_filter'
8
7
  require 'sidekiq/logstash_job_logger'
@@ -23,19 +22,14 @@ module Sidekiq
23
22
  def self.setup(_opts = {})
24
23
  # Calls Sidekiq.configure_server to inject logics
25
24
  Sidekiq.configure_server do |config|
26
- # Remove default Sidekiq error_handler that logs errors
27
- config.error_handlers.delete_if { |h| h.is_a?(Sidekiq::ExceptionHandler::Logger) }
25
+ if defined?(Sidekiq::ExceptionHandler::Logger)
26
+ # Remove default Sidekiq error_handler that logs errors
27
+ # NOTE: this only exists up until Sidekiq 6.4.x
28
+ config.error_handlers.delete_if { |h| h.is_a?(Sidekiq::ExceptionHandler::Logger) }
29
+ end
28
30
 
29
31
  # Add logstash support
30
- # The logging server middleware was removed in Sidekiq 5.0.0, see: https://github.com/mperham/sidekiq/blob/master/Changes.md
31
- if Sidekiq::Middleware::Server.const_defined?(:Logging)
32
- config.server_middleware do |chain|
33
- chain.add Sidekiq::Middleware::Server::LogstashLogging
34
- chain.remove Sidekiq::Middleware::Server::Logging
35
- end
36
- else
37
- Sidekiq.options[:job_logger] = Sidekiq::LogstashJobLogger
38
- end
32
+ config.options[:job_logger] = Sidekiq::LogstashJobLogger
39
33
 
40
34
  # Set custom formatter for Sidekiq logger
41
35
  config.logger.formatter = Sidekiq::Logging::LogstashFormatter.new
@@ -1,10 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'sidekiq/job_logger'
3
4
  require 'sidekiq/logging/shared'
4
5
 
5
6
  module Sidekiq
6
- # Class used to replace Sidekiq 5 job logger.
7
- class LogstashJobLogger
7
+ # Class used to replace Sidekiq default job logger.
8
+ class LogstashJobLogger < ::Sidekiq::JobLogger
8
9
  include Sidekiq::Logging::Shared
9
10
 
10
11
  def call(job, _queue, &block)
@@ -18,18 +18,16 @@ Gem::Specification.new do |spec|
18
18
  spec.license = 'MIT'
19
19
 
20
20
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
21
- spec.bindir = 'exe'
22
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
21
  spec.require_paths = ['lib']
22
+ spec.required_ruby_version = '>= 2.5.0'
24
23
 
25
24
  spec.add_dependency 'logstash-event', '~> 1.2'
26
- spec.add_runtime_dependency 'sidekiq', '>= 3.0', '<6'
27
- spec.required_ruby_version = '>= 2.3.0'
25
+ spec.add_runtime_dependency 'sidekiq', '>= 6.0', '<7'
28
26
 
29
- spec.add_development_dependency 'factory_girl', '~> 4.0'
30
- spec.add_development_dependency 'rake', '~> 10.0'
27
+ spec.add_development_dependency 'factory_bot', '~> 6.1'
28
+ spec.add_development_dependency 'rake', '>= 10'
31
29
  spec.add_development_dependency 'rspec', '~> 3.0'
32
30
  spec.add_development_dependency 'rspec-json_expectations', '~> 2.1.0'
33
- spec.add_development_dependency 'rubocop', '~> 0.67.2'
34
- spec.add_development_dependency 'rubocop-performance'
31
+ spec.add_development_dependency 'rubocop-performance', '~> 1.5'
32
+ spec.metadata['rubygems_mfa_required'] = 'true'
35
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-logstash
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mattia Giuffrida
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-21 00:00:00.000000000 Z
11
+ date: 2022-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstash-event
@@ -30,48 +30,48 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '3.0'
33
+ version: '6.0'
34
34
  - - "<"
35
35
  - !ruby/object:Gem::Version
36
- version: '6'
36
+ version: '7'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
- version: '3.0'
43
+ version: '6.0'
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
- version: '6'
46
+ version: '7'
47
47
  - !ruby/object:Gem::Dependency
48
- name: factory_girl
48
+ name: factory_bot
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '4.0'
53
+ version: '6.1'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '4.0'
60
+ version: '6.1'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rake
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - "~>"
65
+ - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: '10.0'
67
+ version: '10'
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - "~>"
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: '10.0'
74
+ version: '10'
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: rspec
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -101,33 +101,19 @@ dependencies:
101
101
  - !ruby/object:Gem::Version
102
102
  version: 2.1.0
103
103
  - !ruby/object:Gem::Dependency
104
- name: rubocop
104
+ name: rubocop-performance
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: 0.67.2
109
+ version: '1.5'
110
110
  type: :development
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: 0.67.2
117
- - !ruby/object:Gem::Dependency
118
- name: rubocop-performance
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: '0'
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- version: '0'
116
+ version: '1.5'
131
117
  description: 'Sidekiq::Logstash turns your Sidekiq log into an organised, aggregated,
132
118
  JSON-syntax log ready to be sent to a logstash server.
133
119
 
@@ -138,23 +124,18 @@ executables: []
138
124
  extensions: []
139
125
  extra_rdoc_files: []
140
126
  files:
141
- - ".github/workflows/ci.yaml"
127
+ - ".github/workflows/ci.yml"
142
128
  - ".github/workflows/publish.yml"
143
129
  - ".gitignore"
144
130
  - ".rspec"
145
131
  - ".rubocop.yml"
146
132
  - ".rubocop_todo.yml"
147
- - ".ruby-gemset"
148
- - ".ruby-version"
149
133
  - Gemfile
150
134
  - README.md
151
135
  - Rakefile
152
136
  - bin/console
153
137
  - bin/setup
154
138
  - bin/test_console
155
- - gemfiles/sidekiq3.gemfile
156
- - gemfiles/sidekiq4.gemfile
157
- - gemfiles/sidekiq5.gemfile
158
139
  - lib/sidekiq/logging/argument_filter.rb
159
140
  - lib/sidekiq/logging/logstash_formatter.rb
160
141
  - lib/sidekiq/logging/shared.rb
@@ -162,12 +143,12 @@ files:
162
143
  - lib/sidekiq/logstash/configuration.rb
163
144
  - lib/sidekiq/logstash/version.rb
164
145
  - lib/sidekiq/logstash_job_logger.rb
165
- - lib/sidekiq/middleware/server/logstash_logging.rb
166
146
  - sidekiq-logstash.gemspec
167
147
  homepage: https://github.com/iMacTia/sidekiq-logstash
168
148
  licenses:
169
149
  - MIT
170
- metadata: {}
150
+ metadata:
151
+ rubygems_mfa_required: 'true'
171
152
  post_install_message:
172
153
  rdoc_options: []
173
154
  require_paths:
@@ -176,7 +157,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
176
157
  requirements:
177
158
  - - ">="
178
159
  - !ruby/object:Gem::Version
179
- version: 2.3.0
160
+ version: 2.5.0
180
161
  required_rubygems_version: !ruby/object:Gem::Requirement
181
162
  requirements:
182
163
  - - ">="
data/.ruby-gemset DELETED
@@ -1 +0,0 @@
1
- sidekiq-logstash
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 2.6.6
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gem 'sidekiq', '~> 3.0'
6
-
7
- gemspec path: '../'
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gem 'sidekiq', '~> 4.0'
6
-
7
- gemspec path: '../'
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gem 'sidekiq', '~> 5.0'
6
-
7
- gemspec path: '../'
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'sidekiq/logging/shared'
4
-
5
- module Sidekiq
6
- module Middleware
7
- module Server
8
- # Class used to replace Sidekiq 4 job logger.
9
- class LogstashLogging
10
- include Sidekiq::Logging::Shared
11
-
12
- def call(_, job, _, &block)
13
- log_job(job, &block)
14
- end
15
- end
16
- end
17
- end
18
- end