sidekiq-cloudwatchmetrics 2.7.0 → 2.9.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: 894ace11258aeb70fd06f4201fb84f493406199eb4bce1c97cd0c2627e69c9fa
4
- data.tar.gz: c88fde8c0c0564f6036c1bc0e08ea14b0b02a89fb20026adca88c400b3bc08a8
3
+ metadata.gz: 0a257f5be8a0e18cc15b67845764e4432e61d435fd49cac5756fa91fd7176a4c
4
+ data.tar.gz: a1ff163a5e499a66734616120d015dc0187e3319bbe41d158b8ef720811bdbb3
5
5
  SHA512:
6
- metadata.gz: d82aecd5e61a8bcae2ab4873d47e9a3377325a8862b16dccff194cd80927c480007a4d20b966dc3c9fa60bace2ffd4db63fb5451288c7047eac1b586e0c51a62
7
- data.tar.gz: dff2fa7ae30e790c5a4174597a5999852d30a0ddccba8ca2360872ee9389e8c41d6cd44109a1b8f74b940ffe87253776e6a01981e367927a8f43a0b2e6396014
6
+ metadata.gz: e3fe60e517ba5212f9852c5f369a003771d303072b63ca44cae37e4dafbf9bab6a0dd6c75af93caf407617029c313da81138a37b9e15741049f16cb3cbba8fff
7
+ data.tar.gz: 7200ad0a0139ff32aa27b25b717857354e26e9b7f5e45d252f3f3df27fdd99e1b59785b70e0b683ef0b5ab8b22b1be06c3451e98cf1507e03c0905b0667c5d89
checksums.yaml.gz.sig CHANGED
Binary file
@@ -8,7 +8,7 @@ require "aws-sdk-cloudwatch"
8
8
  module Sidekiq::CloudWatchMetrics
9
9
  def self.enable!(**kwargs)
10
10
  Sidekiq.configure_server do |config|
11
- publisher = Publisher.new(**kwargs)
11
+ publisher = Publisher.new(config: config, **kwargs)
12
12
 
13
13
  # Sidekiq enterprise has a globally unique leader thread, making it
14
14
  # easier to publish the cluster-wide metrics from one place.
@@ -45,12 +45,22 @@ module Sidekiq::CloudWatchMetrics
45
45
 
46
46
  DEFAULT_INTERVAL = 60 # seconds
47
47
 
48
- def initialize(config: Sidekiq, client: Aws::CloudWatch::Client.new, namespace: "Sidekiq", process_metrics: true, additional_dimensions: {}, interval: DEFAULT_INTERVAL)
49
- # Sidekiq 6.5+ requires @config, which defaults to the top-level
50
- # `Sidekiq` module, but can be overridden when running multiple Sidekiqs.
48
+ private def default_config
49
+ # Sidekiq::Config was introduced in sidekiq 7 and has a default
50
+ if Sidekiq.respond_to?(:default_configuration)
51
+ Sidekiq.default_configuration
52
+ else
53
+ # in older versions, it's just the `Sidekiq` module
54
+ Sidekiq
55
+ end
56
+ end
57
+
58
+ def initialize(config: default_config, client: Aws::CloudWatch::Client.new, namespace: "Sidekiq", process_metrics: true, additional_dimensions: {}, interval: DEFAULT_INTERVAL)
59
+ # Required by Sidekiq::Component (in sidekiq 6.5+)
51
60
  @config = config
61
+
52
62
  @client = client
53
- @interval = interval
63
+ @interval_s = interval
54
64
  @namespace = namespace
55
65
  @process_metrics = process_metrics
56
66
  @additional_dimensions = additional_dimensions.map { |k, v| {name: k.to_s, value: v.to_s} }
@@ -70,7 +80,7 @@ module Sidekiq::CloudWatchMetrics
70
80
  def run
71
81
  logger.info { "Started Sidekiq CloudWatch Metrics Publisher" }
72
82
 
