pghero 3.3.2 → 3.3.3

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: 2fa38fa0cc98e7f066698e558c6a6bc59cdc60ed5fd2ecbafe43f9f46918c8a2
4
- data.tar.gz: 41510ad944cbd565c62aa02d6996af86ce4764e10cfbd09d1109ee12b2534fae
3
+ metadata.gz: '002087a8cb8c6db43d1f084fd773aa4c8320c6fe77be3d4f42b6ca55ff91d39d'
4
+ data.tar.gz: fd4cb80b991e10232d7628604049e25685ae3723c53c7dd3231288b369015976
5
5
  SHA512:
6
- metadata.gz: dfeb7118ad7d5b2b0170b6e82ef03595725085de2e93e4c6a05eb16a3d7288b4475fe33dc0e86bbbd6f17d4e5bf50df391ce8772a57c0aec77656e822244b264
7
- data.tar.gz: 24f21e42883c5148bff431dda7dba11701e109347fc2ee173288cb3378ccf41354c3111074fba46a556b2a280d476caca9b20ba48b3b4b8bae1dee884f738c62
6
+ metadata.gz: 42a29de1135ce51d59423e0aedafff5261ffea8e93740a40aa80d472a48d01a799349ea9c48f78c027f86d493e342901698707894156b149236ca7e8f101a0a1
7
+ data.tar.gz: 68e636a77b47b825803c04ef90005827a66ae6abc0dab5f60bde8877f0c0d4aa580daa60c7959042bb0f9f0bb374eda3e885e0903069247a00c7a9a8779945a2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 3.3.3 (2023-04-18)
2
+
3
+ - Fixed error with system stats for Azure Database
4
+
1
5
  ## 3.3.2 (2023-04-12)
2
6
 
3
7
  - Fixed error with suggested indexes and empty statements
@@ -248,9 +248,16 @@ module PgHero
248
248
  stats =
249
249
  case @database.system_stats_provider
250
250
  when :azure
251
- [
252
- {name: "IO Consumption", data: @database.azure_stats("io_consumption_percent", **system_params), library: chart_library_options}
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
- timespan = "#{start_time.iso8601}/#{end_time.iso8601}"
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
- # no read_iops, write_iops
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: "pg_replica_log_delay_in_seconds"
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)
@@ -1,3 +1,3 @@
1
1
  module PgHero
2
- VERSION = "3.3.2"
2
+ VERSION = "3.3.3"
3
3
  end
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.2
4
+ version: 3.3.3
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-04-13 00:00:00.000000000 Z
11
+ date: 2023-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord