Commit 0ee180f7 authored by Valery Sizov's avatar Valery Sizov

Geo: Improve replication status. Relying on pg_stat_wal_receiver

parent 62e04169
......@@ -7,7 +7,7 @@ module Gitlab
return '' unless Gitlab::Geo.secondary?
return 'The Geo database configuration file is missing.' unless Gitlab::Geo.geo_database_configured?
return 'The Geo node has a database that is not configured for streaming replication with the primary node.' unless self.database_secondary?
return 'The Geo node does not appear to be replicating data from the primary node.' unless self.db_replication_lag_seconds.present?
return 'The Geo node does not appear to be replicating data from the primary node.' unless self.streaming_active?
database_version = self.get_database_version.to_i
migration_version = self.get_migration_version.to_i
......@@ -76,6 +76,18 @@ module Gitlab
lag.present? ? lag.to_i : lag
end
def self.streaming_active?
# Get a streaming status
# This only works for Postgresql 9.6 and greater
status =
ActiveRecord::Base.connection.execute('
SELECT * FROM pg_stat_wal_receiver;')
.first
.fetch('status')
status == 'streaming'
end
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment