strongmind-sidekiq-cloudwatchmetrics 2.6.3 → 2.6.5

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: ac9745ef50d718561a2ac4bacbde12d0c1fdff61fcfc76c9c2da90351268e547
4
- data.tar.gz: ed09f7b11b93e68b7c56fa413da9583beec3e938a3fd80b58ba46682bf57e0b8
3
+ metadata.gz: 4583a94ad6b4bdd8cef65809d4be8856711c1da48237df304ae21719bc386672
4
+ data.tar.gz: e63191c5bd256155f648c9be25b66f4058d8801e9229227283ecfce3dbe29130
5
5
  SHA512:
6
- metadata.gz: ae14804d758497fb7f0728127996cbad2e894c09a930e8ca82a9526a0fa29e4a7d655d1f045f70cb107ddc3e2993ee3f038a6a7cb82408e086721ea0fb646974
7
- data.tar.gz: 454e1398e39db0d2c406bd9647a4235093d2d5f3d93554ae2adea78b1829e03ae72958cb3c28752b7fa4d2e074583c5ee2427d3a8f9ec33d86a7101ca896b0d8
6
+ metadata.gz: 5d1b6346ce7e5119e27ba0bec11592c58e6b560a065e817ff1bbd2a21af30a56e46152caf4913fd52fd5bd10d9678a2147d4649c86e44f5b4e1607e2e615c32c
7
+ data.tar.gz: 2f36cddd1458bbf0c803c2c0067116f8bf15cd281b3be282f923eced9e96304b0e59c911c4ac578ec08d7142ff82ab9174b6bf5a813a50f957719b0ae4b3b13d
@@ -42,7 +42,7 @@ module Sidekiq::CloudWatchMetrics
42
42
  include Sidekiq::Component
43
43
  end
44
44
 
45
- def initialize(config: Sidekiq, client: Aws::CloudWatch::Client.new(region: 'us-west-2'), namespace: ENV.fetch('NAMESPACE', 'Default-Sidekiq-CloudWatchMetrics'), process_metrics: true, additional_dimensions: {}, metrics_to_publish: %w[EnqueuedJobs], interval: 60)
45
+ def initialize(config: Sidekiq, client: Aws::CloudWatch::Client.new(region: 'us-west-2'), namespace: ENV.fetch('NAMESPACE', 'Default-Sidekiq-CloudWatchMetrics'), process_metrics: true, additional_dimensions: {}, interval: 60, **kwargs)
46
46
  # Sidekiq 6.5+ requires @config, which defaults to the top-level
47
47
  # `Sidekiq` module, but can be overridden when running multiple Sidekiqs.
48
48
  @config = config
@@ -50,7 +50,7 @@ module Sidekiq::CloudWatchMetrics
50
50
  @namespace = namespace
51
51
  @process_metrics = process_metrics
52
52
  @additional_dimensions = additional_dimensions.map { |k, v| {name: k.to_s, value: v.to_s} }
53
- @metrics_to_publish = metrics_to_publish
53
+ @metrics_to_publish = kwargs[:metrics_to_publish] || []
54
54
  @interval = interval
55
55
  end
56
56
 
@@ -223,17 +223,27 @@ module Sidekiq::CloudWatchMetrics
223
223
  }
224
224
  end
225
225
 
226
+ highest_latency_metric = metrics.max_by { |metric| metric[:value] }
227
+ metrics << {
228
+ metric_name: "MaxQueueLatency",
229
+ dimensions: [{name: "QueueName", value: "AllQueues"}],
230
+ timestamp: now,
231
+ value: highest_latency_metric[:value],
232
+ unit: "Seconds",
233
+ }
234
+
226
235
  unless @additional_dimensions.empty?
227
236
  metrics = metrics.each do |metric|
228
237
  metric[:dimensions] = (metric[:dimensions] || []) + @additional_dimensions
229
238
  end
230
239
  end
231
-
232
240
  # We can only put 20 metrics at a time
233
- metrics.select { |metric| @metrics_to_publish.include?(metric[:metric_name]) }.each_slice(20) do |some_metrics|
241
+ custom_metrics = @metrics_to_publish&.any? ? metrics.select { |metric| @metrics_to_publish.include?(metric[:metric_name]) } : metrics
242
+
243
+ custom_metrics.each_slice(20) do |metric_to_publish|
234
244
  @client.put_metric_data(
235
245
  namespace: @namespace,
236
- metric_data: some_metrics,
246
+ metric_data: metric_to_publish,
237
247
  )
238
248
  end
239
249
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strongmind-sidekiq-cloudwatchmetrics
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.3
4
+ version: 2.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - StrongMind Devops
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-23 00:00:00.000000000 Z
11
+ date: 2024-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sidekiq