judoscale-ruby 1.8.2 → 1.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: 45e95bdaed7f0dae8a1cd613b3e8579a4666d808d12f27de4270055651991332
4
- data.tar.gz: 5062cd2bbc781bdd695e817c3b6ebbe165d4e9cab805c8efddc01cef7cadf39d
3
+ metadata.gz: 89e1c234767f82a457f3e3d9ddc185fb7229e0f4e8de84fd9861c51c07e27b9c
4
+ data.tar.gz: 3f899a16cb1454e3720468702db0401c17f684a5b8d7263b3830e97038cfea37
5
5
  SHA512:
6
- metadata.gz: 38e6c73e3758d97e20c453fb45cc6e098c1a50afec219b52b5bfaad297c2f11e8111ce96836235e290b4a4d7a0e8ee5a471b5c157c0fe0356b817e14a7c14412
7
- data.tar.gz: b5b700a87bcf636809db3e162c61cc35ddf9b0b2be26f68dd674cc9365e56cf5a88c46f3bda248297c05ef3045c05c1fed004bd4ff3257d2f02fac2f67e055a2
6
+ metadata.gz: 8183357c4717a609224e3bf8a15ef567d19e71d1b5de1027faa25e0480af7870eb44290a02929352a29d1c5b8581345218cc1bdd264ccf5cdf91eae0e5fa5ede
7
+ data.tar.gz: 71b1c714b3c1979394d39237873c28f40c2881151c53fac0f23a42d225686d3f76f31a10bbf792d6f31aac0e40a6d2e32eb064bb156cbbb9aeee9fa92a29dfc5
@@ -93,24 +93,28 @@ module Judoscale
93
93
 
94
94
  self.class.adapter_configs.each(&:reset)
95
95
 
96
- if ENV["RENDER_INSTANCE_ID"]
97
- instance = ENV["RENDER_INSTANCE_ID"].delete_prefix(ENV["RENDER_SERVICE_ID"]).delete_prefix("-")
98
- @current_runtime_container = RuntimeContainer.new instance
99
- # Allow a custom API base URL to be set for Render (for testing)
100
- @api_base_url ||= "https://adapter.judoscale.com/api"
101
- @api_base_url += "/#{ENV["RENDER_SERVICE_ID"]}"
102
- elsif ENV["DYNO"]
103
- @current_runtime_container = RuntimeContainer.new ENV["DYNO"]
104
- elsif (metadata_uri = ENV["ECS_CONTAINER_METADATA_URI"])
105
- @current_runtime_container = RuntimeContainer.new(metadata_uri.split("/").last)
106
- else
107
- # unsupported platform? Don't want to leave @current_runtime_container nil though
108
- @current_runtime_container = RuntimeContainer.new("")
109
- end
96
+ @current_runtime_container =
97
+ if ENV.include?("DYNO")
98
+ RuntimeContainer.new ENV["DYNO"]
99
+ elsif ENV.include?("RENDER_INSTANCE_ID")
100
+ # Deprecated API url using the service ID for legacy render services not using `JUDOSCALE_URL`.
101
+ @api_base_url ||= "https://adapter.judoscale.com/api/#{ENV["RENDER_SERVICE_ID"]}"
102
+
103
+ instance = ENV["RENDER_INSTANCE_ID"].delete_prefix("#{ENV["RENDER_SERVICE_ID"]}-")
104
+ RuntimeContainer.new instance
105
+ elsif ENV.include?("ECS_CONTAINER_METADATA_URI")
106
+ instance = ENV["ECS_CONTAINER_METADATA_URI"].split("/").last
107
+ RuntimeContainer.new instance
108
+ elsif ENV.include?("RAILWAY_REPLICA_ID")
109
+ RuntimeContainer.new ENV["RAILWAY_REPLICA_ID"]
110
+ else
111
+ # Unsupported platform...
112
+ RuntimeContainer.new("")
113
+ end
110
114
  end
111
115
 
112
116
  def log_level=(new_level)
113
- @log_level = new_level ? ::Logger::Severity.const_get(new_level.to_s.upcase) : nil
117
+ @log_level = get_severity_log_level(new_level)
114
118
  end
115
119
 
116
120
  def as_json
@@ -127,5 +131,21 @@ module Judoscale
127
131
  def ignore_large_requests?
128
132
  @max_request_size_bytes
129
133
  end
134
+
135
+ private
136
+
137
+ def get_severity_log_level(log_level)
138
+ return nil if log_level.to_s.strip.empty?
139
+
140
+ upcased_log_level = log_level.to_s.upcase
141
+
142
+ if ::Logger::Severity.const_defined?(upcased_log_level)
143
+ ::Logger::Severity.const_get(upcased_log_level)
144
+ else
145
+ logger.warn "Invalid log_level detected: #{log_level}"
146
+
147
+ nil
148
+ end
149
+ end
130
150
  end
131
151
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Judoscale
4
- VERSION = "1.8.2"
4
+ VERSION = "1.9.0"
5
5
  end
metadata CHANGED
@@ -1,18 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: judoscale-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.2
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam McCrea
8
8
  - Carlos Antonio da Silva
9
9
  - Jon Sullivan
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-10-16 00:00:00.000000000 Z
13
+ date: 2025-01-17 00:00:00.000000000 Z
14
14
  dependencies: []
15
- description:
15
+ description:
16
16
  email:
17
17
  - hello@judoscale.com
18
18
  executables: []
@@ -43,7 +43,7 @@ metadata:
43
43
  documentation_uri: https://judoscale.com/docs
44
44
  changelog_uri: https://github.com/judoscale/judoscale-ruby/blob/main/CHANGELOG.md
45
45
  source_code_uri: https://github.com/judoscale/judoscale-ruby
46
- post_install_message:
46
+ post_install_message:
47
47
  rdoc_options: []
48
48
  require_paths:
49
49
  - lib
@@ -58,8 +58,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  - !ruby/object:Gem::Version
59
59
  version: '0'
60
60
  requirements: []
61
- rubygems_version: 3.5.16
62
- signing_key:
61
+ rubygems_version: 3.5.22
62
+ signing_key:
63
63
  specification_version: 4
64
64
  summary: Autoscaling for Ruby.
65
65
  test_files: []