73
- # Publish stats every @interval seconds, sleeping as required between runs
83
+ # Publish stats every @interval_s seconds, sleeping as required between runs
74
84
  now = Time.now.to_f
75
85
  tick = now
76
86
  until @stop
@@ -83,7 +93,7 @@ module Sidekiq::CloudWatchMetrics
83
93
  end
84
94
 
85
95
  now = Time.now.to_f
86
- tick = [tick + @interval, now].max
96
+ tick = [tick + @interval_s, now].max
87
97
  sleep(tick - now) if tick > now
88
98
  end
89
99
 
@@ -248,6 +258,9 @@ module Sidekiq::CloudWatchMetrics
248
258
 
249
259
  # We can only put 20 metrics at a time
250
260
  metrics.each_slice(20) do |some_metrics|
261
+ if @interval_s < 60
262
+ metrics.each { |metric| metric.merge!(storage_resolution: 1) }
263
+ end
251
264
  @client.put_metric_data(
252
265
  namespace: @namespace,
253
266
  metric_data: some_metrics,
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,11 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-cloudwatchmetrics
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Cochran
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain:
11
10
  - |
@@ -28,7 +27,7 @@ cert_chain:
28
27
  G8WXc9zUMVewWkEjS9s++xFNb/7f4dFNXCoE3pgHjzctt7gYcJVacprsg925LYHO
29
28
  WsbnbEow7BPlYOZm3rDIsEYpWqxN0lR8BakO2ToJ5RAHXahFu4K4eJtAsLk=
30
29
  -----END CERTIFICATE-----
31
- date: 2025-02-24 00:00:00.000000000 Z
30
+ date: 1980-01-02 00:00:00.000000000 Z
32
31
  dependencies:
33
32
  - !ruby/object:Gem::Dependency
34
33
  name: sidekiq
@@ -39,7 +38,7 @@ dependencies:
39
38
  version: '5.0'
40
39
  - - "<"
41
40
  - !ruby/object:Gem::Version
42
- version: '8.0'
41
+ version: '9.0'
43
42
  type: :runtime
44
43
  prerelease: false
45
44
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,7 +48,7 @@ dependencies:
49
48
  version: '5.0'
50
49
  - - "<"
51
50
  - !ruby/object:Gem::Version
52
- version: '8.0'
51
+ version: '9.0'
53
52
  - !ruby/object:Gem::Dependency
54
53
  name: aws-sdk-cloudwatch
55
54
  requirement: !ruby/object:Gem::Requirement
@@ -151,7 +150,6 @@ homepage: https://github.com/sj26/sidekiq-cloudwatchmetrics
151
150
  licenses:
152
151
  - MIT
153
152
  metadata: {}
154
- post_install_message:
155
153
  rdoc_options: []
156
154
  require_paths:
157
155
  - lib
@@ -166,8 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
164
  - !ruby/object:Gem::Version
167
165
  version: '0'
168
166
  requirements: []
169
- rubygems_version: 3.5.16
170
- signing_key:
167
+ rubygems_version: 3.6.7
171
168
  specification_version: 4
172
169
  summary: Publish Sidekiq metrics to AWS CloudWatch
173
170
  test_files: []
metadata.gz.sig CHANGED
@@ -1,3 +1 @@
1
- 1�Ȃ���nA
2
- ��G(蘑�������~zy�G�8�A����������K||��+�2GR6LTxG�����I5V��e֠�(�Z(=K׆�M�
3
- =��s�]�›'��!�\!>j��*�I���J~ߊ��GGhG���h�ݡږB���3���ǥ��5eH�tP�/B�&t�.��/^��H
1
+ �i���ؔJ����� �������=�G���z6�'�Ю�@&�űpu�;�{�q鏿p�׮�z_�J@ �_84�h<K� ����� 1�U�- ���!ϰ����5�wG����W�I��'3���#�d^��M���f�61>�:�x�S��k���ī����07m���==�% ��yp[+D��>=����� L�N�"���O�[ F���W�~�`:�u+k�� � �׸�}��>����1h4fϖ��a��˶4B