sidekiq-logstash 1.2.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
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