pghero 3.3.2 → 3.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/app/controllers/pg_hero/home_controller.rb +10 -3
- data/lib/pghero/methods/system.rb +10 -4
- data/lib/pghero/version.rb +1 -1
- data/lib/pghero.rb +7 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2332e2a4f7b9bd25d972ec1f06635dfc43676412c5be4147e3a7e3dc8effa213
|
4
|
+
data.tar.gz: 1a24e423a0d8749d69eb938eaa27db1beed974d1a058e6ae6331badeae9c4d59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b19ca11ceee2f44bbcdec49e14f0653df6efc740e4fbd710700a03254ac8d40db84690409a731c06359d547934d401615925e88df317ccae4137eecefcfe8ddf
|
7
|
+
data.tar.gz: b6c0069a0e34ecd66d359aff9226fe678ccc15d55b1ad0e70f421a7fa9b9a2113d7eb31cc30d69364489fa1e10e2b5d6d0e48ada03d15e79aff5ba9dda350659
|
data/CHANGELOG.md
CHANGED
@@ -248,9 +248,16 @@ module PgHero
|
|
248
248
|
stats =
|
249
249
|
case @database.system_stats_provider
|
250
250
|
when :azure
|
251
|
-
|
252
|
-
|
253
|
-
|
251
|
+
if @database.send(:azure_flexible_server?)
|
252
|
+
[
|
253
|
+
{name: "Read IOPS", data: @database.read_iops_stats(**system_params).map { |k, v| [k, v ? v.round : v] }, library: chart_library_options},
|
254
|
+
{name: "Write IOPS", data: @database.write_iops_stats(**system_params).map { |k, v| [k, v ? v.round : v] }, library: chart_library_options}
|
255
|
+
]
|
256
|
+
else
|
257
|
+
[
|
258
|
+
{name: "IO Consumption", data: @database.azure_stats("io_consumption_percent", **system_params), library: chart_library_options}
|
259
|
+
]
|
260
|
+
end
|
254
261
|
when :gcp
|
255
262
|
[
|
256
263
|
{name: "Read Ops", data: @database.read_iops_stats(**system_params).map { |k, v| [k, v ? v.round : v] }, library: chart_library_options},
|
@@ -102,7 +102,8 @@ module PgHero
|
|
102
102
|
end
|
103
103
|
|
104
104
|
client = Azure::Monitor::Profiles::Latest::Mgmt::Client.new
|
105
|
-
|
105
|
+
# call utc to convert +00:00 to Z
|
106
|
+
timespan = "#{start_time.utc.iso8601}/#{end_time.utc.iso8601}"
|
106
107
|
results = client.metrics.list(
|
107
108
|
azure_resource_id,
|
108
109
|
metricnames: metric_name,
|
@@ -269,12 +270,13 @@ module PgHero
|
|
269
270
|
used = azure_stats("storage_used", **options)
|
270
271
|
free_space(quota, used)
|
271
272
|
else
|
272
|
-
|
273
|
-
# could add io_consumption_percent
|
273
|
+
replication_lag_stat = azure_flexible_server? ? "physical_replication_delay_in_seconds" : "pg_replica_log_delay_in_seconds"
|
274
274
|
metrics = {
|
275
275
|
cpu: "cpu_percent",
|
276
276
|
connections: "active_connections",
|
277
|
-
replication_lag:
|
277
|
+
replication_lag: replication_lag_stat,
|
278
|
+
read_iops: "read_iops", # flexible server only
|
279
|
+
write_iops: "write_iops" # flexible server only
|
278
280
|
}
|
279
281
|
raise Error, "Metric not supported" unless metrics[metric_key]
|
280
282
|
azure_stats(metrics[metric_key], **options)
|
@@ -284,6 +286,10 @@ module PgHero
|
|
284
286
|
end
|
285
287
|
end
|
286
288
|
|
289
|
+
def azure_flexible_server?
|
290
|
+
azure_resource_id.include?("/Microsoft.DBforPostgreSQL/flexibleServers/")
|
291
|
+
end
|
292
|
+
|
287
293
|
# only use data points included in both series
|
288
294
|
# this also eliminates need to align Time.now
|
289
295
|
def free_space(quota, used)
|
data/lib/pghero/version.rb
CHANGED
data/lib/pghero.rb
CHANGED
@@ -121,7 +121,7 @@ module PgHero
|
|
121
121
|
|
122
122
|
config_file_exists = File.exist?(path)
|
123
123
|
|
124
|
-
config = YAML.safe_load(ERB.new(File.read(path)).result) if config_file_exists
|
124
|
+
config = YAML.safe_load(ERB.new(File.read(path)).result, aliases: true) if config_file_exists
|
125
125
|
config ||= {}
|
126
126
|
|
127
127
|
@file_config =
|
@@ -151,7 +151,7 @@ module PgHero
|
|
151
151
|
|
152
152
|
if databases.empty?
|
153
153
|
databases["primary"] = {
|
154
|
-
"url" => ENV["PGHERO_DATABASE_URL"] ||
|
154
|
+
"url" => ENV["PGHERO_DATABASE_URL"] || default_connection_config
|
155
155
|
}
|
156
156
|
end
|
157
157
|
|
@@ -168,6 +168,11 @@ module PgHero
|
|
168
168
|
}
|
169
169
|
end
|
170
170
|
|
171
|
+
# private
|
172
|
+
def default_connection_config
|
173
|
+
connection_config(ActiveRecord::Base) if ActiveRecord::VERSION::STRING.to_f < 7.1
|
174
|
+
end
|
175
|
+
|
171
176
|
# ensure we only have one copy of databases
|
172
177
|
# so there's only one connection pool per database
|
173
178
|
def databases
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pghero
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.3.
|
4
|
+
version: 3.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|